/** * @return \Magento\Framework\Controller\Result\Redirect */ public function execute() { /** * @var $clientOrderHelper \Orba\Payupl\Model\Client\OrderInterface * @var $resultRedirect \Magento\Framework\Controller\Result\Redirect */ $resultRedirect = $this->resultRedirectFactory->create(); $redirectUrl = 'checkout/cart'; $redirectParams = []; $orderId = $this->orderHelper->getOrderIdForPaymentStart(); if ($orderId) { $order = $this->orderHelper->loadOrderById($orderId); if ($this->orderHelper->canStartFirstPayment($order)) { try { $client = $this->clientFactory->create(); $clientOrderHelper = $client->getOrderHelper(); $orderData = $clientOrderHelper->getDataForOrderCreate($order); $result = $client->orderCreate($orderData); $this->orderHelper->addNewOrderTransaction($order, $result['orderId'], $result['extOrderId'], $clientOrderHelper->getNewStatus()); $this->orderHelper->setNewOrderStatus($order); $redirectUrl = $result['redirectUri']; } catch (LocalizedException $e) { $this->logger->critical($e); $redirectUrl = 'orba_payupl/payment/end'; $redirectParams = ['exception' => '1']; } $this->session->setLastOrderId($orderId); } } $resultRedirect->setPath($redirectUrl, $redirectParams); return $resultRedirect; }
/** * @return \Magento\Framework\Controller\Result\Redirect */ public function execute() { /** * @var $clientOrderHelper \Orba\Payupl\Model\Client\OrderInterface */ $resultRedirect = $this->resultRedirectFactory->create(); $orderId = $this->session->getLastOrderId(); $redirectParams = []; if ($orderId) { try { $client = $this->clientFactory->create(); $clientOrderHelper = $client->getOrderHelper(); $order = $this->orderHelper->loadOrderById($orderId); $orderData = $clientOrderHelper->getDataForOrderCreate($order); $result = $client->orderCreate($orderData); $this->orderHelper->addNewOrderTransaction($order, $result['orderId'], $result['extOrderId'], $clientOrderHelper->getNewStatus()); $this->orderHelper->setNewOrderStatus($order); $redirectUrl = $result['redirectUri']; } catch (LocalizedException $e) { $redirectUrl = 'orba_payupl/payment/end'; $redirectParams = ['exception' => '1']; } } else { $redirectUrl = 'orba_payupl/payment/repeat_error'; } $resultRedirect->setPath($redirectUrl, $redirectParams); return $resultRedirect; }
protected function _prepareSpecificInformation($transport = null) { /** * @var $client \Orba\Payupl\Model\Client */ $transport = parent::_prepareSpecificInformation($transport); $orderId = $this->getInfo()->getParentId(); $status = $this->transactionResource->getLastStatusByOrderId($orderId); $client = $this->clientFactory->create(); $statusDescription = $client->getOrderHelper()->getStatusDescription($status); $transport->setData((string) __('Status'), $statusDescription); return $transport; }
/** * @param \Magento\Payment\Model\InfoInterface $payment * @param float $amount * @return $this */ public function refund(\Magento\Payment\Model\InfoInterface $payment, $amount) { /** * @var $order \Magento\Sales\Model\Order */ $order = $payment->getOrder(); $payuplOrderId = $this->transactionResource->getLastPayuplOrderIdByOrderId($order->getId()); $client = $this->clientFactory->create(); $client->refundCreate($payuplOrderId, __('Refund for order # %1', $order->getIncrementId()), $amount * 100); return $this; }
public function execute() { /** * @var $client \Orba\Payupl\Model\Client */ $request = $this->context->getRequest(); try { $client = $this->clientFactory->create(); $response = $client->orderConsumeNotification($request); $clientOrderHelper = $client->getOrderHelper(); if ($clientOrderHelper->canProcessNotification($response['payuplOrderId'])) { return $clientOrderHelper->processNotification($response['payuplOrderId'], $response['status'], $response['amount']); } } catch (LocalizedException $e) { $this->logger->critical($e); } /** * @var $resultForward \Magento\Framework\Controller\Result\Forward */ $resultForward = $this->resultForwardFactory->create(); $resultForward->forward('noroute'); return $resultForward; }
/** * Returns false if paytypes are disabled in checkout or there is no method for paytypes in current API. * Returns array of paytypes otherwise. * * @param \Magento\Quote\Api\Data\CartInterface $quote * @return array|false */ public function getAllForQuote(\Magento\Quote\Api\Data\CartInterface $quote) { /** * @var $client \Orba\Payupl\Model\Client */ if (!$this->scopeConfig->isSetFlag(\Orba\Payupl\Model\Payupl::XML_PATH_PAYTYPES_IN_CHECKOUT, 'store')) { return false; } $client = $this->clientFactory->create(); $paytypes = $client->getPaytypes(); if ($paytypes === false) { return false; } $total = $quote->getGrandTotal(); foreach ($paytypes as $key => $paytype) { if (!$paytype['enable'] || $total < $paytype['min'] || $total > $paytype['max']) { unset($paytypes[$key]); } else { $paytypes[$key]['id'] = 'orba-payupl-paytype-' . $paytype['type']; } } return $paytypes; }
/** * @return \Orba\Payupl\Model\Client\OrderInterface */ protected function getClientOrderHelper() { return $this->clientFactory->create()->getOrderHelper(); }