VoidRequestBuilder.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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\Gateway\Request;
  17. use Magento\Payment\Gateway\Request\BuilderInterface;
  18. use Magento\Framework\App\ProductMetadata;
  19. use Amazon\Payment\Gateway\Helper\SubjectReader;
  20. use Amazon\Core\Helper\Data;
  21. use Magento\Sales\Api\OrderRepositoryInterface;
  22. class VoidRequestBuilder implements BuilderInterface
  23. {
  24. /**
  25. * @var ProductMetadata
  26. */
  27. private $productMetaData;
  28. /**
  29. * @var SubjectReader
  30. */
  31. private $subjectReader;
  32. /**
  33. * @var Data
  34. */
  35. private $coreHelper;
  36. /**
  37. * @var OrderRepositoryInterface
  38. */
  39. private $orderRepository;
  40. /**
  41. * VoidRequestBuilder constructor.
  42. *
  43. * @param ProductMetadata $productMetadata
  44. * @param SubjectReader $subjectReader
  45. * @param Data $coreHelper
  46. * @param OrderRepositoryInterface $orderRepository
  47. */
  48. public function __construct(
  49. ProductMetaData $productMetadata,
  50. SubjectReader $subjectReader,
  51. Data $coreHelper,
  52. OrderRepositoryInterface $orderRepository
  53. ) {
  54. $this->coreHelper = $coreHelper;
  55. $this->productMetaData = $productMetadata;
  56. $this->subjectReader = $subjectReader;
  57. $this->orderRepository = $orderRepository;
  58. }
  59. /**
  60. * Builds ENV request
  61. *
  62. * @param array $buildSubject
  63. * @return array
  64. */
  65. public function build(array $buildSubject)
  66. {
  67. $data = [];
  68. $paymentDO = $this->subjectReader->readPayment($buildSubject);
  69. $orderDO = $paymentDO->getOrder();
  70. $order = $this->orderRepository->get($orderDO->getId());
  71. if ($order) {
  72. $quoteLink = $this->subjectReader->getQuoteLink($order->getQuoteId());
  73. if ($quoteLink) {
  74. $data = [
  75. 'store_id' => $order->getStoreId(),
  76. 'amazon_order_reference_id' => $quoteLink->getAmazonOrderReferenceId()
  77. ];
  78. }
  79. }
  80. return $data;
  81. }
  82. }