コード例 #1
0
ファイル: Start.php プロジェクト: ORBA/magento2_payupl
 /**
  * @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;
 }
コード例 #2
0
ファイル: Start.php プロジェクト: ORBA/magento2_payupl
 /**
  * @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;
 }
コード例 #3
0
 public function testAddNewOrderTransaction()
 {
     $payuplOrderId = 'ABC';
     $payuplExternalOrderId = '123';
     $status = 'NEW';
     $orderId = 1;
     $try = 2;
     $order = $this->getOrderMock();
     $order->expects($this->once())->method('getId')->willReturn($orderId);
     $this->transactionResource->expects($this->once())->method('getLastTryByOrderId')->willReturn($try);
     $payment = $this->getMockBuilder(\Magento\Sales\Model\Order\Payment::class)->disableOriginalConstructor()->getMock();
     $payment->expects($this->once())->method('setTransactionId')->with($this->equalTo($payuplOrderId));
     $payment->expects($this->once())->method('setTransactionAdditionalInfo')->with($this->equalTo(\Magento\Sales\Model\Order\Payment\Transaction::RAW_DETAILS), $this->equalTo(['order_id' => $payuplExternalOrderId, 'try' => $try + 1, 'status' => $status]));
     $payment->expects($this->once())->method('setIsTransactionClosed')->with($this->equalTo(0));
     $transaction = $this->getMockBuilder(\Magento\Sales\Model\Order\Payment\Transaction::class)->disableOriginalConstructor()->getMock();
     $transaction->expects($this->once())->method('save');
     $payment->expects($this->once())->method('addTransaction')->with($this->equalTo('order'))->willReturn($transaction);
     $payment->expects($this->once())->method('save');
     $order->expects($this->once())->method('getPayment')->willReturn($payment);
     $this->model->addNewOrderTransaction($order, $payuplOrderId, $payuplExternalOrderId, $status);
 }