/** * Show payment page * @return \Magento\Framework\View\Result\PageFactory */ public function execute() { $resultPage = $this->_resultPageFactory->create(); $resultPage->getLayout()->getBlock('pagseguro.direct.payment')->setData('order', $this->_checkoutSession->getLastRealOrder()->getId()); try { $this->_library->setEnvironment(); $resultPage->getLayout()->getBlock('pagseguro.direct.payment')->setData('sessionCode', $this->_library->getSession()); $resultPage->getLayout()->getBlock('pagseguro.direct.payment')->setData('paymentUrl', $this->_library->getDirectPaymentUrl()); } catch (\Exception $exc) { /** @var \Magento\Sales\Model\Order $order */ $order = $this->_objectManager->create('\\Magento\\Sales\\Model\\Order')->load($this->_checkoutSession->getLastRealOrder()->getId()); /** change payment status in magento */ $order->addStatusToHistory('pagseguro_cancelada', null, true); /** save order */ $order->save(); return $this->_redirect('pagseguro/payment/failure'); } return $resultPage; }