di.xml 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631
  1. <?xml version="1.0"?>
  2. <!--
  3. /**
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. -->
  8. <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
  9. <!-- Payment Method Facade configuration -->
  10. <virtualType name="BraintreeFacade" type="Magento\Payment\Model\Method\Adapter">
  11. <arguments>
  12. <argument name="code" xsi:type="const">Magento\Braintree\Model\Ui\ConfigProvider::CODE</argument>
  13. <argument name="formBlockType" xsi:type="string">Magento\Braintree\Block\Form</argument>
  14. <argument name="infoBlockType" xsi:type="string">Magento\Braintree\Block\Info</argument>
  15. <argument name="valueHandlerPool" xsi:type="object">BraintreeValueHandlerPool</argument>
  16. <argument name="validatorPool" xsi:type="object">BraintreeValidatorPool</argument>
  17. <argument name="commandPool" xsi:type="object">BraintreeCommandPool</argument>
  18. </arguments>
  19. </virtualType>
  20. <virtualType name="BraintreePayPalFacade" type="BraintreeFacade">
  21. <arguments>
  22. <argument name="code" xsi:type="const">Magento\Braintree\Model\Ui\PayPal\ConfigProvider::PAYPAL_CODE</argument>
  23. <argument name="infoBlockType" xsi:type="string">BraintreePayPalInfo</argument>
  24. <argument name="valueHandlerPool" xsi:type="object">BraintreePayPalValueHandlerPool</argument>
  25. <argument name="validatorPool" xsi:type="object">BraintreePayPalValidatorPool</argument>
  26. <argument name="commandPool" xsi:type="object">BraintreePayPalCommandPool</argument>
  27. </arguments>
  28. </virtualType>
  29. <!-- Configuration for Vault payments -->
  30. <virtualType name="BraintreeVaultPaymentConfig" type="Magento\Payment\Gateway\Config\Config">
  31. <arguments>
  32. <argument name="methodCode" xsi:type="const">Magento\Braintree\Model\Ui\ConfigProvider::CC_VAULT_CODE</argument>
  33. </arguments>
  34. </virtualType>
  35. <virtualType name="BraintreeVaultPaymentValueHandler" type="VaultPaymentDefaultValueHandler">
  36. <arguments>
  37. <argument name="configInterface" xsi:type="object">BraintreeVaultPaymentConfig</argument>
  38. </arguments>
  39. </virtualType>
  40. <virtualType name="BraintreeVaultPaymentValueHandlerPool" type="VaultPaymentValueHandlerPool">
  41. <arguments>
  42. <argument name="handlers" xsi:type="array">
  43. <item name="default" xsi:type="string">BraintreeVaultPaymentValueHandler</item>
  44. </argument>
  45. </arguments>
  46. </virtualType>
  47. <virtualType name="BraintreeCreditCardVaultFacade" type="Magento\Vault\Model\Method\Vault">
  48. <arguments>
  49. <argument name="config" xsi:type="object">BraintreeVaultPaymentConfig</argument>
  50. <argument name="valueHandlerPool" xsi:type="object">BraintreeVaultPaymentValueHandlerPool</argument>
  51. <argument name="vaultProvider" xsi:type="object">BraintreeFacade</argument>
  52. <argument name="code" xsi:type="const">Magento\Braintree\Model\Ui\ConfigProvider::CC_VAULT_CODE</argument>
  53. </arguments>
  54. </virtualType>
  55. <virtualType name="BraintreePayPalVaultPaymentConfig" type="Magento\Payment\Gateway\Config\Config">
  56. <arguments>
  57. <argument name="methodCode" xsi:type="const">Magento\Braintree\Model\Ui\PayPal\ConfigProvider::PAYPAL_VAULT_CODE</argument>
  58. </arguments>
  59. </virtualType>
  60. <virtualType name="BraintreePayPalVaultPaymentValueHandler" type="VaultPaymentDefaultValueHandler">
  61. <arguments>
  62. <argument name="configInterface" xsi:type="object">BraintreePayPalVaultPaymentConfig</argument>
  63. </arguments>
  64. </virtualType>
  65. <virtualType name="BraintreePayPalVaultPaymentValueHandlerPool" type="VaultPaymentValueHandlerPool">
  66. <arguments>
  67. <argument name="handlers" xsi:type="array">
  68. <item name="default" xsi:type="string">BraintreePayPalVaultPaymentValueHandler</item>
  69. </argument>
  70. </arguments>
  71. </virtualType>
  72. <virtualType name="BraintreePayPalVaultFacade" type="Magento\Vault\Model\Method\Vault">
  73. <arguments>
  74. <argument name="config" xsi:type="object">BraintreePayPalVaultPaymentConfig</argument>
  75. <argument name="valueHandlerPool" xsi:type="object">BraintreePayPalVaultPaymentValueHandlerPool</argument>
  76. <argument name="vaultProvider" xsi:type="object">BraintreePayPalFacade</argument>
  77. <argument name="code" xsi:type="const">Magento\Braintree\Model\Ui\PayPal\ConfigProvider::PAYPAL_VAULT_CODE</argument>
  78. </arguments>
  79. </virtualType>
  80. <!-- END Configuration for Vault payments -->
  81. <!-- Configuration reader -->
  82. <type name="Magento\Braintree\Gateway\Config\Config">
  83. <arguments>
  84. <argument name="methodCode" xsi:type="const">Magento\Braintree\Model\Ui\ConfigProvider::CODE</argument>
  85. </arguments>
  86. </type>
  87. <type name="Magento\Braintree\Gateway\Config\PayPal\Config">
  88. <arguments>
  89. <argument name="methodCode" xsi:type="const">Magento\Braintree\Model\Ui\PayPal\ConfigProvider::PAYPAL_CODE</argument>
  90. </arguments>
  91. </type>
  92. <!-- Logger, initialized with BraintreeConfig -->
  93. <virtualType name="BraintreeLoggerForTransactionSale" type="Magento\Payment\Model\Method\Logger">
  94. <arguments>
  95. <argument name="config" xsi:type="object">Magento\Braintree\Gateway\Config\Config</argument>
  96. </arguments>
  97. </virtualType>
  98. <type name="Magento\Braintree\Gateway\Http\Client\TransactionSale">
  99. <arguments>
  100. <argument name="customLogger" xsi:type="object">BraintreeLoggerForTransactionSale</argument>
  101. </arguments>
  102. </type>
  103. <type name="Magento\Braintree\Gateway\Http\Client\TransactionSubmitForSettlement">
  104. <arguments>
  105. <argument name="customLogger" xsi:type="object">BraintreeLoggerForTransactionSale</argument>
  106. </arguments>
  107. </type>
  108. <type name="Magento\Braintree\Gateway\Http\Client\TransactionRefund">
  109. <arguments>
  110. <argument name="customLogger" xsi:type="object">BraintreeLoggerForTransactionSale</argument>
  111. </arguments>
  112. </type>
  113. <type name="Magento\Braintree\Gateway\Http\Client\TransactionVoid">
  114. <arguments>
  115. <argument name="customLogger" xsi:type="object">BraintreeLoggerForTransactionSale</argument>
  116. </arguments>
  117. </type>
  118. <!-- END Logger, initialized with BraintreeConfig -->
  119. <!-- Commands infrastructure -->
  120. <virtualType name="BraintreeCommandPool" type="Magento\Payment\Gateway\Command\CommandPool">
  121. <arguments>
  122. <argument name="commands" xsi:type="array">
  123. <item name="authorize" xsi:type="string">BraintreeAuthorizeCommand</item>
  124. <item name="sale" xsi:type="string">BraintreeSaleCommand</item>
  125. <item name="capture" xsi:type="string">BraintreeCaptureStrategyCommand</item>
  126. <item name="settlement" xsi:type="string">BraintreeCaptureCommand</item>
  127. <item name="vault_authorize" xsi:type="string">BraintreeVaultAuthorizeCommand</item>
  128. <item name="vault_sale" xsi:type="string">BraintreeVaultSaleCommand</item>
  129. <item name="vault_capture" xsi:type="string">BraintreeVaultCaptureCommand</item>
  130. <item name="void" xsi:type="string">BraintreeVoidCommand</item>
  131. <item name="refund" xsi:type="string">BraintreeRefundCommand</item>
  132. <item name="cancel" xsi:type="string">Magento\Braintree\Gateway\CancelCommand</item>
  133. <item name="deny_payment" xsi:type="string">Magento\Braintree\Gateway\CancelCommand</item>
  134. </argument>
  135. </arguments>
  136. </virtualType>
  137. <virtualType name="BraintreePayPalCommandPool" type="Magento\Payment\Gateway\Command\CommandPool">
  138. <arguments>
  139. <argument name="commands" xsi:type="array">
  140. <item name="authorize" xsi:type="string">BraintreePayPalAuthorizeCommand</item>
  141. <item name="sale" xsi:type="string">BraintreePayPalSaleCommand</item>
  142. <item name="capture" xsi:type="string">BraintreePayPalCaptureStrategyCommand</item>
  143. <item name="settlement" xsi:type="string">BraintreeCaptureCommand</item>
  144. <item name="vault_authorize" xsi:type="string">BraintreePayPalVaultAuthorizeCommand</item>
  145. <item name="vault_sale" xsi:type="string">BraintreePayPalVaultSaleCommand</item>
  146. <item name="vault_capture" xsi:type="string">BraintreeVaultCaptureCommand</item>
  147. <item name="void" xsi:type="string">BraintreeVoidCommand</item>
  148. <item name="refund" xsi:type="string">BraintreeRefundCommand</item>
  149. <item name="cancel" xsi:type="string">Magento\Braintree\Gateway\CancelCommand</item>
  150. </argument>
  151. </arguments>
  152. </virtualType>
  153. <virtualType name="BraintreeCaptureStrategyCommand" type="Magento\Braintree\Gateway\Command\CaptureStrategyCommand">
  154. <arguments>
  155. <argument name="commandPool" xsi:type="object">BraintreeCommandPool</argument>
  156. </arguments>
  157. </virtualType>
  158. <virtualType name="BraintreePayPalCaptureStrategyCommand" type="Magento\Braintree\Gateway\Command\CaptureStrategyCommand">
  159. <arguments>
  160. <argument name="commandPool" xsi:type="object">BraintreePayPalCommandPool</argument>
  161. </arguments>
  162. </virtualType>
  163. <!-- END Commands infrastructure -->
  164. <!-- Command managers section for Vault -->
  165. <virtualType name="BraintreeCommandManager" type="Magento\Payment\Gateway\Command\CommandManager">
  166. <arguments>
  167. <argument name="commandPool" xsi:type="object">BraintreeCommandPool</argument>
  168. </arguments>
  169. </virtualType>
  170. <virtualType name="BraintreePayPalCommandManager" type="Magento\Payment\Gateway\Command\CommandManager">
  171. <arguments>
  172. <argument name="commandPool" xsi:type="object">BraintreePayPalCommandPool</argument>
  173. </arguments>
  174. </virtualType>
  175. <type name="Magento\Payment\Gateway\Command\CommandManagerPool">
  176. <arguments>
  177. <argument name="executors" xsi:type="array">
  178. <item name="braintree" xsi:type="string">BraintreeCommandManager</item>
  179. <item name="braintree_paypal" xsi:type="string">BraintreePayPalCommandManager</item>
  180. </argument>
  181. </arguments>
  182. </type>
  183. <!-- END command managers section for Vault -->
  184. <type name="Magento\Braintree\Gateway\Request\ChannelDataBuilder">
  185. <arguments>
  186. <argument name="config" xsi:type="object">Magento\Braintree\Gateway\Config\Config</argument>
  187. </arguments>
  188. </type>
  189. <virtualType name="Magento\Braintree\Gateway\ErrorMapper\VirtualConfigReader" type="Magento\Payment\Gateway\ErrorMapper\VirtualConfigReader">
  190. <arguments>
  191. <argument name="fileName" xsi:type="string">braintree_error_mapping.xml</argument>
  192. </arguments>
  193. </virtualType>
  194. <virtualType name="Magento\Braintree\Gateway\ErrorMapper\VirtualMappingData" type="Magento\Payment\Gateway\ErrorMapper\MappingData">
  195. <arguments>
  196. <argument name="reader" xsi:type="object">Magento\Braintree\Gateway\ErrorMapper\VirtualConfigReader</argument>
  197. <argument name="cacheId" xsi:type="string">braintree_error_mapper</argument>
  198. </arguments>
  199. </virtualType>
  200. <virtualType name="Magento\Braintree\Gateway\ErrorMapper\VirtualErrorMessageMapper" type="Magento\Payment\Gateway\ErrorMapper\ErrorMessageMapper">
  201. <arguments>
  202. <argument name="messageMapping" xsi:type="object">Magento\Braintree\Gateway\ErrorMapper\VirtualMappingData</argument>
  203. </arguments>
  204. </virtualType>
  205. <!-- Braintree commands -->
  206. <virtualType name="BraintreeAuthorizeCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
  207. <arguments>
  208. <argument name="requestBuilder" xsi:type="object">BraintreeAuthorizeRequest</argument>
  209. <argument name="transferFactory" xsi:type="object">Magento\Braintree\Gateway\Http\TransferFactory</argument>
  210. <argument name="client" xsi:type="object">Magento\Braintree\Gateway\Http\Client\TransactionSale</argument>
  211. <argument name="handler" xsi:type="object">BraintreeAuthorizationHandler</argument>
  212. <argument name="validator" xsi:type="object">Magento\Braintree\Gateway\Validator\ResponseValidator</argument>
  213. <argument name="errorMessageMapper" xsi:type="object">Magento\Braintree\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
  214. </arguments>
  215. </virtualType>
  216. <virtualType name="BraintreeAuthorizeRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
  217. <arguments>
  218. <argument name="builders" xsi:type="array">
  219. <item name="customer" xsi:type="string">Magento\Braintree\Gateway\Request\CustomerDataBuilder</item>
  220. <item name="payment" xsi:type="string">Magento\Braintree\Gateway\Request\PaymentDataBuilder</item>
  221. <item name="channel" xsi:type="string">Magento\Braintree\Gateway\Request\ChannelDataBuilder</item>
  222. <item name="address" xsi:type="string">Magento\Braintree\Gateway\Request\AddressDataBuilder</item>
  223. <item name="vault" xsi:type="string">Magento\Braintree\Gateway\Request\VaultDataBuilder</item>
  224. <item name="3dsecure" xsi:type="string">Magento\Braintree\Gateway\Request\ThreeDSecureDataBuilder</item>
  225. <item name="device_data" xsi:type="string">Magento\Braintree\Gateway\Request\KountPaymentDataBuilder</item>
  226. <item name="dynamic_descriptor" xsi:type="string">Magento\Braintree\Gateway\Request\DescriptorDataBuilder</item>
  227. <item name="store" xsi:type="string">Magento\Braintree\Gateway\Request\StoreConfigBuilder</item>
  228. <item name="merchant_account" xsi:type="string">Magento\Braintree\Gateway\Request\MerchantAccountDataBuilder</item>
  229. </argument>
  230. </arguments>
  231. </virtualType>
  232. <!-- Authorization&Capture command -->
  233. <virtualType name="BraintreeSaleCommand" type="BraintreeAuthorizeCommand">
  234. <arguments>
  235. <argument name="requestBuilder" xsi:type="object">BraintreeSaleRequest</argument>
  236. </arguments>
  237. </virtualType>
  238. <virtualType name="BraintreeSaleRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
  239. <arguments>
  240. <argument name="builders" xsi:type="array">
  241. <item name="authorize" xsi:type="string">BraintreeAuthorizeRequest</item>
  242. <item name="settlement" xsi:type="string">Magento\Braintree\Gateway\Request\SettlementDataBuilder</item>
  243. </argument>
  244. </arguments>
  245. </virtualType>
  246. <!-- Capture commands -->
  247. <virtualType name="BraintreeCaptureCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
  248. <arguments>
  249. <argument name="requestBuilder" xsi:type="object">BraintreeCaptureRequest</argument>
  250. <argument name="transferFactory" xsi:type="object">Magento\Braintree\Gateway\Http\TransferFactory</argument>
  251. <argument name="client" xsi:type="object">Magento\Braintree\Gateway\Http\Client\TransactionSubmitForSettlement</argument>
  252. <argument name="handler" xsi:type="object">Magento\Braintree\Gateway\Response\TransactionIdHandler</argument>
  253. <argument name="validator" xsi:type="object">Magento\Braintree\Gateway\Validator\ResponseValidator</argument>
  254. <argument name="errorMessageMapper" xsi:type="object">Magento\Braintree\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
  255. </arguments>
  256. </virtualType>
  257. <virtualType name="BraintreeCaptureRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
  258. <arguments>
  259. <argument name="builders" xsi:type="array">
  260. <item name="capture" xsi:type="string">Magento\Braintree\Gateway\Request\CaptureDataBuilder</item>
  261. <item name="store" xsi:type="string">Magento\Braintree\Gateway\Request\StoreConfigBuilder</item>
  262. </argument>
  263. </arguments>
  264. </virtualType>
  265. <!-- Vault Authorization command -->
  266. <virtualType name="BraintreeVaultAuthorizeCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
  267. <arguments>
  268. <argument name="requestBuilder" xsi:type="object">BraintreeVaultAuthorizeRequest</argument>
  269. <argument name="transferFactory" xsi:type="object">Magento\Braintree\Gateway\Http\TransferFactory</argument>
  270. <argument name="client" xsi:type="object">Magento\Braintree\Gateway\Http\Client\TransactionSale</argument>
  271. <argument name="handler" xsi:type="object">BraintreeVaultResponseHandler</argument>
  272. <argument name="validator" xsi:type="object">Magento\Braintree\Gateway\Validator\ResponseValidator</argument>
  273. <argument name="errorMessageMapper" xsi:type="object">Magento\Braintree\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
  274. </arguments>
  275. </virtualType>
  276. <virtualType name="BraintreeVaultAuthorizeRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
  277. <arguments>
  278. <argument name="builders" xsi:type="array">
  279. <item name="customer" xsi:type="string">Magento\Braintree\Gateway\Request\CustomerDataBuilder</item>
  280. <item name="payment" xsi:type="string">Magento\Braintree\Gateway\Request\PaymentDataBuilder</item>
  281. <item name="channel" xsi:type="string">Magento\Braintree\Gateway\Request\ChannelDataBuilder</item>
  282. <item name="address" xsi:type="string">Magento\Braintree\Gateway\Request\AddressDataBuilder</item>
  283. <item name="3dsecure" xsi:type="string">Magento\Braintree\Gateway\Request\ThreeDSecureDataBuilder</item>
  284. <item name="device_data" xsi:type="string">Magento\Braintree\Gateway\Request\KountPaymentDataBuilder</item>
  285. <item name="dynamic_descriptor" xsi:type="string">Magento\Braintree\Gateway\Request\DescriptorDataBuilder</item>
  286. <item name="store" xsi:type="string">Magento\Braintree\Gateway\Request\StoreConfigBuilder</item>
  287. <item name="merchant_account" xsi:type="string">Magento\Braintree\Gateway\Request\MerchantAccountDataBuilder</item>
  288. </argument>
  289. </arguments>
  290. </virtualType>
  291. <!-- Vault Authorization&Capture command -->
  292. <virtualType name="BraintreeVaultSaleCommand" type="BraintreeVaultAuthorizeCommand">
  293. <arguments>
  294. <argument name="requestBuilder" xsi:type="object">BraintreeVaultSaleRequest</argument>
  295. </arguments>
  296. </virtualType>
  297. <virtualType name="BraintreeVaultSaleRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
  298. <arguments>
  299. <argument name="builders" xsi:type="array">
  300. <item name="authorize" xsi:type="string">BraintreeVaultAuthorizeRequest</item>
  301. <item name="settlement" xsi:type="string">Magento\Braintree\Gateway\Request\SettlementDataBuilder</item>
  302. </argument>
  303. </arguments>
  304. </virtualType>
  305. <!-- Vault Capture (Sale actually) command -->
  306. <virtualType name="BraintreeVaultCaptureCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
  307. <arguments>
  308. <argument name="requestBuilder" xsi:type="object">BraintreeVaultCaptureRequest</argument>
  309. <argument name="transferFactory" xsi:type="object">Magento\Braintree\Gateway\Http\TransferFactory</argument>
  310. <argument name="client" xsi:type="object">Magento\Braintree\Gateway\Http\Client\TransactionSale</argument>
  311. <argument name="handler" xsi:type="object">Magento\Braintree\Gateway\Response\TransactionIdHandler</argument>
  312. <argument name="validator" xsi:type="object">Magento\Braintree\Gateway\Validator\ResponseValidator</argument>
  313. <argument name="errorMessageMapper" xsi:type="object">Magento\Braintree\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
  314. </arguments>
  315. </virtualType>
  316. <virtualType name="BraintreeVaultCaptureRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
  317. <arguments>
  318. <argument name="builders" xsi:type="array">
  319. <item name="vault_capture" xsi:type="string">Magento\Braintree\Gateway\Request\VaultCaptureDataBuilder</item>
  320. <item name="settlement" xsi:type="string">Magento\Braintree\Gateway\Request\SettlementDataBuilder</item>
  321. <item name="store" xsi:type="string">Magento\Braintree\Gateway\Request\StoreConfigBuilder</item>
  322. <item name="merchant_account" xsi:type="string">Magento\Braintree\Gateway\Request\MerchantAccountDataBuilder</item>
  323. </argument>
  324. </arguments>
  325. </virtualType>
  326. <!-- END Braintree commands -->
  327. <!-- PayPal commands -->
  328. <virtualType name="BraintreePayPalAuthorizeCommand" type="BraintreeAuthorizeCommand">
  329. <arguments>
  330. <argument name="requestBuilder" xsi:type="object">BraintreePayPalAuthorizeRequest</argument>
  331. <argument name="handler" xsi:type="object">BraintreePayPalResponseHandler</argument>
  332. </arguments>
  333. </virtualType>
  334. <virtualType name="BraintreePayPalAuthorizeRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
  335. <arguments>
  336. <argument name="builders" xsi:type="array">
  337. <item name="customer" xsi:type="string">Magento\Braintree\Gateway\Request\CustomerDataBuilder</item>
  338. <item name="payment" xsi:type="string">Magento\Braintree\Gateway\Request\PaymentDataBuilder</item>
  339. <item name="channel" xsi:type="string">Magento\Braintree\Gateway\Request\ChannelDataBuilder</item>
  340. <item name="vault" xsi:type="string">Magento\Braintree\Gateway\Request\PayPal\VaultDataBuilder</item>
  341. <item name="device_data" xsi:type="string">Magento\Braintree\Gateway\Request\PayPal\DeviceDataBuilder</item>
  342. <item name="dynamic_descriptor" xsi:type="string">Magento\Braintree\Gateway\Request\DescriptorDataBuilder</item>
  343. <item name="store" xsi:type="string">Magento\Braintree\Gateway\Request\StoreConfigBuilder</item>
  344. <item name="merchant_account" xsi:type="string">Magento\Braintree\Gateway\Request\MerchantAccountDataBuilder</item>
  345. </argument>
  346. </arguments>
  347. </virtualType>
  348. <!-- PayPal Authorization&Capture command -->
  349. <virtualType name="BraintreePayPalSaleCommand" type="BraintreePayPalAuthorizeCommand">
  350. <arguments>
  351. <argument name="requestBuilder" xsi:type="object">BraintreePayPalSaleRequest</argument>
  352. </arguments>
  353. </virtualType>
  354. <virtualType name="BraintreePayPalSaleRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
  355. <arguments>
  356. <argument name="builders" xsi:type="array">
  357. <item name="authorize" xsi:type="string">BraintreePayPalAuthorizeRequest</item>
  358. <item name="settlement" xsi:type="string">Magento\Braintree\Gateway\Request\SettlementDataBuilder</item>
  359. </argument>
  360. </arguments>
  361. </virtualType>
  362. <!-- PayPal Vault Authorization command -->
  363. <virtualType name="BraintreePayPalVaultAuthorizeCommand" type="BraintreeVaultAuthorizeCommand">
  364. <arguments>
  365. <argument name="requestBuilder" xsi:type="object">BraintreePayPalVaultAuthorizeRequest</argument>
  366. <argument name="handler" xsi:type="object">BraintreePayPalVaultResponseHandler</argument>
  367. </arguments>
  368. </virtualType>
  369. <virtualType name="BraintreePayPalVaultAuthorizeRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
  370. <arguments>
  371. <argument name="builders" xsi:type="array">
  372. <item name="customer" xsi:type="string">Magento\Braintree\Gateway\Request\CustomerDataBuilder</item>
  373. <item name="payment" xsi:type="string">Magento\Braintree\Gateway\Request\PaymentDataBuilder</item>
  374. <item name="channel" xsi:type="string">Magento\Braintree\Gateway\Request\ChannelDataBuilder</item>
  375. <item name="address" xsi:type="string">Magento\Braintree\Gateway\Request\AddressDataBuilder</item>
  376. <item name="dynamic_descriptor" xsi:type="string">Magento\Braintree\Gateway\Request\DescriptorDataBuilder</item>
  377. <item name="store" xsi:type="string">Magento\Braintree\Gateway\Request\StoreConfigBuilder</item>
  378. <item name="merchant_account" xsi:type="string">Magento\Braintree\Gateway\Request\MerchantAccountDataBuilder</item>
  379. </argument>
  380. </arguments>
  381. </virtualType>
  382. <!-- Vault Authorization&Capture command -->
  383. <virtualType name="BraintreePayPalVaultSaleCommand" type="BraintreePayPalVaultAuthorizeCommand">
  384. <arguments>
  385. <argument name="requestBuilder" xsi:type="object">BraintreePayPalVaultSaleRequest</argument>
  386. </arguments>
  387. </virtualType>
  388. <virtualType name="BraintreePayPalVaultSaleRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
  389. <arguments>
  390. <argument name="builders" xsi:type="array">
  391. <item name="authorize" xsi:type="string">BraintreePayPalVaultAuthorizeRequest</item>
  392. <item name="settlement" xsi:type="string">Magento\Braintree\Gateway\Request\SettlementDataBuilder</item>
  393. </argument>
  394. </arguments>
  395. </virtualType>
  396. <!-- END PayPal commands -->
  397. <!-- Value handlers infrastructure -->
  398. <type name="Magento\Braintree\Gateway\Response\VaultDetailsHandler">
  399. <arguments>
  400. <argument name="paymentTokenFactory" xsi:type="object">Magento\Vault\Api\Data\PaymentTokenFactoryInterface</argument>
  401. </arguments>
  402. </type>
  403. <virtualType name="BraintreeValueHandlerPool" type="Magento\Payment\Gateway\Config\ValueHandlerPool">
  404. <arguments>
  405. <argument name="handlers" xsi:type="array">
  406. <item name="default" xsi:type="string">BraintreeConfigValueHandler</item>
  407. <item name="can_void" xsi:type="string">Magento\Braintree\Gateway\Config\CanVoidHandler</item>
  408. <item name="can_cancel" xsi:type="string">Magento\Braintree\Gateway\Config\CanVoidHandler</item>
  409. </argument>
  410. </arguments>
  411. </virtualType>
  412. <virtualType name="BraintreeConfigValueHandler" type="Magento\Payment\Gateway\Config\ConfigValueHandler">
  413. <arguments>
  414. <argument name="configInterface" xsi:type="object">Magento\Braintree\Gateway\Config\Config</argument>
  415. </arguments>
  416. </virtualType>
  417. <virtualType name="BraintreeAuthorizationHandler" type="Magento\Payment\Gateway\Response\HandlerChain">
  418. <arguments>
  419. <argument name="handlers" xsi:type="array">
  420. <item name="payment_details" xsi:type="string">Magento\Braintree\Gateway\Response\PaymentDetailsHandler</item>
  421. <item name="txn_id" xsi:type="string">Magento\Braintree\Gateway\Response\TransactionIdHandler</item>
  422. <item name="card_details" xsi:type="string">Magento\Braintree\Gateway\Response\CardDetailsHandler</item>
  423. <item name="risk_data" xsi:type="string">Magento\Braintree\Gateway\Response\RiskDataHandler</item>
  424. <item name="vault_details" xsi:type="string">Magento\Braintree\Gateway\Response\VaultDetailsHandler</item>
  425. <item name="3d_secure" xsi:type="string">Magento\Braintree\Gateway\Response\ThreeDSecureDetailsHandler</item>
  426. </argument>
  427. </arguments>
  428. </virtualType>
  429. <virtualType name="BraintreeVaultResponseHandler" type="Magento\Payment\Gateway\Response\HandlerChain">
  430. <arguments>
  431. <argument name="handlers" xsi:type="array">
  432. <item name="payment_details" xsi:type="string">Magento\Braintree\Gateway\Response\PaymentDetailsHandler</item>
  433. <item name="txn_id" xsi:type="string">Magento\Braintree\Gateway\Response\TransactionIdHandler</item>
  434. <item name="card_details" xsi:type="string">Magento\Braintree\Gateway\Response\CardDetailsHandler</item>
  435. <item name="risk_data" xsi:type="string">Magento\Braintree\Gateway\Response\RiskDataHandler</item>
  436. <item name="3d_secure" xsi:type="string">Magento\Braintree\Gateway\Response\ThreeDSecureDetailsHandler</item>
  437. </argument>
  438. </arguments>
  439. </virtualType>
  440. <!-- END Value handlers infrastructure -->
  441. <!-- PayPal value handlers infrastructure -->
  442. <type name="Magento\Braintree\Gateway\Response\PayPal\VaultDetailsHandler">
  443. <arguments>
  444. <argument name="paymentTokenFactory" xsi:type="object">Magento\Vault\Api\Data\PaymentTokenFactoryInterface</argument>
  445. </arguments>
  446. </type>
  447. <virtualType name="BraintreePayPalValueHandlerPool" type="Magento\Payment\Gateway\Config\ValueHandlerPool">
  448. <arguments>
  449. <argument name="handlers" xsi:type="array">
  450. <item name="default" xsi:type="string">BraintreePayPalConfigValueHandler</item>
  451. <item name="can_void" xsi:type="string">Magento\Braintree\Gateway\Config\CanVoidHandler</item>
  452. <item name="can_cancel" xsi:type="string">Magento\Braintree\Gateway\Config\CanVoidHandler</item>
  453. <item name="can_capture" xsi:type="string">Magento\Braintree\Gateway\Config\CanVoidHandler</item>
  454. </argument>
  455. </arguments>
  456. </virtualType>
  457. <virtualType name="BraintreePayPalConfigValueHandler" type="Magento\Payment\Gateway\Config\ConfigValueHandler">
  458. <arguments>
  459. <argument name="configInterface" xsi:type="object">Magento\Braintree\Gateway\Config\PayPal\Config</argument>
  460. </arguments>
  461. </virtualType>
  462. <virtualType name="BraintreePayPalResponseHandler" type="Magento\Payment\Gateway\Response\HandlerChain">
  463. <arguments>
  464. <argument name="handlers" xsi:type="array">
  465. <item name="payment_details" xsi:type="string">Magento\Braintree\Gateway\Response\PaymentDetailsHandler</item>
  466. <item name="txn_id" xsi:type="string">Magento\Braintree\Gateway\Response\TransactionIdHandler</item>
  467. <item name="paypal_details" xsi:type="string">Magento\Braintree\Gateway\Response\PayPalDetailsHandler</item>
  468. <item name="vault_details" xsi:type="string">Magento\Braintree\Gateway\Response\PayPal\VaultDetailsHandler</item>
  469. </argument>
  470. </arguments>
  471. </virtualType>
  472. <virtualType name="BraintreePayPalVaultResponseHandler" type="Magento\Payment\Gateway\Response\HandlerChain">
  473. <arguments>
  474. <argument name="handlers" xsi:type="array">
  475. <item name="payment_details" xsi:type="string">Magento\Braintree\Gateway\Response\PaymentDetailsHandler</item>
  476. <item name="txn_id" xsi:type="string">Magento\Braintree\Gateway\Response\TransactionIdHandler</item>
  477. <item name="paypal_details" xsi:type="string">Magento\Braintree\Gateway\Response\PayPalDetailsHandler</item>
  478. </argument>
  479. </arguments>
  480. </virtualType>
  481. <!-- END PayPal value handlers infrastructure -->
  482. <!-- Void Command -->
  483. <virtualType name="BraintreeVoidCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
  484. <arguments>
  485. <argument name="client" xsi:type="object">Magento\Braintree\Gateway\Http\Client\TransactionVoid</argument>
  486. <argument name="requestBuilder" xsi:type="object">BraintreeVoidRequestBuilder</argument>
  487. <argument name="handler" xsi:type="object">Magento\Braintree\Gateway\Response\VoidHandler</argument>
  488. <argument name="validator" xsi:type="object">Magento\Braintree\Gateway\Validator\GeneralResponseValidator</argument>
  489. <argument name="transferFactory" xsi:type="object">Magento\Braintree\Gateway\Http\TransferFactory</argument>
  490. </arguments>
  491. </virtualType>
  492. <virtualType name="BraintreeVoidRequestBuilder" type="Magento\Payment\Gateway\Request\BuilderComposite">
  493. <arguments>
  494. <argument name="builders" xsi:type="array">
  495. <item name="void" xsi:type="string">Magento\Braintree\Gateway\Request\VoidDataBuilder</item>
  496. <item name="store" xsi:type="string">Magento\Braintree\Gateway\Request\StoreConfigBuilder</item>
  497. </argument>
  498. </arguments>
  499. </virtualType>
  500. <!-- END Void Command -->
  501. <!-- Cancel Command -->
  502. <virtualType name="Magento\Braintree\Gateway\CancelCommand" type="BraintreeVoidCommand">
  503. <arguments>
  504. <argument name="handler" xsi:type="object">Magento\Braintree\Gateway\Response\CancelDetailsHandler</argument>
  505. <argument name="validator" xsi:type="object">Magento\Braintree\Gateway\Validator\CancelResponseValidator</argument>
  506. </arguments>
  507. </virtualType>
  508. <!-- END Cancel Command -->
  509. <!-- Refund Command -->
  510. <virtualType name="BraintreeRefundCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
  511. <arguments>
  512. <argument name="client" xsi:type="object">Magento\Braintree\Gateway\Http\Client\TransactionRefund</argument>
  513. <argument name="requestBuilder" xsi:type="object">BraintreeRefundBuilder</argument>
  514. <argument name="validator" xsi:type="object">Magento\Braintree\Gateway\Validator\GeneralResponseValidator</argument>
  515. <argument name="handler" xsi:type="object">Magento\Braintree\Gateway\Response\RefundHandler</argument>
  516. <argument name="transferFactory" xsi:type="object">Magento\Braintree\Gateway\Http\TransferFactory</argument>
  517. </arguments>
  518. </virtualType>
  519. <virtualType name="BraintreeRefundBuilder" type="Magento\Payment\Gateway\Request\BuilderComposite">
  520. <arguments>
  521. <argument name="builders" xsi:type="array">
  522. <item name="refund" xsi:type="string">Magento\Braintree\Gateway\Request\RefundDataBuilder</item>
  523. <item name="store" xsi:type="string">Magento\Braintree\Gateway\Request\StoreConfigBuilder</item>
  524. </argument>
  525. </arguments>
  526. </virtualType>
  527. <!-- END Refund Command -->
  528. <!-- Braintree validators infrastructure -->
  529. <virtualType name="BraintreeCountryValidator" type="Magento\Payment\Gateway\Validator\CountryValidator">
  530. <arguments>
  531. <argument name="config" xsi:type="object">Magento\Braintree\Gateway\Config\Config</argument>
  532. </arguments>
  533. </virtualType>
  534. <virtualType name="BraintreeValidatorPool" type="Magento\Payment\Gateway\Validator\ValidatorPool">
  535. <arguments>
  536. <argument name="validators" xsi:type="array">
  537. <item name="country" xsi:type="string">BraintreeCountryValidator</item>
  538. </argument>
  539. </arguments>
  540. </virtualType>
  541. <!-- END Braintree validators infrastructure -->
  542. <!-- Braintree PayPal validators -->
  543. <virtualType name="BraintreePayPalCountryValidator" type="Magento\Payment\Gateway\Validator\CountryValidator">
  544. <arguments>
  545. <argument name="config" xsi:type="object">Magento\Braintree\Gateway\Config\PayPal\Config</argument>
  546. </arguments>
  547. </virtualType>
  548. <virtualType name="BraintreePayPalValidatorPool" type="Magento\Payment\Gateway\Validator\ValidatorPool">
  549. <arguments>
  550. <argument name="validators" xsi:type="array">
  551. <item name="country" xsi:type="string">BraintreePayPalCountryValidator</item>
  552. </argument>
  553. </arguments>
  554. </virtualType>
  555. <!-- END Braintree PayPal validators -->
  556. <type name="Magento\Braintree\Block\Info">
  557. <arguments>
  558. <argument name="config" xsi:type="object">Magento\Braintree\Gateway\Config\Config</argument>
  559. </arguments>
  560. </type>
  561. <virtualType name="BraintreePayPalInfo" type="Magento\Braintree\Block\Info">
  562. <arguments>
  563. <argument name="config" xsi:type="object">Magento\Braintree\Gateway\Config\PayPal\Config</argument>
  564. </arguments>
  565. </virtualType>
  566. <!-- Settlement Report Section -->
  567. <virtualType name="BraintreeTransactionsCollectionFactoryForReporting" type="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
  568. <arguments>
  569. <argument name="collections" xsi:type="array">
  570. <item name="braintree_report_data_source" xsi:type="string">Magento\Braintree\Model\Report\TransactionsCollection</item>
  571. </argument>
  572. </arguments>
  573. </virtualType>
  574. <virtualType name="BraintreeTransactionsReporting" type="Magento\Framework\View\Element\UiComponent\DataProvider\Reporting">
  575. <arguments>
  576. <argument name="collectionFactory" xsi:type="object">BraintreeTransactionsCollectionFactoryForReporting</argument>
  577. </arguments>
  578. </virtualType>
  579. <virtualType name="BraintreeTransactionsDataProvider" type="Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider">
  580. <arguments>
  581. <argument name="reporting" xsi:type="object">BraintreeTransactionsReporting</argument>
  582. </arguments>
  583. </virtualType>
  584. <type name="Magento\Braintree\Model\Report\ConditionAppliers\AppliersPool">
  585. <arguments>
  586. <argument name="appliers" xsi:type="array">
  587. <item name="Braintree\TextNode" xsi:type="object">Magento\Braintree\Model\Report\ConditionAppliers\Text</item>
  588. <item name="Braintree\RangeNode" xsi:type="object">Magento\Braintree\Model\Report\ConditionAppliers\Range</item>
  589. <item name="Braintree\MultipleValueNode" xsi:type="object">Magento\Braintree\Model\Report\ConditionAppliers\MultipleValue</item>
  590. </argument>
  591. </arguments>
  592. </type>
  593. <!-- END Settlement Report Section -->
  594. <type name="Magento\Config\Model\Config\TypePool">
  595. <arguments>
  596. <argument name="sensitive" xsi:type="array">
  597. <item name="payment/braintree/merchant_id" xsi:type="string">1</item>
  598. <item name="payment/braintree/private_key" xsi:type="string">1</item>
  599. <item name="payment/braintree/merchant_account_id" xsi:type="string">1</item>
  600. <item name="payment/braintree/kount_id" xsi:type="string">1</item>
  601. <item name="payment/braintree_paypal/merchant_name_override" xsi:type="string">1</item>
  602. <item name="payment/braintree/descriptor_phone" xsi:type="string">1</item>
  603. <item name="payment/braintree/descriptor_url" xsi:type="string">1</item>
  604. </argument>
  605. <argument name="environment" xsi:type="array">
  606. <item name="payment/braintree/descriptor_url" xsi:type="string">1</item>
  607. </argument>
  608. </arguments>
  609. </type>
  610. <type name="Magento\Quote\Api\CartManagementInterface">
  611. <plugin name="order_cancellation" type="Magento\Braintree\Plugin\OrderCancellation"/>
  612. </type>
  613. </config>