matthv/laravel-atos-sips-gateway

v1.1.0 2022-02-13 14:37 UTC

This package is auto-updated.

Last update: 2024-09-13 20:40:43 UTC


README

此包使得与Atos SIPS支付系统集成变得简单,该系统在不同名称下被法国银行广泛使用:Mercanet、E-Transactions、Citelis、Sogenactif等。

请注意,此包仅支持Atos SIPS的版本2。

Atos SIPS官方文档

安装

1. composer

composer require matthv/laravel-atos-sips-gateway

2. 发布

php artisan vendor:publish --provider="Matthv\AtosSipsGateway\Providers\AtosSipsServiceProvider"

3. 配置

大部分值来自Atos仪表板。你应该将以下变量放入你的.env文件

  • ATOS_TEST : true 使用测试环境。默认为true。由Atos仪表板提供
  • ATOS_MERCHANT_ID : 商户ID。
  • ATOS_SECRET_KEY : 秘密密钥。
  • ATOS_KEY_VERSION : 密钥版本。
  • ATOS_INTERFACE_VERSION : 接口版本。
  • ATOS_PRODUCTION_URL : 银行生产URL。默认为 https://payment-webinit.mercanet.bnpparibas.net/paymentInit
  • ATOS_TEST_URL : 银行测试URL。默认为 https://payment-webinit-mercanet.test.sips-atos.com/paymentInit

你可以在 config/atos.php 中查看所有配置选项。

使用Mercanet BNP Paribas的示例

ATOS_TEST=true
ATOS_MERCHANT_ID=211000021310001
ATOS_SECRET_KEY=S9i8qClCnb2CZU3y3Vn0toIOgz3z_aBi79akR30vM9o
ATOS_KEY_VERSION=1
ATOS_INTERFACE_VERSION=HP_2.20

文档: 第一步 - 仪表板信息

用法

1. 准备表单支付

要进行基本支付,您至少需要以下两个信息

  • paymentNumber用于标识单个交易。这对应于Atos的transactionReference
  • 金额(以分格式化的整数)。例如10.50 € => 1050。默认货币为欧元。

此代码应在控制器中运行。它将返回一个视图,该视图将自动将客户重定向到银行网站。

return app()->make(AtosSipsAuthorization::class)
            ->setPaymentNumber('AABBAA'.rand(1000,9999))
            ->setAmount(1000)
            ->paymentView();

您可以使用setCustomParameter方法添加Atos SIPS自定义字段。

return app()->make(AtosSipsAuthorization::class)
            ->setPaymentNumber('AABBAA'.rand(1000,9999))
            ->setCustomParameters(
                [
                    'customerEmail' => 'j.doe@customer-email.com',
                    'customerId' => 123,
                    'orderId' => 456,
                ]
            )
            ->setAmount(1000)
            ->paymentView();

2. 返回 & 回调路由

您需要在config/atos.php中设置两个路由名称,每个名称都具有post方法

  • customer_return_route_name:允许您的用户在支付成功或取消时返回到您的网站。默认为atos.return
  • customer_callback_route_name:银行在交易完成后调用的路由。默认为atos.callback

您可能需要从您的VerifyCsrfToken中间件中排除这些路由。

3. 回调交易处理

此代码应在回调路由的控制器中运行。

$verify = app()->make(Verify::class);
// you can access all callback data using
$allParameters = $verify->getParameters();
// or specify a field using
$paymentNumber = $verify->getParameter('transactionReference');

try {
    $success = $verify->isSuccess();
    if ($success) {
        // handle successful payment
    } else {
        // handle error payment
    }
    echo "OK";
} catch (InvalidSignature $e) {
    Log::alert('Invalid payment signature detected');
}

许可证

此包受MIT许可证许可。

感谢

此包受devpark/laravel-paybox-gateway的启发。