Example #1
0
 /**
  * @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;
 }
Example #2
0
 /**
  * @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;
 }
Example #3
0
 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;
 }
Example #4
0
 /**
  * @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;
 }
Example #5
0
 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;
 }
Example #6
0
 /**
  * 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;
 }
Example #7
0
 /**
  * @return \Orba\Payupl\Model\Client\OrderInterface
  */
 protected function getClientOrderHelper()
 {
     return $this->clientFactory->create()->getOrderHelper();
 }