网关命令
网关命令是Magento的支付网关,以组件payload为特定的支付提供者提供并发送、接收和处理提供商的响应。 每个操作(授权、捕捉等)有一定的支付提供商-一个单独的网关命令添加。
Interface(接口)
网关命令的基本接口是 \Magento\Payment\Gateway\CommandInterface
. 它实现了命令设计模式。
基本实现
\Magento\Payment\Gateway\Command\GatewayCommand
默认实现 CommandInterface
接口.他允许执行大多数操作在Magento sales management.
添加网关命令
对于每个特定的集成与支付提供商, 网关命令使用虚拟类型添加 依赖注入(DI) 配置.
在下面的例子中展示BraintreeAuthorizeCommand
网关命令添加:
<virtualType name="BraintreeAuthorizeCommand" type="Magento\Payment\Gateway\Command\GatewayCommand">
<arguments>
<argument name="requestBuilder" xsi:type="object">BraintreeAuthorizeRequest</argument>
<argument name="transferFactory" xsi:type="object">Magento\Braintree\Gateway\Http\TransferFactory</argument>
<argument name="client" xsi:type="object">Magento\Braintree\Gateway\Http\Client\TransactionSale</argument>
<argument name="handler" xsi:type="object">BraintreeAuthorizationHandler</argument>
<argument name="validator" xsi:type="object">Magento\Braintree\Gateway\Validator\ResponseValidator</argument>
</arguments>
</virtualType>
一个网关命令必须配置以下参数:
-
requestBuilder
: 请求构建器(Request Builder), 使用顺序信息构建一个提供程序特定参数的数组。 -
transferFactory
:transfer factory,从请求数据创建传输对象,这将由网关客户端使用来处理请求。 -
client
: 网关客户端(Gateway Client),获取提供者特定的参数并对提供者执行低级别调用。
可选参数 :
handler
: 响应处理器(Response Handler),根据付款提供商的响应更改订单和付款状态。