Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AddFieldsToResponseObserver.php
Go to the documentation of this file.
1 <?php
7 
10 
12 {
17  protected $coreRegistry;
18 
22  protected $payment;
23 
27  protected $session;
28 
32  protected $storeManager;
33 
40  public function __construct(
41  \Magento\Framework\Registry $coreRegistry,
42  \Magento\Authorizenet\Model\Directpost $payment,
43  \Magento\Authorizenet\Model\Directpost\Session $session,
45  ) {
46  $this->coreRegistry = $coreRegistry;
47  $this->payment = $payment;
48  $this->session = $session;
49  $this->storeManager = $storeManager;
50  }
51 
58  public function execute(\Magento\Framework\Event\Observer $observer)
59  {
60  /* @var $order Order */
61  $order = $this->coreRegistry->registry('directpost_order');
62 
63  if (!$order || !$order->getId()) {
64  return $this;
65  }
66 
67  $payment = $order->getPayment();
68 
69  if (!$payment || $payment->getMethod() != $this->payment->getCode()) {
70  return $this;
71  }
72 
73  $result = $observer->getData('result')->getData();
74 
75  if (!empty($result['error'])) {
76  return $this;
77  }
78 
79  // if success, then set order to session and add new fields
80  $this->session->addCheckoutOrderIncrementId($order->getIncrementId());
81  $this->session->setLastOrderIncrementId($order->getIncrementId());
82 
83  $requestToAuthorizenet = $payment->getMethodInstance()
84  ->generateRequestFromOrder($order);
85  $requestToAuthorizenet->setControllerActionName(
86  $observer->getData('action')
87  ->getRequest()
88  ->getControllerName()
89  );
90  $requestToAuthorizenet->setIsSecure(
91  (string)$this->storeManager->getStore()
92  ->isCurrentlySecure()
93  );
94 
95  $result[$this->payment->getCode()] = ['fields' => $requestToAuthorizenet->getData()];
96 
97  $observer->getData('result')->setData($result);
98 
99  return $this;
100  }
101 }
$order
Definition: order.php:55
__construct(\Magento\Framework\Registry $coreRegistry, \Magento\Authorizenet\Model\Directpost $payment, \Magento\Authorizenet\Model\Directpost\Session $session, \Magento\Store\Model\StoreManagerInterface $storeManager)