apoca / laravel-sibs-payments
Laravel 库,用于与 SIBS - 开放支付平台进行通信。
Requires
- php: ^7.2
- ext-json: *
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- laravel/framework: ^5.8
- mockery/mockery: ^1.2
- orchestra/testbench: ^3.8
- php-coveralls/php-coveralls: ^2.1
- phpunit/php-code-coverage: ^7.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-16 23:20:57 UTC
README
Laravel 库,用于与 SIBS - 开放支付平台 进行通信。该库包括以下支付方式:VISA、MASTER、AMEX、VPAY、MAESTRO、VISADEBIT、VISAELECTRON。
内容
安装
使用 composer 安装此包。建议仅用于开发环境安装该包。
composer require apoca/laravel-sibs-payments
Laravel 5.5 使用包自动发现,因此无需手动添加 ServiceProvider。
Laravel 5.5+
如果未使用自动发现,请将 ServiceProvider 添加到 config/app.php 中的 providers 数组。
Apoca\Sibs\SibsServiceProvider::class,
如果想要使用外观,请将以下内容添加到 app.php 中的 facades。
'Sibs' => Apoca\Sibs\Facade\Sibs::class,
使用发布命令将包配置复制到本地配置
php artisan vendor:publish --provider="Apoca\Sibs\SibsServiceProvider"
使用
COPYandPAY 集成指南
- 准备结账
首先,使用包含所需数据的 POST 请求(包括订单类型、金额和货币)来准备结账。成功请求的响应是一个包含 id 的 JSON 字符串,该 id 在第二步创建支付表单时是必需的。
$request = [ 'brand' => 'CHECKOUT', 'amount' => 100, 'currency' => 'EUR', 'type' => 'DB', 'optionalParameters' => [], ]; $response = Sibs::checkout($request)->pay();
响应
{
"status": 200,
"response": {
"result":{
"code":"000.200.100",
"description":"successfully created checkout"
},
"buildNumber":"0dbf5028d176bc143baf9657d4d786f6372f4a83@2019-03-29 10:03:17 +0000",
"timestamp":"2019-03-29 11:27:15+0000",
"ndc":"E45186C4789C89A23E66D8DDA57A8586.uat01-vm-tx01",
"id":"E45186C4789C89A23E66D8DDA57A8586.uat01-vm-tx01"
}
}
- 创建支付表单
- 第 1 步响应中获得的结账 id
<script src="https://test.oppwa.com/v1/paymentWidgets.js?checkoutId={response->id}"></script>
- shopperResultUrl,即客户支付处理完成后应重定向到的网站页面以及可用的品牌。
<form action="{shopperResultUrl}" class="paymentWidgets" data-brands="VISA MASTER AMEX"></form>
- 获取支付状态(参见第 1 步)
$response = Sibs::status($response->response->id);
{
"status": 400,
"response": {
"result":{
"code":"200.300.404",
"description":"invalid or missing parameter",
"parameterErrors": [
{
"name": "entityId",
"value": "8a8294185332bbe601533754724914d9",
"message": "is not an allowed parameter"
}
]
},
"buildNumber":"",
"timestamp":"2019-03-29 11:27:15+0000",
"ndc":"89C42801E79302B0E75520C4A793121D.uat01-vm-tx03"
}
}
注意:您将收到错误代码 400,因为您需要一个由 sibs 批准的实体密钥。
服务器到服务器
以同步方式发送服务器到服务器的请求参数并接收支付响应。注意:此集成变体需要您收集卡数据,这增加了您的 PCI 合规范围。如果您想最小化 PCI 合规要求,我们建议您使用 COPYandPAY。
您可以使用我们的服务器到服务器 REST API 执行不同的初始支付类型。
- 预先授权(PA)
- 借记(DB)
$request = [ 'amount' => 102.34, 'currency' => 'EUR', 'brand' => 'VISA', 'type' => 'DB', 'number' => 4200000000000000, 'holder' => 'Jane Jones', 'expiry_month' => 05, 'expiry_year' => 2020, 'cvv' => 123, 'optionalParameters' => [], ]; $response = Sibs::checkout($request)->pay();
异步服务器到服务器 MBWay
在异步工作流程中,将发生重定向以允许账户持有人完成/验证支付。
将品牌参数设置为 "MBWAY",类型设置为 PA。accountId 应该是类似这样的电话号码:<country_dial_code#phone_number>。
$request = [ 'amount' => 10.44, 'currency' => 'EUR', 'brand' => 'MBWAY', 'type' => 'PA', 'accountId' => '351#911222111', 'optionalParameters' => [], ]; $response = Sibs::checkout($request)->pay();
如果在测试模式下,请将模式参数在 sibs 配置文件中设置为 test。
响应示例
{
"status": 200,
"response": {
"id":"8ac7a4a26982228701698db398cf05ee",
"paymentType":"DB",
"paymentBrand":"VISA",
"amount":"102.34",
"currency":"EUR",
"descriptor":"2302.8463.4825 OPP_Channel ",
"result":{
"code":"000.100.110",
"description":"Request successfully processed in 'Merchant in Integrator Test Mode'"
},
"card":{
"bin":"420000",
"last4Digits":"0000",
"holder":"Jane Jones",
"expiryMonth":"05",
"expiryYear":"2020"
},
"risk":{
"score":"100"
},
"buildNumber":"699e422a79444128a09e7d5d75eb187a99e8b3f3@2019-03-15 04:42:21 +0000",
"timestamp":"2019-03-17 22:09:12+0000",
"ndc":"8a8294185332bbe601533754724914d9_db6237eaf4b247ca99e4f917c5ca2943"
}
}
反馈
我们很乐意了解您如何使用 laravel-sibs-payments,以及我们可以添加哪些功能来改进此工具。请随时通过 vieira@miguelvieira.com.pt 联系我们
贡献
我们很乐意了解您如何使用 laravel-sibs-payments,以及我们可以添加哪些功能来改进此工具。请随时通过 vieira@miguelvieira.com.pt 联系我们
许可证
本项目采用 MIT 许可证授权 - 详细信息请参阅 LICENSE.md 文件
作者
- Miguel Vieira - 初始工作 - apoca
有关参与此项目的其他贡献者的列表