Your IP : 216.73.216.81


Current Path : /srv/web/sites/trentinoplant.it/httpdocs/vendor1/magento/module-payment-services-paypal/etc/
Upload File :
Current File : /srv/web/sites/trentinoplant.it/httpdocs/vendor1/magento/module-payment-services-paypal/etc/di.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\PaymentServicesPaypal\Api\PaymentOrderManagementInterface" type="Magento\PaymentServicesPaypal\Model\PaymentOrderManagement" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentOrderInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentOrder" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentOrderDetailsInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentOrderDetails" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentSourceDetailsInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentSourceDetails" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentCardDetailsInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentCardDetails" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentCardBinDetailsInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentCardBinDetails" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentAddressInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentAddress" />
    <preference for="Magento\PaymentServicesPaypal\Api\PaymentOrderRequestInterface" type="Magento\PaymentServicesPaypal\Model\Api\PaymentOrderRequest" />
    <preference for="Magento\PaymentServicesPaypal\Api\PaymentConfigRequestInterface" type="Magento\PaymentServicesPaypal\Model\Api\PaymentConfigRequest" />
    <preference for="Magento\PaymentServicesPaypal\Api\PaymentConfigResponseInterface" type="Magento\PaymentServicesPaypal\Model\Api\PaymentConfigResponse" />
    <preference for="Magento\PaymentServicesPaypal\Api\PaymentSdkManagementInterface" type="Magento\PaymentServicesPaypal\Model\Api\PaymentSdkManagement" />
    <preference for="Magento\PaymentServicesPaypal\Api\PaymentConfigManagementInterface" type="Magento\PaymentServicesPaypal\Model\Api\PaymentConfigManagement" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentConfigItemInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentConfigItem" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentConfigSmartButtonsInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentConfigSmartButtons" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentConfigHostedFieldsInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentConfigHostedFields" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentConfigApplePayInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentConfigApplePay" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentConfigGooglePayInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentConfigGooglePay" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentConfigSmartButtonsMessageStylesInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentConfigSmartButtonsMessageStyles" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentConfigSmartButtonsLogoInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentConfigSmartButtonsLogo" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentConfigButtonStylesInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentConfigButtonStyles" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentConfigGooglePayButtonStylesInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentConfigGooglePayButtonStyles" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentConfigSdkParamsInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentConfigSdkParams" />
    <preference for="Magento\PaymentServicesPaypal\Api\PaymentSdkRequestInterface" type="Magento\PaymentServicesPaypal\Model\Api\PaymentSdkRequest" />
    <preference for="Magento\PaymentServicesPaypal\Api\Data\PaymentSdkParamsInterface" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentSdkParams" />


    <type name="Magento\PaymentServicesPaypal\Plugin\OrderUpdate">
        <arguments>
            <argument name="orderUpdateLocations" xsi:type="array">
                <item name="productDetail" xsi:type="string">PRODUCT_DETAIL</item>
                <item name="miniCart" xsi:type="string">MINICART</item>
                <item name="cart" xsi:type="string">CART</item>
            </argument>
        </arguments>
    </type>

    <type name="Magento\PaymentServicesPaypal\Model\Api\PaymentConfigManagement">
        <arguments>
            <argument name="locations" xsi:type="array">
                <item name="productDetail" xsi:type="string">PRODUCT_DETAIL</item>
                <item name="miniCart" xsi:type="string">MINICART</item>
                <item name="cart" xsi:type="string">CART</item>
                <item name="checkout" xsi:type="string">CHECKOUT</item>
                <item name="admin" xsi:type="string">ADMIN</item>
            </argument>
            <argument name="buttonsLocations" xsi:type="array">
                <item name="productDetail" xsi:type="string">PRODUCT_DETAIL</item>
                <item name="miniCart" xsi:type="string">MINICART</item>
                <item name="cart" xsi:type="string">CART</item>
                <item name="checkout" xsi:type="string">CHECKOUT</item>
            </argument>
            <argument name="ccLocations" xsi:type="array">
                <item name="checkout" xsi:type="string">CHECKOUT</item>
                <item name="admin" xsi:type="string">ADMIN</item>
            </argument>
            <argument name="messageStyles" xsi:type="array">
                <item name="layout" xsi:type="string">text</item>
                <item name="logo" xsi:type="object">MessageStylesLogo</item>
            </argument>
        </arguments>
    </type>
    <virtualType name="MessageStylesLogo" type="Magento\PaymentServicesPaypal\Model\Api\Data\PaymentConfigSmartButtonsLogo">
        <arguments>
            <argument name="data" xsi:type="array">
                <item name="type" xsi:type="string">inline</item>
            </argument>
        </arguments>
    </virtualType>

    <!-- Hosted Fields payment method facade configuration -->
    <virtualType name="PaymentServicesPaypalHostedFieldsFacade" type="Magento\Payment\Model\Method\Adapter">
        <arguments>
            <argument name="code" xsi:type="const">Magento\PaymentServicesPaypal\Model\HostedFieldsConfigProvider::CODE</argument>
            <argument name="formBlockType" xsi:type="string">Magento\PaymentServicesPaypal\Block\Adminhtml\Form\AdminHostedFields</argument>
            <argument name="infoBlockType" xsi:type="string">Magento\PaymentServicesPaypal\Block\HostedFieldsInfo</argument>
            <argument name="valueHandlerPool" xsi:type="object">PaymentServicesPaypalHostedFieldsValueHandlerPool</argument>
            <argument name="commandPool" xsi:type="object">PaymentServicesPaypalHostedFieldsCommandPool</argument>
        </arguments>
    </virtualType>
    <!-- Smart Buttons payment method facade configuration -->
    <virtualType name="PaymentServicesPaypalSmartButtonsFacade" type="Magento\Payment\Model\Method\Adapter">
        <arguments>
            <argument name="code" xsi:type="const">Magento\PaymentServicesPaypal\Model\SmartButtonsConfigProvider::CODE</argument>
            <argument name="formBlockType" xsi:type="string">Magento\Payment\Block\Form</argument>
            <argument name="infoBlockType" xsi:type="string">Magento\PaymentServicesPaypal\Block\SmartButtonsInfo</argument>
            <argument name="valueHandlerPool" xsi:type="object">PaymentServicesPaypalSmartButtonsValueHandlerPool</argument>
            <argument name="commandPool" xsi:type="object">PaymentServicesPaypalSmartButtonsCommandPool</argument>
        </arguments>
    </virtualType>
    <!-- Apple Pay payment method facade configuration -->
    <virtualType name="PaymentServicesPaypalApplePayFacade" type="Magento\Payment\Model\Method\Adapter">
        <arguments>
            <argument name="code" xsi:type="const">Magento\PaymentServicesPaypal\Model\ApplePayConfigProvider::CODE</argument>
            <argument name="formBlockType" xsi:type="string">Magento\Payment\Block\Form</argument>
            <argument name="infoBlockType" xsi:type="string">Magento\PaymentServicesPaypal\Block\ApplePayInfo</argument>
            <argument name="valueHandlerPool" xsi:type="object">PaymentServicesPaypalApplePayValueHandlerPool</argument>
            <argument name="commandPool" xsi:type="object">PaymentServicesPaypalApplePayCommandPool</argument>
        </arguments>
    </virtualType>
    <!-- Google Pay payment method facade configuration -->
    <virtualType name="PaymentServicesPaypalGooglePayFacade" type="Magento\Payment\Model\Method\Adapter">
        <arguments>
            <argument name="code" xsi:type="const">Magento\PaymentServicesPaypal\Model\GooglePayConfigProvider::CODE</argument>
            <argument name="formBlockType" xsi:type="string">Magento\Payment\Block\Form</argument>
            <argument name="infoBlockType" xsi:type="string">Magento\PaymentServicesPaypal\Block\GooglePayInfo</argument>
            <argument name="valueHandlerPool" xsi:type="object">PaymentServicesPaypalGooglePayValueHandlerPool</argument>
            <argument name="commandPool" xsi:type="object">PaymentServicesPaypalGooglePayCommandPool</argument>
        </arguments>
    </virtualType>
    <!-- Vault payment method facade configuration-->
    <virtualType name="PaymentServicesPaypalVaultFacade" type="Magento\Vault\Model\Method\Vault">
        <arguments>
            <argument name="config" xsi:type="object">PaymentServicesPaypalVaultConfig</argument>
            <argument name="valueHandlerPool" xsi:type="object">PaymentServicesPaypalVaultValueHandlerPool</argument>
            <argument name="vaultProvider" xsi:type="object">PaymentServicesPaypalHostedFieldsFacade</argument>
            <argument name="code" xsi:type="const">Magento\PaymentServicesPaypal\Model\Ui\ConfigProvider::CC_VAULT_CODE</argument>
        </arguments>
    </virtualType>
    <!-- Configuration for Vault payments -->
    <virtualType name="PaymentServicesPaypalVaultConfig" type="Magento\Payment\Gateway\Config\Config">
        <arguments>
            <argument name="methodCode" xsi:type="const">Magento\PaymentServicesPaypal\Model\Ui\ConfigProvider::CC_VAULT_CODE</argument>
        </arguments>
    </virtualType>
    <!-- Hosted Fields configuration reader -->
    <virtualType name="PaymentServicesPaypalHostedFieldsConfig" type="Magento\Payment\Gateway\Config\Config">
        <arguments>
            <argument name="methodCode" xsi:type="const">Magento\PaymentServicesPaypal\Model\HostedFieldsConfigProvider::CODE</argument>
        </arguments>
    </virtualType>
    <!-- Smart Buttons configuration reader -->
    <virtualType name="PaymentServicesPaypalSmartButtonsConfig" type="Magento\Payment\Gateway\Config\Config">
        <arguments>
            <argument name="methodCode" xsi:type="const">Magento\PaymentServicesPaypal\Model\SmartButtonsConfigProvider::CODE</argument>
        </arguments>
    </virtualType>
    <!-- Apple Pay configuration reader -->
    <virtualType name="PaymentServicesApplePayButtonsConfig" type="Magento\Payment\Gateway\Config\Config">
        <arguments>
            <argument name="methodCode" xsi:type="const">Magento\PaymentServicesPaypal\Model\ApplePayConfigProvider::CODE</argument>
        </arguments>
    </virtualType>
    <!-- Google Pay configuration reader -->
    <virtualType name="PaymentServicesGooglePayButtonsConfig" type="Magento\Payment\Gateway\Config\Config">
        <arguments>
            <argument name="methodCode" xsi:type="const">Magento\PaymentServicesPaypal\Model\GooglePayConfigProvider::CODE</argument>
        </arguments>
    </virtualType>
    <!-- Hosted Fields logger -->
    <virtualType name="PaymentServicesPaypalHostedFieldsLogger" type="Magento\Payment\Model\Method\Logger">
        <arguments>
            <argument name="config" xsi:type="object">PaymentServicesPaypalHostedFieldsConfig</argument>
        </arguments>
    </virtualType>

    <!-- Smart Buttons logger -->
    <virtualType name="PaymentServicesPaypalSmartButtonsLogger" type="Magento\Payment\Model\Method\Logger">
        <arguments>
            <argument name="config" xsi:type="object">PaymentServicesPaypalSmartButtonsConfig</argument>
        </arguments>
    </virtualType>

    <!-- Apple Pay logger -->
    <virtualType name="PaymentServicesPaypalApplePayLogger" type="Magento\Payment\Model\Method\Logger">
        <arguments>
            <argument name="config" xsi:type="object">PaymentServicesApplePayButtonsConfig</argument>
        </arguments>
    </virtualType>

    <!-- Google Pay logger -->
    <virtualType name="PaymentServicesPaypalGooglePayLogger" type="Magento\Payment\Model\Method\Logger">
        <arguments>
            <argument name="config" xsi:type="object">PaymentServicesGooglePayButtonsConfig</argument>
        </arguments>
    </virtualType>

    <!-- Hosted Fields commands -->
    <virtualType name="PaymentServicesPaypalHostedFieldsCommandPool" type="Magento\Payment\Gateway\Command\CommandPool">
        <arguments>
            <argument name="commands" xsi:type="array">
                <item name="authorize" xsi:type="string">PaymentServicesPaypalHostedFieldsAuthorizeCommand</item>
                <item name="vault_authorize" xsi:type="string">PaymentServicesPaypalHostedFieldsAuthorizeCommand</item>
                <item name="vault_sale" xsi:type="string">PaymentServicesPaypalHostedFieldsAuthorizeAndCaptureCommand</item>
                <item name="sale" xsi:type="string">PaymentServicesPaypalHostedFieldsAuthorizeAndCaptureCommand</item>
                <item name="capture" xsi:type="string">PaymentServicesPaypalHostedFieldsCaptureCommand</item>
                <item name="refund" xsi:type="string">PaymentServicesPaypalHostedFieldsRefundCommand</item>
                <item name="cancel" xsi:type="string">PaymentServicesPaypalHostedFieldsVoidCommand</item>
                <item name="void" xsi:type="string">PaymentServicesPaypalHostedFieldsVoidCommand</item>
            </argument>
        </arguments>
    </virtualType>
    <!-- Smart Buttons commands -->
    <virtualType name="PaymentServicesPaypalSmartButtonsCommandPool" type="Magento\Payment\Gateway\Command\CommandPool">
        <arguments>
            <argument name="commands" xsi:type="array">
                <item name="authorize" xsi:type="string">PaymentServicesPaypalSmartButtonsAuthorizeCommand</item>
                <item name="sale" xsi:type="string">PaymentServicesPaypalSmartButtonsAuthorizeAndCaptureCommand</item>
                <item name="capture" xsi:type="string">PaymentServicesPaypalSmartButtonsCaptureCommand</item>
                <item name="refund" xsi:type="string">PaymentServicesPaypalSmartButtonsRefundCommand</item>
                <item name="cancel" xsi:type="string">PaymentServicesPaypalSmartButtonsVoidCommand</item>
                <item name="void" xsi:type="string">PaymentServicesPaypalSmartButtonsVoidCommand</item>
            </argument>
        </arguments>
    </virtualType>
    <!-- Apple Pay commands -->
    <virtualType name="PaymentServicesPaypalApplePayCommandPool" type="Magento\Payment\Gateway\Command\CommandPool">
        <arguments>
            <argument name="commands" xsi:type="array">
                <item name="authorize" xsi:type="string">PaymentServicesPaypalApplePayAuthorizeCommand</item>
                <item name="sale" xsi:type="string">PaymentServicesPaypalApplePayAuthorizeAndCaptureCommand</item>
                <item name="capture" xsi:type="string">PaymentServicesPaypalApplePayCaptureCommand</item>
                <item name="refund" xsi:type="string">PaymentServicesPaypalApplePayRefundCommand</item>
                <item name="cancel" xsi:type="string">PaymentServicesPaypalApplePayVoidCommand</item>
                <item name="void" xsi:type="string">PaymentServicesPaypalApplePayVoidCommand</item>
            </argument>
        </arguments>
    </virtualType>
    <!-- Google Pay commands -->
    <virtualType name="PaymentServicesPaypalGooglePayCommandPool" type="Magento\Payment\Gateway\Command\CommandPool">
        <arguments>
            <argument name="commands" xsi:type="array">
                <item name="authorize" xsi:type="string">PaymentServicesPaypalGooglePayAuthorizeCommand</item>
                <item name="sale" xsi:type="string">PaymentServicesPaypalGooglePayAuthorizeAndCaptureCommand</item>
                <item name="capture" xsi:type="string">PaymentServicesPaypalGooglePayCaptureCommand</item>
                <item name="refund" xsi:type="string">PaymentServicesPaypalGooglePayRefundCommand</item>
                <item name="cancel" xsi:type="string">PaymentServicesPaypalGooglePayVoidCommand</item>
                <item name="void" xsi:type="string">PaymentServicesPaypalGooglePayVoidCommand</item>
            </argument>
        </arguments>
    </virtualType>
    <virtualType name="HostedFieldsVaultCommandManager" type="Magento\Payment\Gateway\Command\CommandManager">
        <arguments>
            <argument name="commandPool" xsi:type="object">PaymentServicesPaypalHostedFieldsCommandPool</argument>
        </arguments>
    </virtualType>
    <type name="Magento\Payment\Gateway\Command\CommandManagerPool">
        <arguments>
            <argument name="executors" xsi:type="array">
                <item name="payment_services_paypal_hosted_fields" xsi:type="string">HostedFieldsVaultCommandManager</item>
            </argument>
        </arguments>
    </type>
    <!-- Vault commands -->
    <virtualType name="PaymentServicesPaypalVaultValueHandlerPool" type="VaultPaymentValueHandlerPool">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="default" xsi:type="string">PaymentServicesPayPalVaultPaymentValueHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <virtualType name="PaymentServicesPayPalVaultPaymentValueHandler" type="VaultPaymentDefaultValueHandler">
        <arguments>
            <argument name="configInterface" xsi:type="object">PaymentServicesPaypalVaultConfig</argument>
        </arguments>
    </virtualType>
    <!-- Hosted Fields authorize command -->
    <virtualType name="PaymentServicesPaypalHostedFieldsAuthorizeCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalAuthorizationRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalResponseHostedFieldsHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\HostedFieldsServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Smart Buttons authorize command -->
    <virtualType name="PaymentServicesPaypalSmartButtonsAuthorizeCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalAuthorizationRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\SmartButtonsServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Apple Pay authorize command -->
    <virtualType name="PaymentServicesPaypalApplePayAuthorizeCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalAuthorizationRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalResponseApplePayHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\ApplePayServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Google Pay authorize command -->
    <virtualType name="PaymentServicesPaypalGooglePayAuthorizeCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalAuthorizationRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalResponseGooglePayHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\GooglePayServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Hosted Fields authorize and capture command -->
    <virtualType name="PaymentServicesPaypalHostedFieldsAuthorizeAndCaptureCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalAuthorizationAndCaptureRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalCaptureResponseHostedFieldsHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\HostedFieldsServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Smart Buttons authorize and capture command -->
    <virtualType name="PaymentServicesPaypalSmartButtonsAuthorizeAndCaptureCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalAuthorizationAndCaptureRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalCaptureResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\SmartButtonsServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Google Pay authorize and capture command -->
    <virtualType name="PaymentServicesPaypalGooglePayAuthorizeAndCaptureCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalAuthorizationAndCaptureRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalCaptureResponseGooglePayHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\GooglePayServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Smart Buttons authorize and capture command -->
    <virtualType name="PaymentServicesPaypalApplePayAuthorizeAndCaptureCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalAuthorizationAndCaptureRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalCaptureResponseApplePayHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\ApplePayServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Hosted Fields capture command -->
    <virtualType name="PaymentServicesPaypalHostedFieldsCaptureCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalCaptureRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalCaptureResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\HostedFieldsServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Smart Buttons capture command -->
    <virtualType name="PaymentServicesPaypalSmartButtonsCaptureCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalCaptureRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalCaptureResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\SmartButtonsServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Google Pay capture command -->
    <virtualType name="PaymentServicesPaypalGooglePayCaptureCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalCaptureRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalCaptureResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\GooglePayServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Smart Buttons capture command -->
    <virtualType name="PaymentServicesPaypalApplePayCaptureCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalCaptureRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalCaptureResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\ApplePayServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Hosted Fields refund command -->
    <virtualType name="PaymentServicesPaypalHostedFieldsRefundCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalRefundRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\HostedFieldsServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Smart Buttons refund command -->
    <virtualType name="PaymentServicesPaypalSmartButtonsRefundCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalRefundRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\SmartButtonsServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Google Pay refund command -->
    <virtualType name="PaymentServicesPaypalGooglePayRefundCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalRefundRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\GooglePayServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Apple Pay refund command -->
    <virtualType name="PaymentServicesPaypalApplePayRefundCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalRefundRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\ApplePayServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Hosted Fields void command -->
    <virtualType name="PaymentServicesPaypalHostedFieldsVoidCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalVoidRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\HostedFieldsServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Smart Buttons void command -->
    <virtualType name="PaymentServicesPaypalSmartButtonsVoidCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalVoidRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\SmartButtonsServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Google Pay void command -->
    <virtualType name="PaymentServicesPaypalGooglePayVoidCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalVoidRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\GooglePayServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Apple Pay void command -->
    <virtualType name="PaymentServicesPaypalApplePayVoidCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
        <arguments>
            <argument name="requestBuilder" xsi:type="object">PaymentServicesPaypalVoidRequest</argument>
            <argument name="handler" xsi:type="object">PaymentServicesPaypalResponseHandlerComposite</argument>
            <argument name="transferFactory" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\TransferFactory</argument>
            <argument name="client" xsi:type="object">Magento\PaymentServicesPaypal\Gateway\Http\ApplePayServiceClient</argument>
        </arguments>
    </virtualType>
    <!-- Authorization request -->
    <virtualType name="PaymentServicesPaypalAuthorizationRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
        <arguments>
            <argument name="builders" xsi:type="array">
                <item name="transaction" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Request\AuthorizationRequest</item>
            </argument>
        </arguments>
    </virtualType>
    <!-- Authorization and capture request -->
    <virtualType name="PaymentServicesPaypalAuthorizationAndCaptureRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
        <arguments>
            <argument name="builders" xsi:type="array">
                <item name="transaction" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Request\AuthorizationAndCaptureRequest</item>
            </argument>
        </arguments>
    </virtualType>
    <!-- Capture request -->
    <virtualType name="PaymentServicesPaypalCaptureRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
        <arguments>
            <argument name="builders" xsi:type="array">
                <item name="transaction" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Request\CaptureRequest</item>
            </argument>
        </arguments>
    </virtualType>
    <!-- Refund request -->
    <virtualType name="PaymentServicesPaypalRefundRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
        <arguments>
            <argument name="builders" xsi:type="array">
                <item name="transaction" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Request\RefundRequest</item>
            </argument>
        </arguments>
    </virtualType>

    <!-- Void request -->
    <virtualType name="PaymentServicesPaypalVoidRequest" type="Magento\Payment\Gateway\Request\BuilderComposite">
        <arguments>
            <argument name="builders" xsi:type="array">
                <item name="transaction" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Request\VoidRequest</item>
            </argument>
        </arguments>
    </virtualType>
    <!-- Response handlers -->
    <virtualType name="PaymentServicesPaypalResponseHandlerComposite" type="Magento\Payment\Gateway\Response\HandlerChain">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="txnid" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\TxnIdHandler</item>
                <item name="vault" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\VaultDetailsHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <virtualType name="PaymentServicesPaypalCaptureResponseHandlerComposite" type="Magento\Payment\Gateway\Response\HandlerChain">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="txnid" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\TxnIdHandler</item>
                <item name="vault" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\VaultDetailsHandler</item>
                <item name="pendingTxn" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\PendingTransactionsHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <!-- Apple Pay Response handlers -->
    <virtualType name="PaymentServicesPaypalResponseApplePayHandlerComposite" type="Magento\Payment\Gateway\Response\HandlerChain">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="paymentSourceResponse" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\PaymentSourceResponseHandler</item>
                <item name="txnid" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\TxnIdHandler</item>
                <item name="vault" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\VaultDetailsHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <virtualType name="PaymentServicesPaypalCaptureResponseApplePayHandlerComposite" type="Magento\Payment\Gateway\Response\HandlerChain">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="paymentSourceResponse" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\PaymentSourceResponseHandler</item>
                <item name="txnid" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\TxnIdHandler</item>
                <item name="vault" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\VaultDetailsHandler</item>
                <item name="pendingTxn" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\PendingTransactionsHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <!-- Response Handlers only for Hosted Fields -->
    <virtualType name="PaymentServicesPaypalResponseHostedFieldsHandlerComposite" type="Magento\Payment\Gateway\Response\HandlerChain">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="paymentSourceResponse" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\PaymentSourceResponseHandler</item>
                <item name="txnid" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\TxnIdHandler</item>
                <item name="vault" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\VaultDetailsHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <virtualType name="PaymentServicesPaypalCaptureResponseHostedFieldsHandlerComposite" type="Magento\Payment\Gateway\Response\HandlerChain">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="paymentSourceResponse" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\PaymentSourceResponseHandler</item>
                <item name="txnid" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\TxnIdHandler</item>
                <item name="vault" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\VaultDetailsHandler</item>
                <item name="pendingTxn" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\PendingTransactionsHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <!-- Response Handlers only for Google Pay -->
    <virtualType name="PaymentServicesPaypalResponseGooglePayHandlerComposite" type="Magento\Payment\Gateway\Response\HandlerChain">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="paymentSourceResponse" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\PaymentSourceResponseHandler</item>
                <item name="txnid" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\TxnIdHandler</item>
                <item name="vault" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\VaultDetailsHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <virtualType name="PaymentServicesPaypalCaptureResponseGooglePayHandlerComposite" type="Magento\Payment\Gateway\Response\HandlerChain">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="paymentSourceResponse" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\PaymentSourceResponseHandler</item>
                <item name="txnid" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\TxnIdHandler</item>
                <item name="vault" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\VaultDetailsHandler</item>
                <item name="pendingTxn" xsi:type="string">Magento\PaymentServicesPaypal\Gateway\Response\PendingTransactionsHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <!-- Hosted Fields value handlers -->
    <virtualType name="PaymentServicesPaypalHostedFieldsValueHandlerPool" type="Magento\Payment\Gateway\Config\ValueHandlerPool">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="default" xsi:type="string">PaymentServicesPaypalHostedFieldsConfigValueHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <virtualType name="PaymentServicesPaypalHostedFieldsConfigValueHandler" type="Magento\Payment\Gateway\Config\ConfigValueHandler">
        <arguments>
            <argument name="configInterface" xsi:type="object">PaymentServicesPaypalHostedFieldsConfig</argument>
        </arguments>
    </virtualType>
    <!-- Smart Buttons value handlers -->
    <virtualType name="PaymentServicesPaypalSmartButtonsValueHandlerPool" type="Magento\Payment\Gateway\Config\ValueHandlerPool">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="default" xsi:type="string">PaymentServicesPaypalSmartButtonsConfigValueHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <virtualType name="PaymentServicesPaypalSmartButtonsConfigValueHandler" type="Magento\Payment\Gateway\Config\ConfigValueHandler">
        <arguments>
            <argument name="configInterface" xsi:type="object">PaymentServicesPaypalSmartButtonsConfig</argument>
        </arguments>
    </virtualType>
    <!-- ApplePay value handlers -->
    <virtualType name="PaymentServicesPaypalApplePayValueHandlerPool" type="Magento\Payment\Gateway\Config\ValueHandlerPool">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="default" xsi:type="string">PaymentServicesPaypalApplePayConfigValueHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <virtualType name="PaymentServicesPaypalApplePayConfigValueHandler" type="Magento\Payment\Gateway\Config\ConfigValueHandler">
        <arguments>
            <argument name="configInterface" xsi:type="object">PaymentServicesApplePayButtonsConfig</argument>
        </arguments>
    </virtualType>
    <!-- GooglePay value handlers -->
    <virtualType name="PaymentServicesPaypalGooglePayValueHandlerPool" type="Magento\Payment\Gateway\Config\ValueHandlerPool">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="default" xsi:type="string">PaymentServicesPaypalGooglePayConfigValueHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <virtualType name="PaymentServicesPaypalGooglePayConfigValueHandler" type="Magento\Payment\Gateway\Config\ConfigValueHandler">
        <arguments>
            <argument name="configInterface" xsi:type="object">PaymentServicesGooglePayButtonsConfig</argument>
        </arguments>
    </virtualType>

    <!--  Payment info block  -->
    <type name="Magento\PaymentServicesPaypal\Block\Info">
        <arguments>
            <argument name="data" xsi:type="array">
                <item name="valueMapper" xsi:type="array">
                    <item name="payment_source" xsi:type="array">
                        <item name="cc" xsi:type="string" translatable="true">Credit Card</item>
                        <item name="vault" xsi:type="string" translatable="true">Stored Credit Card</item>
                        <item name="paypal" xsi:type="string" translatable="true">PayPal</item>
                        <item name="paylater" xsi:type="string" translatable="true">PayLater</item>
                        <item name="venmo" xsi:type="string" translatable="true">Venmo</item>
                        <item name="applepay" xsi:type="string" translatable="true">Apple Pay</item>
                        <item name="googlepay" xsi:type="string" translatable="true">Google Pay</item>
                    </item>
                </item>
            </argument>
        </arguments>
    </type>
    <virtualType name="Magento\PaymentServicesPaypal\Block\HostedFieldsInfo" type="Magento\PaymentServicesPaypal\Block\Info">
        <arguments>
            <argument name="config" xsi:type="object">PaymentServicesPaypalHostedFieldsConfig</argument>
        </arguments>
    </virtualType>
    <virtualType name="Magento\PaymentServicesPaypal\Block\SmartButtonsInfo" type="Magento\PaymentServicesPaypal\Block\Info">
        <arguments>
            <argument name="config" xsi:type="object">PaymentServicesPaypalSmartButtonsConfig</argument>
        </arguments>
    </virtualType>
    <virtualType name="Magento\PaymentServicesPaypal\Block\ApplePayInfo" type="Magento\PaymentServicesPaypal\Block\Info">
        <arguments>
            <argument name="config" xsi:type="object">PaymentServicesApplePayButtonsConfig</argument>
        </arguments>
    </virtualType>
    <virtualType name="Magento\PaymentServicesPaypal\Block\GooglePayInfo" type="Magento\PaymentServicesPaypal\Block\Info">
        <arguments>
            <argument name="config" xsi:type="object">PaymentServicesGooglePayButtonsConfig</argument>
        </arguments>
    </virtualType>
    <virtualType name="Magento\PaymentServicesPaypal\Gateway\Http\HostedFieldsServiceClient" type="Magento\PaymentServicesPaypal\Gateway\Http\ServiceClient">
        <arguments>
            <argument name="logger" xsi:type="object">PaymentServicesPaypalHostedFieldsLogger</argument>
        </arguments>
    </virtualType>
    <virtualType name="Magento\PaymentServicesPaypal\Gateway\Http\SmartButtonsServiceClient" type="Magento\PaymentServicesPaypal\Gateway\Http\ServiceClient">
        <arguments>
            <argument name="logger" xsi:type="object">PaymentServicesPaypalSmartButtonsLogger</argument>
        </arguments>
    </virtualType>
    <virtualType name="Magento\PaymentServicesPaypal\Gateway\Http\GooglePayServiceClient" type="Magento\PaymentServicesPaypal\Gateway\Http\ServiceClient">
        <arguments>
            <argument name="logger" xsi:type="object">PaymentServicesPaypalGooglePayLogger</argument>
        </arguments>
    </virtualType>
    <virtualType name="Magento\PaymentServicesPaypal\Gateway\Http\ApplePayServiceClient" type="Magento\PaymentServicesPaypal\Gateway\Http\ServiceClient">
        <arguments>
            <argument name="logger" xsi:type="object">PaymentServicesPaypalApplePayLogger</argument>
        </arguments>
    </virtualType>
    <type name="Magento\Config\Model\Config\Structure">
        <plugin name="magpay_payments_config_structure" type="Magento\PaymentServicesPaypal\Plugin\Config\Structure"/>
    </type>
    <type name="Magento\Payment\Model\Method\Adapter">
        <plugin name="magpay_payments_model_adapter" type="Magento\PaymentServicesPaypal\Plugin\Config\Adapter"/>
    </type>
    <type name="Magento\Vault\Model\Method\Vault">
        <plugin name="magpay_payments_vault_method" type="Magento\PaymentServicesPaypal\Plugin\Vault\Method"/>
    </type>
    <type name="Magento\Vault\Model\PaymentTokenRepository">
        <plugin name="magpay_payments_vault_payment_token_repository" type="Magento\PaymentServicesPaypal\Plugin\Vault\PaymentTokenRepository"/>
    </type>
    <type name="Magento\PaymentServicesPaypal\Block\SmartButtons">
        <arguments>
            <argument name="componentConfig" xsi:type="array">
                <item name="product" xsi:type="array">
                    <item name="template" xsi:type="string">Magento_PaymentServicesPaypal::smart_buttons_product.phtml</item>
                </item>
                <item name="cart" xsi:type="array">
                    <item name="template" xsi:type="string">Magento_PaymentServicesPaypal::smart_buttons_cart.phtml</item>
                </item>
                <item name="minicart" xsi:type="array">
                    <item name="template" xsi:type="string">Magento_PaymentServicesPaypal::smart_buttons_minicart.phtml</item>
                </item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\PaymentServicesPaypal\Block\Message">
        <arguments>
            <argument name="componentConfig" xsi:type="array">
                <item name="product" xsi:type="array">
                    <item name="template" xsi:type="string">Magento_PaymentServicesPaypal::message_product.phtml</item>
                    <item name="renderContainer" xsi:type="string">.product-add-form .pay-later-message</item>
                    <item name="placement" xsi:type="string">cart</item>
                    <item name="styles" xsi:type="array">
                        <item name="layout" xsi:type="string">text</item>
                        <item name="logo" xsi:type="array">
                            <item name="type" xsi:type="string">inline</item>
                        </item>
                    </item>
                </item>
                <item name="cart" xsi:type="array">
                    <item name="template" xsi:type="string">Magento_PaymentServicesPaypal::message_cart.phtml</item>
                    <item name="renderContainer" xsi:type="string">.checkout-methods-items .pay-later-message</item>
                    <item name="placement" xsi:type="string">cart</item>
                    <item name="styles" xsi:type="array">
                        <item name="layout" xsi:type="string">text</item>
                        <item name="logo" xsi:type="array">
                            <item name="type" xsi:type="string">inline</item>
                        </item>
                    </item>
                </item>
                <item name="minicart" xsi:type="array">
                    <item name="template" xsi:type="string">Magento_PaymentServicesPaypal::message_minicart.phtml</item>
                    <item name="renderContainer" xsi:type="string">.block-minicart .pay-later-message</item>
                    <item name="placement" xsi:type="string">cart</item>
                    <item name="styles" xsi:type="array">
                        <item name="layout" xsi:type="string">text</item>
                        <item name="logo" xsi:type="array">
                            <item name="type" xsi:type="string">inline</item>
                        </item>
                    </item>
                </item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\PaymentServicesPaypal\Model\SmartButtonsConfigProvider">
        <arguments>
            <argument name="messageStyles" xsi:type="array">
                <item name="layout" xsi:type="string">text</item>
                <item name="logo" xsi:type="array">
                    <item name="type" xsi:type="string">inline</item>
                </item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\PaymentServicesPaypal\Observer\AddCheckoutComponents">
        <arguments>
            <argument name="blocks" xsi:type="array">
                <item name="product" xsi:type="string">Magento\PaymentServicesPaypal\Block\SmartButtonsProduct</item>
                <item name="cart" xsi:type="string">Magento\PaymentServicesPaypal\Block\SmartButtonsCart</item>
                <item name="minicart" xsi:type="string">Magento\PaymentServicesPaypal\Block\SmartButtons</item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\PaymentServicesBase\Observer\UpdateOrder">
        <arguments>
            <argument name="methods" xsi:type="array">
                <item name="smart_buttons" xsi:type="string">payment_services_paypal_smart_buttons</item>
                <item name="hosted_fields" xsi:type="string">payment_services_paypal_hosted_fields</item>
                <item name="apple_pay" xsi:type="string">payment_services_paypal_apple_pay</item>
                <item name="google_pay" xsi:type="string">payment_services_paypal_google_pay</item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\PaymentServicesPaypal\Model\CancellationService">
        <arguments>
            <argument name="methods" xsi:type="array">
                <item name="vault" xsi:type="string">payment_services_paypal_vault</item>
                <item name="smart_buttons" xsi:type="string">payment_services_paypal_smart_buttons</item>
                <item name="hosted_fields" xsi:type="string">payment_services_paypal_hosted_fields</item>
                <item name="apple_pay" xsi:type="string">payment_services_paypal_apple_pay</item>
                <item name="google_pay" xsi:type="string">payment_services_paypal_google_pay</item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\Payment\Model\Checks\SpecificationFactory">
        <arguments>
            <argument name="mapping" xsi:type="array">
                <item name="payment_services_acl" xsi:type="object">Magento\PaymentServicesPaypal\Model\Payment\Checks\CanUseForUser</item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\Sales\Block\Adminhtml\Order\Create\Billing\Method\Form">
        <arguments>
            <argument name="additionalChecks" xsi:type="array">
                <item name="payment_services_acl" xsi:type="string">payment_services_acl</item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\PaymentServicesPaypal\Model\Payment\Checks\CanUseForUser">
        <arguments>
            <argument name="methods" xsi:type="array">
                <item name="vault" xsi:type="string">payment_services_paypal_vault</item>
                <item name="hosted_fields" xsi:type="string">payment_services_paypal_hosted_fields</item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\Quote\Api\CartManagementInterface">
        <plugin name="order_cancellation" type="Magento\PaymentServicesPaypal\Plugin\OrderCancellation"/>
        <plugin name="order_update" type="Magento\PaymentServicesPaypal\Plugin\OrderUpdate"/>
    </type>
    <type name="Magento\PaymentServicesPaypal\Model\PaymentOrderManagement">
        <arguments>
            <argument name="validMethodCodes" xsi:type="array">
                <item name="hostedFieldsCode" xsi:type="const">Magento\PaymentServicesPaypal\Model\HostedFieldsConfigProvider::CODE</item>
                <item name="hostedFieldsVaultCode" xsi:type="const">Magento\PaymentServicesPaypal\Model\HostedFieldsConfigProvider::CC_VAULT_CODE</item>
                <item name="smartButtonsCode" xsi:type="const">Magento\PaymentServicesPaypal\Model\SmartButtonsConfigProvider::CODE</item>
                <item name="applePayCode" xsi:type="const">Magento\PaymentServicesPaypal\Model\ApplePayConfigProvider::CODE</item>
                <item name="googlePayCode" xsi:type="const">Magento\PaymentServicesPaypal\Model\GooglePayConfigProvider::CODE</item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\PaymentServicesPaypal\Model\Provider\OrdersWithPaymentReview">
        <arguments>
            <argument name="methods" xsi:type="array">
                <item name="smart_buttons" xsi:type="string">payment_services_paypal_smart_buttons</item>
                <item name="hosted_fields" xsi:type="string">payment_services_paypal_hosted_fields</item>
                <item name="apple_pay" xsi:type="string">payment_services_paypal_apple_pay</item>
                <item name="google_pay" xsi:type="string">payment_services_paypal_google_pay</item>
            </argument>
        </arguments>
    </type>
</config>