_initToken(false); // TODO verify if this logic of order cancellation is deprecated // if there is an order - cancel it $orderId = $this->_getCheckoutSession()->getLastOrderId(); /** @var \Magento\Sales\Model\Order $order */ $order = $orderId ? $this->_orderFactory->create()->load($orderId) : false; if ($order && $order->getId() && $order->getQuoteId() == $this->_getCheckoutSession()->getQuoteId()) { $order->cancel()->save(); $this->_getCheckoutSession() ->unsLastQuoteId() ->unsLastSuccessQuoteId() ->unsLastOrderId() ->unsLastRealOrderId(); $this->messageManager->addSuccessMessage( __('Express Checkout and Order have been canceled.') ); } else { $this->messageManager->addSuccessMessage( __('Express Checkout has been canceled.') ); } } catch (\Magento\Framework\Exception\LocalizedException $e) { $this->messageManager->addExceptionMessage($e, $e->getMessage()); } catch (\Exception $e) { $this->messageManager->addExceptionMessage($e, __('Unable to cancel Express Checkout')); } /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); return $resultRedirect->setPath('checkout/cart'); } }