lamoda/payture-inpay-bundle

Payture InPay API 客户端包

安装: 125

依赖项: 0

建议者: 0

安全: 0

星标: 6

关注者: 30

分支: 1

开放问题: 0

类型:symfony-bundle

1.2 2024-02-01 12:36 UTC

This package is auto-updated.

Last update: 2024-08-30 13:52:02 UTC


README

包装 lamoda/payture-inpay-php-client 的包

安装

composer require lamoda/payture-inpay-bundle
<?php
// Kernel
/// ...
$bundles[] = new \Lamoda\Payture\InPayBundle\PaytureInPayBundle();
///
# services.yaml
payture_inpay:
  terminals:
    TestTerminal:
      auth:
        key: MerchantKey
        password: MerchantPassword
        url: https://sandbox.payture.com

使用

<?php
$container->get(\Lamoda\Payture\InPayBundle\Terminal\TerminalRegistry::class)->get('TestTerminal')->charge('ORDER_NUMBER_123', 100500);

调整

自定义 Guzzle 客户端

您可以使用 payture_inpay.guzzle_client 选项键配置每个终端使用的 Guzzle 客户端,将您自己的 Guzzle 客户端服务 ID 放在那里。如果没有提供,则会为您实例化新客户端,即

  default_options:
    operations:
      Init:
        timeout: 2
        connect_timeout: 0.5

客户端配置

目前,您可以使用 payture_inpay.default_options.operations 为全局设置或 payture_inpay.terminals.<TerminalName>.operations 为终端级别设置来配置每个操作的超时。

日志记录

您可以使用带日志服务 ID 的 payture_inpay.logging 配置,以便传递给包的所有内部服务。

您还可以配置通用的 Guzzle 日志中间件

配置参考

payture_inpay:
    terminals:

        # Prototype
        name:
            name:                 ~

            # Terminal authentication data
            auth:                 # Required

                # Terminal operation URL
                url:                  ~ # Required, Example: https://sandbox.payture.com/

                # Terminal identification Key
                key:                  ~ # Required, Example: Merchant

                # Terminal identification Password
                password:             ~ # Required, Example: Secret
            operations:
                Init:

                    # Operation timeout, seconds
                    timeout:              null

                    # Connection timeout for operation, seconds
                    connect_timeout:      null
                Charge:

                    # Operation timeout, seconds
                    timeout:              null

                    # Connection timeout for operation, seconds
                    connect_timeout:      null
                Unblock:

                    # Operation timeout, seconds
                    timeout:              null

                    # Connection timeout for operation, seconds
                    connect_timeout:      null
                Refund:

                    # Operation timeout, seconds
                    timeout:              null

                    # Connection timeout for operation, seconds
                    connect_timeout:      null
                PayStatus:

                    # Operation timeout, seconds
                    timeout:              null

                    # Connection timeout for operation, seconds
                    connect_timeout:      null
    default_options:
        operations:
            Init:

                # Operation timeout, seconds
                timeout:              30 # Required

                # Connection timeout for operation, seconds
                connect_timeout:      5 # Required
            Charge:

                # Operation timeout, seconds
                timeout:              30 # Required

                # Connection timeout for operation, seconds
                connect_timeout:      5 # Required
            Unblock:

                # Operation timeout, seconds
                timeout:              30 # Required

                # Connection timeout for operation, seconds
                connect_timeout:      5 # Required
            Refund:

                # Operation timeout, seconds
                timeout:              30 # Required

                # Connection timeout for operation, seconds
                connect_timeout:      5 # Required
            PayStatus:

                # Operation timeout, seconds
                timeout:              30 # Required

                # Connection timeout for operation, seconds
                connect_timeout:      5 # Required

    # Guzzle client service ID. New one will be created if none provided
    guzzle_client:        null

    # Logger service ID. No logger by default
    logger:               null