DataAssignObserver.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Braintree\Observer;
  7. use Magento\Framework\Event\Observer;
  8. use Magento\Payment\Observer\AbstractDataAssignObserver;
  9. use Magento\Quote\Api\Data\PaymentInterface;
  10. /**
  11. * Class DataAssignObserver
  12. */
  13. class DataAssignObserver extends AbstractDataAssignObserver
  14. {
  15. const PAYMENT_METHOD_NONCE = 'payment_method_nonce';
  16. const DEVICE_DATA = 'device_data';
  17. /**
  18. * @var array
  19. */
  20. protected $additionalInformationList = [
  21. self::PAYMENT_METHOD_NONCE,
  22. self::DEVICE_DATA
  23. ];
  24. /**
  25. * @param Observer $observer
  26. * @return void
  27. */
  28. public function execute(Observer $observer)
  29. {
  30. $data = $this->readDataArgument($observer);
  31. $additionalData = $data->getData(PaymentInterface::KEY_ADDITIONAL_DATA);
  32. if (!is_array($additionalData)) {
  33. return;
  34. }
  35. $paymentInfo = $this->readPaymentModelArgument($observer);
  36. foreach ($this->additionalInformationList as $additionalInformationKey) {
  37. if (isset($additionalData[$additionalInformationKey])) {
  38. $paymentInfo->setAdditionalInformation(
  39. $additionalInformationKey,
  40. $additionalData[$additionalInformationKey]
  41. );
  42. }
  43. }
  44. }
  45. }