/** * 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; }
/** * 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; } }