File: /var/www/vhost/disk-apps/magento.bikenow.co/vendor/amzn/amazon-pay-module/etc/di.xml
<?xml version="1.0"?>
<!--
/**
* Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<!-- Payment Method Facade configuration -->
<virtualType name="AmazonFacade" type="Magento\Payment\Model\Method\Adapter">
<arguments>
<argument name="code" xsi:type="const">Amazon\Payment\Gateway\Config\Config::CODE</argument>
<argument name="formBlockType" xsi:type="string">Magento\Payment\Block\Form</argument>
<argument name="infoBlockType" xsi:type="string">Magento\Payment\Block\Info</argument>
<argument name="valueHandlerPool" xsi:type="object">AmazonValueHandlerPool</argument>
<argument name="validatorPool" xsi:type="object">AmazonValidatorPool</argument>
<argument name="commandPool" xsi:type="object">AmazonCommandPool</argument>
</arguments>
</virtualType>
<!-- Amazon validators infrastructure -->
<virtualType name="AmazonCountryValidator" type="Magento\Payment\Gateway\Validator\CountryValidator">
<arguments>
<argument name="config" xsi:type="object">Amazon\Payment\Gateway\Config\Config</argument>
</arguments>
</virtualType>
<virtualType name="AmazonValidatorPool" type="Magento\Payment\Gateway\Validator\ValidatorPool">
<arguments>
<argument name="validators" xsi:type="array">
<item name="country" xsi:type="string">AmazonCountryValidator</item>
</argument>
</arguments>
</virtualType>
<!-- Amazon error code mapper -->
<virtualType name="Amazon\Payment\Gateway\ErrorMapper\VirtualConfigReader" type="Magento\Payment\Gateway\ErrorMapper\VirtualConfigReader">
<arguments>
<argument name="fileName" xsi:type="string">amazon_error_mapping.xml</argument>
</arguments>
</virtualType>
<virtualType name="Amazon\Payment\Gateway\ErrorMapper\VirtualMappingData" type="Magento\Payment\Gateway\ErrorMapper\MappingData">
<arguments>
<argument name="reader" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualConfigReader</argument>
<argument name="cacheId" xsi:type="string">amazon_error_mapper</argument>
</arguments>
</virtualType>
<virtualType name="Amazon\Payment\Gateway\ErrorMapper\VirtualErrorMessageMapper" type="Magento\Payment\Gateway\ErrorMapper\ErrorMessageMapper">
<arguments>
<argument name="messageMapping" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualMappingData</argument>
</arguments>
</virtualType>
<!-- Logger, initialized with Amazon Config -->
<virtualType name="AmazonLogger" type="Magento\Payment\Model\Method\Logger">
<arguments>
<argument name="config" xsi:type="object">AmazonGatewayConfig</argument>
</arguments>
</virtualType>
<!-- Commands infrastructure -->
<virtualType name="AmazonCommandPool" type="Magento\Payment\Gateway\Command\CommandPool">
<arguments>
<argument name="commands" xsi:type="array">
<item name="authorize" xsi:type="string">AmazonAuthorizeCommand</item>
<item name="capture" xsi:type="string">AmazonCaptureStrategyCommand</item>
<item name="sale" xsi:type="string">AmazonSaleCommand</item>
<item name="settlement" xsi:type="string">AmazonSettlementCommand</item>
<item name="void" xsi:type="string">AmazonVoidCommand</item>
<item name="cancel" xsi:type="string">AmazonVoidCommand</item>
<item name="refund" xsi:type="string">AmazonRefundCommand</item>
</argument>
</arguments>
</virtualType>
<virtualType name="AmazonCaptureStrategyCommand" type="Amazon\Payment\Gateway\Command\CaptureStrategyCommand">
<arguments>
<argument name="commandPool" xsi:type="object">AmazonCommandPool</argument>
</arguments>
</virtualType>
<!-- Configuration reader -->
<virtualType name="AmazonGatewayConfig" type="Amazon\Payment\Gateway\Config\Config">
</virtualType>
<virtualType name="AmazonCommandManager" type="Magento\Payment\Gateway\Command\CommandManager">
<arguments>
<argument name="commandPool" xsi:type="object">AmazonCommandPool</argument>
</arguments>
</virtualType>
<type name="Magento\Payment\Gateway\Command\CommandManagerPool">
<arguments>
<argument name="executors" xsi:type="array">
<item name="amazon_payment" xsi:type="string">AmazonCommandManager</item>
</argument>
</arguments>
</type>
<virtualType name="AmazonAuthorizationValidators" type="Magento\Payment\Gateway\Validator\ValidatorComposite">
<arguments>
<argument name="validators" xsi:type="array">
<item name="contraints" xsi:type="string">Amazon\Payment\Gateway\Validator\ConstraintValidator</item>
<item name="authcodes" xsi:type="string">Amazon\Payment\Gateway\Validator\AuthorizationValidator</item>
</argument>
</arguments>
</virtualType>
<!-- Authorize command -->
<virtualType name="AmazonAuthorizeCommand" type="Amazon\Payment\Gateway\Command\AmazonAuthCommand">
<arguments>
<argument name="requestBuilder" xsi:type="object">Amazon\Payment\Gateway\Request\AuthorizationRequestBuilder</argument>
<argument name="handler" xsi:type="object">Amazon\Payment\Gateway\Response\CompleteAuthHandler</argument>
<argument name="transferFactory" xsi:type="object">Amazon\Payment\Gateway\Http\TransferFactory</argument>
<argument name="validator" xsi:type="object">AmazonAuthorizationValidators</argument>
<argument name="client" xsi:type="object">Amazon\Payment\Gateway\Http\Client\AuthorizeClient</argument>
<argument name="errorMessageMapper" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
</arguments>
</virtualType>
<type name="Amazon\Payment\Gateway\Request\AuthorizationRequestBuilder">
<arguments>
<argument name="config" xsi:type="object">AmazonGatewayConfig</argument>
</arguments>
</type>
<!-- Authorize and Capture command -->
<virtualType name="AmazonSaleCommand" type="Amazon\Payment\Gateway\Command\AmazonAuthCommand">
<arguments>
<argument name="requestBuilder" xsi:type="object">Amazon\Payment\Gateway\Request\AuthorizationRequestBuilder</argument>
<argument name="handler" xsi:type="object">Amazon\Payment\Gateway\Response\CompleteSaleHandler</argument>
<argument name="transferFactory" xsi:type="object">Amazon\Payment\Gateway\Http\TransferFactory</argument>
<argument name="validator" xsi:type="object">AmazonAuthorizationValidators</argument>
<argument name="client" xsi:type="object">Amazon\Payment\Gateway\Http\Client\CaptureClient</argument>
<argument name="errorMessageMapper" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
</arguments>
</virtualType>
<!-- Capture settlement command -->
<virtualType name="AmazonSettlementCommand" type="Amazon\Payment\Gateway\Command\AmazonAuthCommand">
<arguments>
<argument name="requestBuilder" xsi:type="object">Amazon\Payment\Gateway\Request\SettlementRequestBuilder</argument>
<argument name="handler" xsi:type="object">Amazon\Payment\Gateway\Response\SettlementHandler</argument>
<argument name="transferFactory" xsi:type="object">Amazon\Payment\Gateway\Http\TransferFactory</argument>
<argument name="validator" xsi:type="object">AmazonAuthorizationValidators</argument>
<argument name="client" xsi:type="object">Amazon\Payment\Gateway\Http\Client\SettlementClient</argument>
<argument name="errorMessageMapper" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
</arguments>
</virtualType>
<!-- Refund Command -->
<virtualType name="AmazonRefundCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
<arguments>
<argument name="requestBuilder" xsi:type="object">Amazon\Payment\Gateway\Request\RefundRequestBuilder</argument>
<argument name="handler" xsi:type="object">Amazon\Payment\Gateway\Response\RefundHandler</argument>
<argument name="transferFactory" xsi:type="object">Amazon\Payment\Gateway\Http\TransferFactory</argument>
<argument name="validator" xsi:type="object">Amazon\Payment\Gateway\Validator\AuthorizationValidator</argument>
<argument name="client" xsi:type="object">Amazon\Payment\Gateway\Http\Client\RefundClient</argument>
<argument name="errorMessageMapper" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
</arguments>
</virtualType>
<!-- Void command -->
<virtualType name="AmazonVoidCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
<arguments>
<argument name="requestBuilder" xsi:type="object">Amazon\Payment\Gateway\Request\VoidRequestBuilder</argument>
<argument name="handler" xsi:type="object">Amazon\Payment\Gateway\Response\VoidHandler</argument>
<argument name="transferFactory" xsi:type="object">Amazon\Payment\Gateway\Http\TransferFactory</argument>
<argument name="validator" xsi:type="object">Amazon\Payment\Gateway\Validator\AuthorizationValidator</argument>
<argument name="client" xsi:type="object">Amazon\Payment\Gateway\Http\Client\VoidClient</argument>
<argument name="errorMessageMapper" xsi:type="object">Amazon\Payment\Gateway\ErrorMapper\VirtualErrorMessageMapper</argument>
</arguments>
</virtualType>
<!-- Void Request -->
<type name="Amazon\Payment\Gateway\Request\VoidRequestBuilder">
<arguments>
<argument name="config" xsi:type="object">AmazonGatewayConfig</argument>
</arguments>
</type>
<!-- Value handlers infrastructure -->
<virtualType name="AmazonValueHandlerPool" type="Magento\Payment\Gateway\Config\ValueHandlerPool">
<arguments>
<argument name="handlers" xsi:type="array">
<item name="default" xsi:type="string">AmazonConfigValueHandler</item>
</argument>
</arguments>
</virtualType>
<virtualType name="AmazonConfigValueHandler" type="Magento\Payment\Gateway\Config\ConfigValueHandler">
<arguments>
<argument name="configInterface" xsi:type="object">AmazonGatewayConfig</argument>
</arguments>
</virtualType>
<type name="Amazon\Payment\Block\Info">
<arguments>
<argument name="config" xsi:type="object">AmazonGatewayConfig</argument>
</arguments>
</type>
<!-- end gateway config -->
<preference for="Amazon\Payment\Api\OrderInformationManagementInterface" type="Amazon\Payment\Model\OrderInformationManagement"/>
<preference for="Amazon\Payment\Api\AddressManagementInterface" type="Amazon\Payment\Model\AddressManagement"/>
<preference for="Amazon\Payment\Api\QuoteLinkManagementInterface" type="Amazon\Payment\Model\QuoteLinkManagement"/>
<preference for="Amazon\Payment\Api\Data\QuoteLinkInterface" type="Amazon\Payment\Model\QuoteLink"/>
<preference for="Amazon\Payment\Api\Data\OrderLinkInterface" type="Amazon\Payment\Model\OrderLink"/>
<preference for="Amazon\Payment\Api\Data\PendingCaptureInterface" type="Amazon\Payment\Model\PendingCapture"/>
<preference for="Amazon\Payment\Api\Data\PendingAuthorizationInterface" type="Amazon\Payment\Model\PendingAuthorization"/>
<preference for="Amazon\Payment\Api\Data\PendingRefundInterface" type="Amazon\Payment\Model\PendingRefund"/>
<preference for="Amazon\Payment\Ipn\IpnHandlerFactoryInterface" type="Amazon\Payment\Ipn\IpnHandlerFactory"/>
<preference for="AmazonPay\IpnHandlerInterface" type="Amazon\Payment\Ipn\IpnHandler"/>
<preference for="Amazon\Payment\Api\Ipn\CompositeProcessorInterface" type="Amazon\Payment\Model\Ipn\CompositeProcessor"/>
<type name="Magento\Quote\Api\CartRepositoryInterface">
<plugin name="amazon_payment_quote_repository" type="Amazon\Payment\Plugin\QuoteRepository" sortOrder="1"/>
</type>
<type name="Magento\Checkout\Api\ShippingInformationManagementInterface">
<plugin name="amazon_payment_shipping_information_management" type="Amazon\Payment\Plugin\ShippingInformationManagement" sortOrder="1"/>
</type>
<type name="Magento\Quote\Api\Data\PaymentInterface">
<plugin name="amazon_payment_additional_information" type="Amazon\Payment\Plugin\AdditionalInformation"/>
</type>
<type name="Amazon\Payment\Model\Method\AmazonLoginMethod">
<plugin name="disable_amazon_payment_method" type="Amazon\Payment\Plugin\DisableAmazonPaymentMethod" sortOrder="10" disabled="false"/>
</type>
<type name="Magento\Quote\Model\PaymentMethodManagement">
<plugin name="confirm_order_reference_on_payment_details_save" type="Amazon\Payment\Plugin\ConfirmOrderReference" sortOrder="10" disabled="false"/>
</type>
<type name="Amazon\Payment\Cron\ProcessAmazonRefunds">
<arguments>
<argument name="paymentManagement" xsi:type="object">Amazon\Payment\Model\PaymentManagement\Proxy</argument>
</arguments>
</type>
<type name="Amazon\Payment\Cron\GetAmazonCaptureUpdates">
<arguments>
<argument name="paymentManagement" xsi:type="object">Amazon\Payment\Model\PaymentManagement\Proxy</argument>
</arguments>
</type>
<type name="Amazon\Payment\Model\QueuedRefundUpdater">
<arguments>
<argument name="adminNotifier" xsi:type="object">Magento\Framework\Notification\NotifierInterface\Proxy</argument>
</arguments>
</type>
<type name="Amazon\Payment\Api\Ipn\CompositeProcessorInterface">
<arguments>
<argument name="processors" xsi:type="array">
<item name="captureprocessor" xsi:type="object">Amazon\Payment\Model\Ipn\CaptureProcessor\Proxy</item>
<item name="authorizationprocessor" xsi:type="object">Amazon\Payment\Model\Ipn\AuthorizationProcessor\Proxy</item>
<item name="orderprocessor" xsi:type="object">Amazon\Payment\Model\Ipn\OrderProcessor\Proxy</item>
<item name="refundprocessor" xsi:type="object">Amazon\Payment\Model\Ipn\RefundProcessor\Proxy</item>
</argument>
</arguments>
</type>
<type name="Amazon\Core\Logger\IpnLogger">
<arguments>
<argument name="name" xsi:type="string">amazonIpnLogger</argument>
<argument name="handlers" xsi:type="array">
<item name="debug" xsi:type="object">Amazon\Core\Logger\Handler\Ipn</item>
</argument>
</arguments>
</type>
<type name="Amazon\Payment\Ipn\IpnHandlerFactoryInterface">
<arguments>
<argument name="logger" xsi:type="object">Amazon\Core\Logger\IpnLogger</argument>
</arguments>
</type>
<type name="Amazon\Core\Logger\ExceptionLogger">
<arguments>
<argument name="logger" xsi:type="object">Amazon\Core\Logger\Logger</argument>
</arguments>
</type>
<type name="Magento\Framework\Webapi\ErrorProcessor">
<plugin name="amazon_payment_webapi_error_processor" type="Amazon\Payment\Plugin\WebapiErrorProcessor" sortOrder="1"/>
</type>
<type name="Amazon\Payment\Gateway\Config\Config">
<arguments>
<argument name="methodCode" xsi:type="const">Amazon\Payment\Gateway\Config\Config::CODE</argument>
</arguments>
</type>
<type name="Amazon\Payment\Helper\Shortcut\Validator">
<arguments>
<argument name="amazonConfig" xsi:type="object">Amazon\Payment\Gateway\Config\Config</argument>
</arguments>
</type>
<type name="Magento\ScalableCheckout\Console\Command\SplitQuote">
<arguments>
<argument name="tables" xsi:type="array">
<item name="amazon_quote" xsi:type="string">amazon_quote</item>
</argument>
</arguments>
</type>
<type name="Amazon\Payment\Model\ResourceModel\QuoteLink">
<arguments>
<argument name="connectionName" xsi:type="string">checkout</argument>
</arguments>
</type>
<type name="Magento\ScalableOms\Console\Command\SplitSales">
<arguments>
<argument name="tables" xsi:type="array">
<item name="amazon_sales_order" xsi:type="string">amazon_sales_order</item>
</argument>
</arguments>
</type>
<type name="Amazon\Payment\Model\ResourceModel\OrderLink">
<arguments>
<argument name="connectionName" xsi:type="string">sales</argument>
</arguments>
</type>
<!-- Order comments for currency differences -->
<type name="Magento\Sales\Model\Order\Payment">
<plugin name="amazon_pay_order_payment" type="Amazon\Payment\Plugin\OrderCurrencyComment" />
</type>
</config>