DataAssignObserver.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. /**
  3. * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License").
  6. * You may not use this file except in compliance with the License.
  7. * A copy of the License is located at
  8. *
  9. * http://aws.amazon.com/apache2.0
  10. *
  11. * or in the "license" file accompanying this file. This file is distributed
  12. * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  13. * express or implied. See the License for the specific language governing
  14. * permissions and limitations under the License.
  15. */
  16. namespace Amazon\Payment\Observer;
  17. use Magento\Framework\Event\Observer;
  18. use Magento\Payment\Observer\AbstractDataAssignObserver;
  19. use Magento\Quote\Api\Data\PaymentInterface;
  20. use Amazon\Payment\Plugin\AdditionalInformation;
  21. class DataAssignObserver extends AbstractDataAssignObserver
  22. {
  23. /**
  24. * @var array
  25. */
  26. private $additionalInformationList = [
  27. AdditionalInformation::KEY_SANDBOX_SIMULATION_REFERENCE
  28. ];
  29. /**
  30. * @param Observer $observer
  31. * @return void
  32. */
  33. public function execute(Observer $observer)
  34. {
  35. $data = $this->readDataArgument($observer);
  36. $additionalData = $data->getData(PaymentInterface::KEY_ADDITIONAL_DATA);
  37. if (!is_array($additionalData)) {
  38. return;
  39. }
  40. $paymentInfo = $this->readPaymentModelArgument($observer);
  41. foreach ($this->additionalInformationList as $additionalInformationKey) {
  42. if (isset($additionalData[$additionalInformationKey])) {
  43. $paymentInfo->setAdditionalInformation(
  44. $additionalInformationKey,
  45. $additionalData[$additionalInformationKey]
  46. );
  47. }
  48. }
  49. }
  50. }