apoca/laravel-sibs-payments

Laravel 库,用于与 SIBS - 开放支付平台进行通信。


README

Build Status Codacy Badge Scrutinizer Code Quality Latest Stable Version Total Downloads License

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 集成指南

  1. 准备结账

首先,使用包含所需数据的 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. 创建支付表单
  • 第 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. 获取支付状态(参见第 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"
  }
}

查看官方 SIBS API 参考

反馈

我们很乐意了解您如何使用 laravel-sibs-payments,以及我们可以添加哪些功能来改进此工具。请随时通过 vieira@miguelvieira.com.pt 联系我们

贡献

我们很乐意了解您如何使用 laravel-sibs-payments,以及我们可以添加哪些功能来改进此工具。请随时通过 vieira@miguelvieira.com.pt 联系我们

许可证

本项目采用 MIT 许可证授权 - 详细信息请参阅 LICENSE.md 文件

作者

  • Miguel Vieira - 初始工作 - apoca

有关参与此项目的其他贡献者的列表