di.xml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. <?xml version="1.0"?>
  2. <!--
  3. /**
  4. * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
  5. *
  6. * Licensed under the Apache License, Version 2.0 (the "License").
  7. * You may not use this file except in compliance with the License.
  8. * A copy of the License is located at
  9. *
  10. * http://aws.amazon.com/apache2.0
  11. *
  12. * or in the "license" file accompanying this file. This file is distributed
  13. * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  14. * express or implied. See the License for the specific language governing
  15. * permissions and limitations under the License.
  16. */
  17. -->
  18. <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
  19. <!-- Payment Method Facade configuration -->
  20. <virtualType name="AmazonFacade" type="Magento\Payment\Model\Method\Adapter">
  21. <arguments>
  22. <argument name="code" xsi:type="const">Amazon\Payment\Gateway\Config\Config::CODE</argument>
  23. <argument name="formBlockType" xsi:type="string">Magento\Payment\Block\Form</argument>
  24. <argument name="infoBlockType" xsi:type="string">Magento\Payment\Block\Info</argument>
  25. <argument name="valueHandlerPool" xsi:type="object">AmazonValueHandlerPool</argument>
  26. <argument name="validatorPool" xsi:type="object">AmazonValidatorPool</argument>
  27. <argument name="commandPool" xsi:type="object">AmazonCommandPool</argument>
  28. </arguments>
  29. </virtualType>
  30. <!-- Amazon validators infrastructure -->
  31. <virtualType name="AmazonCountryValidator" type="Magento\Payment\Gateway\Validator\CountryValidator">
  32. <arguments>
  33. <argument name="config" xsi:type="object">Amazon\Payment\Gateway\Config\Config</argument>
  34. </arguments>
  35. </virtualType>
  36. <virtualType name="AmazonCurrencyValidator" type="Amazon\Payment\Gateway\Validator\CurrencyValidator">
  37. <arguments>
  38. <argument name="config" xsi:type="object">Amazon\Payment\Gateway\Config\Config</argument>
  39. </arguments>
  40. </virtualType>
  41. <virtualType name="AmazonValidatorPool" type="Magento\Payment\Gateway\Validator\ValidatorPool">
  42. <arguments>
  43. <argument name="validators" xsi:type="array">
  44. <item name="country" xsi:type="string">AmazonCountryValidator</item>
  45. <item name="currency" xsi:type="string">AmazonCurrencyValidator</item>
  46. </argument>
  47. </arguments>
  48. </virtualType>
  49. <!-- Amazon error code mapper -->
  50. <virtualType name="Amazon\Payment\Gateway\ErrorMapper\VirtualConfigReader" type="Magento\Payment\Gateway\ErrorMapper\VirtualConfigReader">
  51. <arguments>
  52. <argument name="fileName" xsi:type="string">amazon_error_mapping.xml</argument>
  53. </arguments>
  54. </virtualType>
  55. <virtualType name="Amazon\Payment\Gateway\ErrorMapper\VirtualMappingData" type="Magento\Payment\Gateway\ErrorMapper\MappingData">
  56. <arguments>
  57. <argument name="reader" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualConfigReader</argument>
  58. <argument name="cacheId" xsi:type="string">amazon_error_mapper</argument>
  59. </arguments>
  60. </virtualType>
  61. <virtualType name="Amazon\Payment\Gateway\ErrorMapper\VirtualErrorMessageMapper" type="Magento\Payment\Gateway\ErrorMapper\ErrorMessageMapper">
  62. <arguments>
  63. <argument name="messageMapping" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualMappingData</argument>
  64. </arguments>
  65. </virtualType>
  66. <!-- Logger, initialized with Amazon Config -->
  67. <virtualType name="AmazonLogger" type="Magento\Payment\Model\Method\Logger">
  68. <arguments>
  69. <argument name="config" xsi:type="object">AmazonGatewayConfig</argument>
  70. </arguments>
  71. </virtualType>
  72. <!-- Commands infrastructure -->
  73. <virtualType name="AmazonCommandPool" type="Magento\Payment\Gateway\Command\CommandPool">
  74. <arguments>
  75. <argument name="commands" xsi:type="array">
  76. <item name="authorize" xsi:type="string">AmazonAuthorizeCommand</item>
  77. <item name="capture" xsi:type="string">AmazonCaptureStrategyCommand</item>
  78. <item name="sale" xsi:type="string">AmazonSaleCommand</item>
  79. <item name="settlement" xsi:type="string">AmazonSettlementCommand</item>
  80. <item name="void" xsi:type="string">AmazonVoidCommand</item>
  81. <item name="cancel" xsi:type="string">AmazonVoidCommand</item>
  82. <item name="refund" xsi:type="string">AmazonRefundCommand</item>
  83. </argument>
  84. </arguments>
  85. </virtualType>
  86. <virtualType name="AmazonCaptureStrategyCommand" type="Amazon\Payment\Gateway\Command\CaptureStrategyCommand">
  87. <arguments>
  88. <argument name="commandPool" xsi:type="object">AmazonCommandPool</argument>
  89. </arguments>
  90. </virtualType>
  91. <!-- Configuration reader -->
  92. <virtualType name="AmazonGatewayConfig" type="Amazon\Payment\Gateway\Config\Config">
  93. <arguments>
  94. <argument name="methodCode" xsi:type="const">Amazon\Payment\Gateway\Config\Config::CODE</argument>
  95. </arguments>
  96. </virtualType>
  97. <virtualType name="AmazonCommandManager" type="Magento\Payment\Gateway\Command\CommandManager">
  98. <arguments>
  99. <argument name="commandPool" xsi:type="object">AmazonCommandPool</argument>
  100. </arguments>
  101. </virtualType>
  102. <type name="Magento\Payment\Gateway\Command\CommandManagerPool">
  103. <arguments>
  104. <argument name="executors" xsi:type="array">
  105. <item name="amazon_payment" xsi:type="string">AmazonCommandManager</item>
  106. </argument>
  107. </arguments>
  108. </type>
  109. <virtualType name="AmazonAuthorizationValidators" type="Magento\Payment\Gateway\Validator\ValidatorComposite">
  110. <arguments>
  111. <argument name="validators" xsi:type="array">
  112. <item name="contraints" xsi:type="string">Amazon\Payment\Gateway\Validator\ConstraintValidator</item>
  113. <item name="authcodes" xsi:type="string">Amazon\Payment\Gateway\Validator\AuthorizationValidator</item>
  114. </argument>
  115. </arguments>
  116. </virtualType>
  117. <!-- Authorize command -->
  118. <virtualType name="AmazonAuthorizeCommand" type="Amazon\Payment\Gateway\Command\AmazonAuthCommand">
  119. <arguments>
  120. <argument name="requestBuilder" xsi:type="object">Amazon\Payment\Gateway\Request\AuthorizationRequestBuilder</argument>
  121. <argument name="handler" xsi:type="object">Amazon\Payment\Gateway\Response\CompleteAuthHandler</argument>
  122. <argument name="transferFactory" xsi:type="object">Amazon\Payment\Gateway\Http\TransferFactory</argument>
  123. <argument name="validator" xsi:type="object">AmazonAuthorizationValidators</argument>
  124. <argument name="client" xsi:type="object">Amazon\Payment\Gateway\Http\Client\AuthorizeClient</argument>
  125. <argument name="errorMessageMapper" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
  126. </arguments>
  127. </virtualType>
  128. <type name="Amazon\Payment\Gateway\Request\AuthorizationRequestBuilder">
  129. <arguments>
  130. <argument name="config" xsi:type="object">AmazonGatewayConfig</argument>
  131. </arguments>
  132. </type>
  133. <!-- Authorize and Capture command -->
  134. <virtualType name="AmazonSaleCommand" type="Amazon\Payment\Gateway\Command\AmazonAuthCommand">
  135. <arguments>
  136. <argument name="requestBuilder" xsi:type="object">Amazon\Payment\Gateway\Request\AuthorizationRequestBuilder</argument>
  137. <argument name="handler" xsi:type="object">Amazon\Payment\Gateway\Response\CompleteSaleHandler</argument>
  138. <argument name="transferFactory" xsi:type="object">Amazon\Payment\Gateway\Http\TransferFactory</argument>
  139. <argument name="validator" xsi:type="object">AmazonAuthorizationValidators</argument>
  140. <argument name="client" xsi:type="object">Amazon\Payment\Gateway\Http\Client\CaptureClient</argument>
  141. <argument name="errorMessageMapper" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
  142. </arguments>
  143. </virtualType>
  144. <!-- Capture settlement command -->
  145. <virtualType name="AmazonSettlementCommand" type="Amazon\Payment\Gateway\Command\AmazonAuthCommand">
  146. <arguments>
  147. <argument name="requestBuilder" xsi:type="object">Amazon\Payment\Gateway\Request\SettlementRequestBuilder</argument>
  148. <argument name="handler" xsi:type="object">Amazon\Payment\Gateway\Response\SettlementHandler</argument>
  149. <argument name="transferFactory" xsi:type="object">Amazon\Payment\Gateway\Http\TransferFactory</argument>
  150. <argument name="validator" xsi:type="object">AmazonAuthorizationValidators</argument>
  151. <argument name="client" xsi:type="object">Amazon\Payment\Gateway\Http\Client\SettlementClient</argument>
  152. <argument name="errorMessageMapper" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
  153. </arguments>
  154. </virtualType>
  155. <!-- Refund Command -->
  156. <virtualType name="AmazonRefundCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
  157. <arguments>
  158. <argument name="requestBuilder" xsi:type="object">Amazon\Payment\Gateway\Request\RefundRequestBuilder</argument>
  159. <argument name="handler" xsi:type="object">Amazon\Payment\Gateway\Response\RefundHandler</argument>
  160. <argument name="transferFactory" xsi:type="object">Amazon\Payment\Gateway\Http\TransferFactory</argument>
  161. <argument name="validator" xsi:type="object">Amazon\Payment\Gateway\Validator\AuthorizationValidator</argument>
  162. <argument name="client" xsi:type="object">Amazon\Payment\Gateway\Http\Client\RefundClient</argument>
  163. <argument name="errorMessageMapper" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
  164. </arguments>
  165. </virtualType>
  166. <!-- Void command -->
  167. <virtualType name="AmazonVoidCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
  168. <arguments>
  169. <argument name="requestBuilder" xsi:type="object">Amazon\Payment\Gateway\Request\VoidRequestBuilder</argument>
  170. <argument name="handler" xsi:type="object">Amazon\Payment\Gateway\Response\VoidHandler</argument>
  171. <argument name="transferFactory" xsi:type="object">Amazon\Payment\Gateway\Http\TransferFactory</argument>
  172. <argument name="validator" xsi:type="object">Amazon\Payment\Gateway\Validator\AuthorizationValidator</argument>
  173. <argument name="client" xsi:type="object">Amazon\Payment\Gateway\Http\Client\VoidClient</argument>
  174. <argument name="errorMessageMapper" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
  175. </arguments>
  176. </virtualType>
  177. <!-- Void Request -->
  178. <type name="Amazon\Payment\Gateway\Request\VoidRequestBuilder">
  179. <arguments>
  180. <argument name="config" xsi:type="object">AmazonGatewayConfig</argument>
  181. </arguments>
  182. </type>
  183. <!-- Value handlers infrastructure -->
  184. <virtualType name="AmazonValueHandlerPool" type="Magento\Payment\Gateway\Config\ValueHandlerPool">
  185. <arguments>
  186. <argument name="handlers" xsi:type="array">
  187. <item name="default" xsi:type="string">AmazonConfigValueHandler</item>
  188. </argument>
  189. </arguments>
  190. </virtualType>
  191. <virtualType name="AmazonConfigValueHandler" type="Magento\Payment\Gateway\Config\ConfigValueHandler">
  192. <arguments>
  193. <argument name="configInterface" xsi:type="object">AmazonGatewayConfig</argument>
  194. </arguments>
  195. </virtualType>
  196. <type name="Amazon\Payment\Block\Info">
  197. <arguments>
  198. <argument name="config" xsi:type="object">AmazonGatewayConfig</argument>
  199. </arguments>
  200. </type>
  201. <!-- end gateway config -->
  202. <preference for="Amazon\Payment\Api\OrderInformationManagementInterface" type="Amazon\Payment\Model\OrderInformationManagement"/>
  203. <preference for="Amazon\Payment\Api\AddressManagementInterface" type="Amazon\Payment\Model\AddressManagement"/>
  204. <preference for="Amazon\Payment\Api\QuoteLinkManagementInterface" type="Amazon\Payment\Model\QuoteLinkManagement"/>
  205. <preference for="Amazon\Payment\Api\Data\QuoteLinkInterface" type="Amazon\Payment\Model\QuoteLink"/>
  206. <preference for="Amazon\Payment\Api\Data\OrderLinkInterface" type="Amazon\Payment\Model\OrderLink"/>
  207. <preference for="Amazon\Payment\Api\Data\PendingCaptureInterface" type="Amazon\Payment\Model\PendingCapture"/>
  208. <preference for="Amazon\Payment\Api\Data\PendingAuthorizationInterface" type="Amazon\Payment\Model\PendingAuthorization"/>
  209. <preference for="Amazon\Payment\Api\Data\PendingRefundInterface" type="Amazon\Payment\Model\PendingRefund"/>
  210. <preference for="Amazon\Payment\Ipn\IpnHandlerFactoryInterface" type="Amazon\Payment\Ipn\IpnHandlerFactory"/>
  211. <preference for="AmazonPay\IpnHandlerInterface" type="Amazon\Payment\Ipn\IpnHandler"/>
  212. <preference for="Amazon\Payment\Api\Ipn\CompositeProcessorInterface" type="Amazon\Payment\Model\Ipn\CompositeProcessor"/>
  213. <type name="Magento\Quote\Api\CartRepositoryInterface">
  214. <plugin name="amazon_payment_quote_repository" type="Amazon\Payment\Plugin\QuoteRepository" sortOrder="1"/>
  215. </type>
  216. <type name="Magento\Checkout\Api\ShippingInformationManagementInterface">
  217. <plugin name="amazon_payment_shipping_information_management" type="Amazon\Payment\Plugin\ShippingInformationManagement" sortOrder="1"/>
  218. </type>
  219. <type name="Magento\Quote\Api\Data\PaymentInterface">
  220. <plugin name="amazon_payment_additional_information" type="Amazon\Payment\Plugin\AdditionalInformation"/>
  221. </type>
  222. <type name="Amazon\Payment\Model\Method\AmazonLoginMethod">
  223. <plugin name="disable_amazon_payment_method" type="Amazon\Payment\Plugin\DisableAmazonPaymentMethod" sortOrder="10" disabled="false"/>
  224. </type>
  225. <type name="Amazon\Payment\Cron\ProcessAmazonRefunds">
  226. <arguments>
  227. <argument name="paymentManagement" xsi:type="object">Amazon\Payment\Model\PaymentManagement\Proxy</argument>
  228. </arguments>
  229. </type>
  230. <type name="Amazon\Payment\Cron\GetAmazonCaptureUpdates">
  231. <arguments>
  232. <argument name="paymentManagement" xsi:type="object">Amazon\Payment\Model\PaymentManagement\Proxy</argument>
  233. </arguments>
  234. </type>
  235. <type name="Amazon\Payment\Model\QueuedRefundUpdater">
  236. <arguments>
  237. <argument name="adminNotifier" xsi:type="object">Magento\Framework\Notification\NotifierInterface\Proxy</argument>
  238. </arguments>
  239. </type>
  240. <type name="Amazon\Payment\Api\Ipn\CompositeProcessorInterface">
  241. <arguments>
  242. <argument name="processors" xsi:type="array">
  243. <item name="captureprocessor" xsi:type="object">Amazon\Payment\Model\Ipn\CaptureProcessor\Proxy</item>
  244. <item name="authorizationprocessor" xsi:type="object">Amazon\Payment\Model\Ipn\AuthorizationProcessor\Proxy</item>
  245. <item name="orderprocessor" xsi:type="object">Amazon\Payment\Model\Ipn\OrderProcessor\Proxy</item>
  246. <item name="refundprocessor" xsi:type="object">Amazon\Payment\Model\Ipn\RefundProcessor\Proxy</item>
  247. </argument>
  248. </arguments>
  249. </type>
  250. <type name="Amazon\Core\Logger\IpnLogger">
  251. <arguments>
  252. <argument name="name" xsi:type="string">amazonIpnLogger</argument>
  253. <argument name="handlers" xsi:type="array">
  254. <item name="debug" xsi:type="object">Amazon\Core\Logger\Handler\Ipn</item>
  255. </argument>
  256. </arguments>
  257. </type>
  258. <type name="Amazon\Payment\Ipn\IpnHandlerFactoryInterface">
  259. <arguments>
  260. <argument name="logger" xsi:type="object">Amazon\Core\Logger\IpnLogger</argument>
  261. </arguments>
  262. </type>
  263. <type name="Magento\Framework\Webapi\ErrorProcessor">
  264. <plugin name="amazon_payment_webapi_error_processor" type="Amazon\Payment\Plugin\WebapiErrorProcessor" sortOrder="1"/>
  265. </type>
  266. <type name="Amazon\Payment\Gateway\Config\Config">
  267. <arguments>
  268. <argument name="methodCode" xsi:type="const">Amazon\Payment\Gateway\Config\Config::CODE</argument>
  269. </arguments>
  270. </type>
  271. <type name="Amazon\Payment\Helper\Shortcut\Validator">
  272. <arguments>
  273. <argument name="amazonConfig" xsi:type="object">Amazon\Payment\Gateway\Config\Config</argument>
  274. </arguments>
  275. </type>
  276. <type name="Magento\ScalableCheckout\Console\Command\SplitQuote">
  277. <arguments>
  278. <argument name="tables" xsi:type="array">
  279. <item name="amazon_quote" xsi:type="string">amazon_quote</item>
  280. </argument>
  281. </arguments>
  282. </type>
  283. <type name="Amazon\Payment\Model\ResourceModel\QuoteLink">
  284. <arguments>
  285. <argument name="connectionName" xsi:type="string">checkout</argument>
  286. </arguments>
  287. </type>
  288. <type name="Magento\ScalableOms\Console\Command\SplitSales">
  289. <arguments>
  290. <argument name="tables" xsi:type="array">
  291. <item name="amazon_sales_order" xsi:type="string">amazon_sales_order</item>
  292. </argument>
  293. </arguments>
  294. </type>
  295. <type name="Amazon\Payment\Model\ResourceModel\OrderLink">
  296. <arguments>
  297. <argument name="connectionName" xsi:type="string">sales</argument>
  298. </arguments>
  299. </type>
  300. </config>