直连支付

交互流程

循环扣款,首次支付交互图
循环扣款,非首次支付交互图

循环扣款对接流程(首次支付):

1. 创建customer server

商户服务端调用 创建客户接口:/customers,获取customerId

2. 创建paymentMethod server

商户服务端调用 创建支付方式接口:/payment_methods,获取customerPaymentMethodId

3. 扣款请求 server

1. 商户服务端调用/confirmCharge发起扣款业务.
  1. 1.
    建议商户通过服务端调用 confirmCharge 接口,避免 signkey 等信息暴露在浏览器客户端,或者币种、金额在客户端被修改。
  2. 2.
    首次支付应该传入上述创建的customerId和customerPaymentMethodId,并指定字段tokenType="InitRecurring",如下图所示:

4. 验证签名

根据 数据签名过程 验证返回信息

5. 解析返回信息

  1. 1.
    首次发起循环扣款,需要进行3DS验证,将解析后的redirectUrl返回给前端,前端跳转用户到3DS页面进行验证
    1. 1.
      3DS验证完成后,Asiabill将跳转到商户的returnUrl地址(请参阅 支付结果跳转 ),商户端验证签名并解析数据后,将解析结果(成功、失败)返回给前端,前端跳转用户到交易结果展示页面

6. webhook 通知处理

在订单完成后,AsiaBill系统会触发webhook,调用商户交易时给定的CallbackUrl,来通知商户交易结果状态,详情请参阅 webhook

循环扣款对接流程(非首次支付):

1. 扣款请求 server

商户服务端调用/confirmCharge发起扣款业务
  1. 1.
    如果首次支付失败了,则需要重新创建并发起首次扣款成功后,才能发起后续循环扣款。
  2. 2.
    如果首次支付成功,可以使用首次支付时创建的customerId,paymentMethodId来发起循环扣款,并指定字段tokenType="Recurring",如下图所示:
  3. 3.
    为降低拒付风险,建议尽可能清楚地告知客户收取费用的频率和金额。我们建议在非首次扣款前几天通知客户,例如通过向他们发送电子邮件。

2. 验证签

根据 数据签名过程 验证返回信息

3. 解析返回信息

不需要进行3DS验证,直接解析交易结果

4. webhook 通知处理

在订单完成后,AsiaBill系统会触发webhook,调用商户交易时给定的callbackUrl,来通知商户交易结果状态,详情请参阅 webhook