/** * Show orderPlaceRedirect page which contains the Moneybookers iframe. */ public function paymentAction() { try { $session = $this->_getCheckout(); $order = $this->placeOrder(); $order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage::helper('moneybookers')->__('The customer was redirected to Moneybookers.')); $order->save(); $this->_order = $order; $session->setLastRealOrderId($order->getIncrementId()); $session->setMoneybookersQuoteId($session->getQuoteId()); $session->setMoneybookersRealOrderId($session->getLastRealOrderId()); $session->getQuote()->setIsActive(false)->save(); $session->clear(); $this->loadLayout(); //load layout of moneybookers // $update = $this->getLayout()->getUpdate(); // $update->addHandle('default'); // $this->addActionLayoutHandles(); // $update->addHandle('moneybookers_processing_payment'); // $this->loadLayoutUpdates(); // $this->generateLayoutXml(); // $this->generateLayoutBlocks(); // $this->_isLayoutLoaded = true; //render layout $this->renderLayout(); } catch (Exception $e) { die($e->getMessage()); Mage::logException($e); parent::_redirect('checkout/cart'); } }
public function payAction() { $pay = Mage::getModel('iceadvanced/pay'); $result = $pay->getCheckoutResult(); if (!is_array($result)) { Mage::getSingleton('checkout/session')->setErrorMessage(sprintf($this->__("The payment provider has returned the following error message: %s"), $result)); parent::_redirect('checkout/onepage/failure'); } else { $checkoutResult = isset($result['CheckoutExtendedResult']) ? $result['CheckoutExtendedResult'] : $result['CheckoutResult']; $this->getResponse()->setBody($this->__("Redirecting"))->setRedirect($checkoutResult->PaymentScreenURL); } }
/** * Show orderPlaceRedirect page which contains the Moneybookers iframe. */ public function paymentAction() { try { $session = $this->_getCheckout(); $order = Mage::getModel('sales/order'); $order->loadByIncrementId($session->getLastRealOrderId()); if (!$order->getId()) { Mage::throwException('No order for processing found'); } $order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage::helper('moneybookers')->__('The customer was redirected to Moneybookers.')); $order->save(); $session->setMoneybookersQuoteId($session->getQuoteId()); $session->setMoneybookersRealOrderId($session->getLastRealOrderId()); $session->getQuote()->setIsActive(false)->save(); $session->clear(); $this->loadLayout(); $this->renderLayout(); } catch (Exception $e) { Mage::logException($e); parent::_redirect('checkout/cart'); } }
/** * Show orderPlaceRedirect page which contains the Paynova iframe. */ public function paymentAction() { $session = $this->_getCheckout(); $session->setPaynovaRealOrderId($session->getLastRealOrderId()); $quoteId = $session->getLastQuoteId(); try { $quote = Mage::getModel('sales/quote')->load($quoteId); $order = Mage::getModel('sales/order'); $paynova_order = Mage::getModel('paynovapayment/order'); $coreOrderObj = new Mage_Sales_Model_Order(); $lastIncrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId(); $coreOrderObj->loadByIncrementId($lastIncrementId); $corePaymentObj = $coreOrderObj->getPayment()->getMethodInstance(); //Create a "create order" structured array $res = $paynova_order->loadByIncrementId($lastIncrementId); $selectedPaymentId = $corePaymentObj->getSelectedPaymentId(); // get payment id from selected payment. $selectedModelCode = $corePaymentObj->getCode(); // get payment code for selected method. $filterSelectedModelCode = str_replace('_', '/', $selectedModelCode); $order->loadByIncrementId($session->getLastRealOrderId()); if (!$order->getId()) { Mage::throwException(Mage::helper('paynovapayment')->__('No order for processing found')); } $abstractModel = Mage::getModel($filterSelectedModelCode); // create a object for acc class. // call create order $res = $abstractModel->setCurlCall($res, '/orders/create/'); // post the initialize payment Json through CURL. Mage::helper('paynovapayment')->log($res); if (!$res) { Mage::throwException(Mage::helper('paynovapayment')->__('Unable to send the request on Paynova server.')); } else { if (!isset($res->orderId)) { Mage::throwException(Mage::helper('paynovapayment')->__('Unable to send the request on Paynova server.') . $res->status->statusMessage); } } $paynova_order_nr = $res->orderId; $paynova_status_key = $res->status->statusKey; $order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage::helper('paynovapayment')->__('Order created in Paynova')); if ($filterSelectedModelCode == 'paynovapayment/invoice' || $filterSelectedModelCode == 'paynovapayment/installment') { //get value from additional info $addinfo = $quote->getPayment()->getAdditionalInformation(); if (!empty($addinfo['productid'])) { $paynova_product = $addinfo['productid']; $governmentid = $addinfo['governmentid']; } $res = $paynova_order->createAuthorizePaymentCall($order, $paynova_order_nr, $selectedPaymentId, $selectedModelCode, $paynova_product, $governmentid); $output = $abstractModel->setCurlCall($res, '/orders/' . $paynova_order_nr . '/authorizePayment'); $res = $abstractModel->getResponseFromAuthorizePaymentCall($output); // recieved the response from paynova. if (!$res) { //Try to load old quote $this->_getCheckout()->addError($output->status->statusMessage); $order->save(); $this->_redirect('checkout/cart'); return; } $order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage::helper('paynovapayment')->__('Invoice/Installment created at Paynova.')); //set event data if ($res && !empty($output->orderId) && !empty($output->transactionId)) { $body['PAYMENT_1_TRANSACTION_ID'] = $output->transactionId; $body['ORDER_ID'] = $output->orderId; $body['ORDER_NUMBER'] = $session->getLastRealOrderId(); $event = Mage::getModel('paynovapayment/event')->setEventData($body); //successevent $quoteId = $event->successEvent(false); $session->setLastSuccessQuoteId($quoteId); $order->save(); $payment = $order->getPayment(); $trans = $payment->getTransaction($output->transactionId); } else { Mage::throwException(Mage::helper('paynovapayment')->__('order and/or transactionId is empty.')); } $capture = Mage::getStoreConfig('paynovapayment/advanced_settings/auto_finalize'); if ($capture) { $err = $abstractModel->invoicing($order); $order->save(); if ($err) { foreach (Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection() as $item) { Mage::getSingleton('checkout/cart')->removeItem($item->getId())->save(); } $this->_redirect('checkout/onepage/success', array('order_ids' => array($order->getId()))); return; } } $order->save(); //redirect to success $this->_redirect('checkout/onepage/success', array('order_ids' => array($order->getId()))); return; } else { $res = $paynova_order->createInitializePaymentCall($order, $paynova_order_nr, $selectedPaymentId, $selectedModelCode); $output = $abstractModel->setCurlCall($res, '/orders/' . $res['orderId'] . '/initializePayment'); $redirectURL = $abstractModel->getResponseFromInitialPaymentCall($output); // recieved the response from paynova. $order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage::helper('paynovapayment')->__('Redirected to Paynova.')); $order->save(); $session->setPaynovaQuoteId($session->getQuoteId()); $session->setPaynovaRealOrderId($session->getLastRealOrderId()); $lastQuoteId = $session->getLastQuoteId(); Mage::getModel('sales/quote')->load($lastQuoteId)->setIsActive(true)->save(); $session->clear(); @header("Location: {$redirectURL}"); // Redirect browser. die; $this->loadLayout(); //todo check if lines should be removed $this->renderLayout(); } } catch (Mage_Core_Exception $e) { $order->addStatusToHistory($order->getStatus(), Mage::helper('paynovapayment')->__($e->getMessage())); // try to save the exception with the current order. $this->_getCheckout()->addError(Mage::helper('paynovapayment')->__('We are sorry, but an error occurred while attempting to process your payment.')); $order->setState(Mage_Sales_Model_Order::STATE_CANCELED, Mage_Sales_Model_Order::STATE_CANCELED, Mage::helper('paynovapayment')->__($e->getMessage())); //set quote as active $quote = Mage::getModel('sales/quote')->load($quoteId); $quote->setIsActive(true)->save(); $session->setQuoteId($quoteId); $order->save(); parent::_redirect('checkout/cart'); } catch (Exception $e) { $this->_getCheckout()->addError($e->getMessage()); Mage::logException($e); $quote = Mage::getModel('sales/quote')->load($quoteId); $quote->setIsActive(true)->save(); $session->setQuoteId($quoteId); parent::_redirect('checkout/cart'); } }
/** * Fehlerbedigten Abbruch (URL_NOK) verarbeiten. * * @todo Fehlermeldung extrahieren und zum Verlauf hinzufügen */ public function failedAction() { Mage::log('MapiController > failedAction'); try { $postData = $_POST; if ($this->checkToken()) { # # MAJ JPN le 30/11/2015 # Prise en compte de l'annulation dans données POST # Contrôle commande + reinit du panier avec les données préchargées # if (empty($postData)) { // init des id panier et commande $lastQuoteId = $this->_getCheckout()->getLastQuoteId(); $lastOrderId = $this->_getCheckout()->getLastOrderId(); // init de l'objet panier $orderModel = Mage::getModel('sales/order')->load($lastOrderId); if ($orderModel->canCancel()) { // init du panier avec son id $quote = Mage::getModel('sales/quote')->load($lastQuoteId); // on active le panier et enregistrement $quote->setIsActive(true)->save(); // on met la commande en mode cancel $orderModel->cancel(); // ajout du status annulée + enregistrement $orderModel->setStatus('canceled'); $orderModel->save(); // init du message de l'erreur Mage::getSingleton('core/session')->setFailureMsg('order_failed'); Mage::getSingleton('checkout/session')->setFirstTimeChk('0'); // init du message d'erreur qui s'affichera au redirect sur la page panier Mage::getSingleton('core/session')->addError(__('Your order has been canceled because the payment process failed.')); // on redirige le client sur le panier $this->_redirect('checkout/cart', array("_forced_secure" => true)); return; } } elseif ($this->requestHasValidPostData()) { Mage::log('Array POST ['); Mage::log($_POST); Mage::log(']'); $session = $this->_getCheckout(); $order = Mage::getModel('sales/order'); $order->loadByIncrementId($session->getLastRealOrderId()); $order->cancel(); $order->addStatusHistoryComment(Mage::helper('hipaymod')->__('Hipay payment failed'), Mage_Sales_Model_Order::STATE_CANCELED); $order->save(); $order->sendOrderUpdateEmail(Mage::helper('hipaymod')->__('Your order has been canceled because the payment process failed.')); $this->_redirect('checkout/onepage/failure'); } else { Mage::log('Received data could not be validated (invalid hash key!): ' . $xml); parent::_redirect('checkout/cart'); } } else { Mage::log('Invalid security token'); parent::_redirect('checkout/cart'); } } catch (Exception $e) { Mage::logException($e); parent::_redirect('checkout/cart'); } }