- 集成指南
- 支持的功能(付款方式)
- Pay by Bank App
Pay by Bank App
Pay by Bank App 是供位于英国的付款人使用的付款方式,付款人可以使用智能手机上的银行应用来为商品和服务付款,而无需进行任何应用程序。付款人可以完整查看交易过程中的银行余额,并且可以放心地进行交易,交易在其手机银行应用的安全可靠的环境中授权和完成。通过使用“快速付款服务”,Pay by Bank App 可以提供近乎实时的付款和结算以及以下优点:
- 摩擦和放弃减少,可能有助于增加收入
- 减少客户纠纷,可能降低成本
- 可能减少欺诈
- 为 PSD2、SCS 和其他法规要求作好准备
Pay by Bank App 当前仅支持使用 GBP 货币进行的交易和结算。
先决条件
在您开始将 Pay by Bank App 集成到您的环境之前,请确保您已经:
- 向本地付款方式整合方注册了您的商家帐户。
- 将使用 GBP 货币的银行账户与已向本地付款方式整合方注册的商家账户相关联。
- 使用本地付款方式整合方提供的账户详细信息配置了网关商家配置文件。
Pay by Bank App 集成
除浏览器付款请求中需要的标准字段外,您需要在处理 Pay By Bank App 付款的 Initiate Browser Payment 请求中提供以下字段。
sourceOfFunds.type= pbbaapioperation= PAY(Pay by Bank App 不支持 Authorize 操作)sourceOfFunds.provided.pbba.returnUrl= 付款人从其移动应用重定向到的商家应用的 URL。
要集成到网关以使用 Pay by Bank App,请发起 Pay 请求并提供以下字段:
| 请求字段 | 必需 | 类型 | 描述 |
|---|---|---|---|
sourceOfFunds.type |
否 | 字符串 | 将值设置为 Pay by Bank App。 |
sourceOfFunds.provided.pbba |
否 | 字符串 | Pay by Bank App 付款方式的其他详细信息。 |
sourceOfFunds.provided.pbba.returnUrl |
否 | 字符串 | 付款人从其手机银行应用重定向到的您的应用的 URL。 |
PAY 示例
{
"apiOperation": "PAY",
"order": {
"amount": "45.46",
"currency": "GBP" },
"sourceOfFunds": {
"provided": {
"pbba": {
"returnUrl": "<URL_of_merchant_app>"
}
},
"type": "PBBA"
},
"transaction": {
"source": "INTERNET"
}
}
响应参数
| 响应参数 | 描述 |
|---|---|
sourceOfFunds.provided.pbba.paymentRequestId |
18 个字符的唯一付款请求识别码,也称为 Pay by Bank App 安全令牌。它在购物过程中在付款人的移动设备上调用其银行应用时使用。 |
sourceOfFunds.provided.pbba.paymentRequestInputCode |
一次性的 6 个字符的代码,用于标识付款请求,也称为 Pay by Bank App“购物篮参考号”。付款人可以使用此代码在其手机银行应用中确认付款。 |
{
"gatewayEntryPoint": "WEB_SERVICES_API",
"merchant": "PBBA_MER_2",
"order": {
"amount": 45.46,
"chargeback": {
"amount": 0,
"currency": "GBP"
},
"creationTime": "2019-09-17T11:19:34.813Z",
"currency": "GBP",
"fundingStatus": "IN_PROGRESS",
"id": "13347",
"status": "INITIATED",
"totalAuthorizedAmount": 0,
"totalCapturedAmount": 0,
"totalRefundedAmount": 0
},
"response": {
"acquirerCode": "PENDING",
"gatewayCode": "SUBMITTED"
},
"result": "SUCCESS",
"sourceOfFunds": {
"provided": {
"pbba": {
"paymentRequestId": "120191291357676444",
"paymentRequestInputCode": "PLJGLW"
}
},
"type": "PBBA"
},
"timeOfRecord": "2019-09-17T11:19:34.813Z",
"transaction": {
"acquirer": {
"id": "PBBA_PPRO",
"merchantId": "MPGTESTCONTRACT",
"timeZone": "+0000",
"transactionId": "509260333"
},
"amount": 45.46,
"currency": "GBP",
"funding": {
"status": "IN_PROGRESS"
},
"id": "1",
"source": "INTERNET",
"type": "PAYMENT"
},
"version": "54"
}
交易响应代码
下表显示了在发起 Pay by Bank App 付款后您可能遇到的可能出现的情景的交易响应代码。
| Initiate Browser Payment 响应 | 具体含义... |
|---|---|
response.gatewayCode=SUBMITTEDresult=SUCCESS |
使用响应中提供的 URL 重定向付款人。 |
| Retrieve Transaction 响应 | 具体含义... |
response.gatewayCode=APPROVEDresult=SUCCESS |
付款成功。 |
response.gatewayCode=PENDINGresult=PENDING |
网关等待来自收单行的付款结果通知。稍后重试 RETRIEVE_TRANSACTION 或接收来自网关的通知。 |
response.gatewayCode=DECLINED or ACQUIRER_SYSTEM_ERRORresult=FAILURE |
付款被拒绝。为付款人提供尝试其他付款方式的选项。 如果出现 ACQUIRER_SYSTEM_ERROR,您可能需要询问收单行付款失败的原因,也可以重试 RETRIEVE_TRANSACTION。 |
response.gatewayCode=TIMED_OUTresult=FAILURE |
请将此情况视为被拒付款。网关将进行任何尝试以确保交易不成功或撤消交易。 |
退款
Pay by Bank App 支持全部或部分退还付款。您必须在 Mastercard Gateway 以及您在本地付款方式整合方处的商家账户中进行退款配置。
测试 Pay by Bank App 集成
要测试 Pay by Bank App 集成,您必须访问 Bank3App,这是一个用于测试的演示应用。
请按照以下步骤访问并安装 Bank3App。
- 向 integrations@ppro.com 发送电子邮件来请求访问 Bank3App,这是 Pay by Bank App 的演示应用程序。
确保您用于注册的电子邮件地址必须是您公司的电子邮件地址。出于安全原因,不允许使用您的个人电子邮件地址。Zapp 客户支持团队的 VL 客户支持会通过电子邮件共享应用程序安装详细信息。如果您的组织阻止了此电子邮件 ID,请检查您的垃圾邮件文件夹。
- 按照电子邮件中提供的说明安装 Bank3App。
- 使用您的电子邮件 ID(最好是公司 ID)注册并登录您的应用程序。
- 打开 Pay by Bank 应用程序,输入您的登录 PIN。
从同一台移动设备测试 Pay by Bank App 集成
您可以在 Bank3App 与您的应用在同一台移动设备上时测试 Pay by Bank App 集成。
请按照以下步骤从同一台移动设备测试 Pay by Bank App 集成。
- 在移动浏览器或在移动应用程序中,点击 zapp://paymentRequestId URL。
- 按照提示使用您的 PIN 或 TouchID 登录到 Bank3App 应用。
- 选择虚拟账户完成付款。
您将在浏览器中重定向到 merchantredirecturl。
从不同的移动设备测试 Pay by Bank App 集成
即使 Bank3App 与您的应用位于不同的移动设备,您也可以测试 Pay by Bank App 集成。
请按照以下步骤从不同的移动设备测试 Pay by Bank App 集成。
- 在 Bank3App 中,点击屏幕右下角的 Pay by Bank App 徽标,然后输入在 paymentRequestInputCode 中返回的六个字符代码。
- 选择一个虚拟银行账户,然后点击确认付款。
本地付款方式整合方托管页面将重定向到 merchantredirecturl 中设置的 URL。