Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Review.php
Go to the documentation of this file.
1 <?php
8 
15 
19 class Review extends AbstractAction
20 {
24  private $quoteUpdater;
25 
29  private static $paymentMethodNonce = 'payment_method_nonce';
30 
39  public function __construct(
40  Context $context,
43  QuoteUpdater $quoteUpdater
44  ) {
45  parent::__construct($context, $config, $checkoutSession);
46  $this->quoteUpdater = $quoteUpdater;
47  }
48 
52  public function execute()
53  {
54  $requestData = json_decode(
55  $this->getRequest()->getPostValue('result', '{}'),
56  true
57  );
58  $quote = $this->checkoutSession->getQuote();
59 
60  try {
61  $this->validateQuote($quote);
62 
63  if ($this->validateRequestData($requestData)) {
64  $this->quoteUpdater->execute(
65  $requestData['nonce'],
66  $requestData['details'],
67  $quote
68  );
69  } elseif (!$quote->getPayment()->getAdditionalInformation(self::$paymentMethodNonce)) {
70  throw new LocalizedException(__('Checkout failed to initialize. Verify and try again.'));
71  }
72 
74  $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
75 
77  $reviewBlock = $resultPage->getLayout()->getBlock('braintree.paypal.review');
78 
79  $reviewBlock->setQuote($quote);
80  $reviewBlock->getChildBlock('shipping_method')->setData('quote', $quote);
81 
82  return $resultPage;
83  } catch (\Exception $e) {
84  $this->messageManager->addExceptionMessage($e, $e->getMessage());
85  }
86 
88  $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
89 
90  return $resultRedirect->setPath('checkout/cart', ['_secure' => true]);
91  }
92 
97  private function validateRequestData(array $requestData)
98  {
99  return !empty($requestData['nonce']) && !empty($requestData['details']);
100  }
101 }
__construct(Context $context, Config $config, Session $checkoutSession, QuoteUpdater $quoteUpdater)
Definition: Review.php:39
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
$quote
__()
Definition: __.php:13