/**
  * Cancels an order after the period for payment elapsed.
  */
 protected function _processTransactionExpired()
 {
     $payment = $this->_order->getPayment();
     if ($transaction = $payment->getTransaction($this->_receivedData['transaction_id'])) {
         $transaction->close();
     }
     $this->_order->registerCancellation($this->_createIpnComment(), false)->save();
     $this->_order->sendOrderUpdateEmail(true, $this->_createIpnComment());
 }
 /**
  * Register order cancellation. Return money to customer if needed.
  *
  * @param Mage_Sales_Model_Order $order
  * @param string $message
  * @param bool $voidPayment
  */
 protected function _declineOrder(Mage_Sales_Model_Order $order, $message = '', $voidPayment = true)
 {
     try {
         $response = $this->getResponse();
         if ($voidPayment && $response->getXTransId() && strtoupper($response->getXType()) == self::REQUEST_TYPE_AUTH_ONLY) {
             $order->getPayment()->setTransactionId(null)->setParentTransactionId($response->getXTransId())->void();
         }
         $order->registerCancellation($message)->save();
     } catch (Exception $e) {
         //quiet decline
         Mage::logException($e);
     }
 }
 /**
  * Treat failed payment as order cancellation
  */
 protected function _registerPaymentFailure()
 {
     $this->_order->registerCancellation(Mage::helper('sign2pay')->__('There was a problem with Sign2pay payment.'), false)->save();
     return $this;
 }
Exemple #4
0
 /**
  * Treat failed payment as order cancellation
  */
 protected function _registerPaymentFailure()
 {
     $this->_importPaymentInformation();
     $this->_order->registerCancellation($this->_createIpnComment(''), false)->save();
 }
 /**
  * Set an order status based on transaction status
  *
  * @param Mage_Sales_Model_Order $order
  * @param string $status
  * @param string $message
  */
 public function setOrderState($order, $status, $message = '')
 {
     $this->initLibrary();
     switch ($status) {
         case \Genesis\API\Constants\Transaction\States::APPROVED:
             $order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, Mage_Sales_Model_Order::STATE_PROCESSING, $message, false)->save();
             break;
         case \Genesis\API\Constants\Transaction\States::PENDING:
         case \Genesis\API\Constants\Transaction\States::PENDING_ASYNC:
             $order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, $message, false)->save();
             break;
         case \Genesis\API\Constants\Transaction\States::ERROR:
         case \Genesis\API\Constants\Transaction\States::DECLINED:
             /** @var Mage_Sales_Model_Order_Invoice $invoice */
             foreach ($order->getInvoiceCollection() as $invoice) {
                 $invoice->cancel();
             }
             $order->registerCancellation($message)->setCustomerNoteNotify(true)->save();
             break;
         default:
             $order->save();
             break;
     }
 }