跳到主要内容

收单接入流程

收单是指商户在不同时间段内可以重复使用子合约地址,用于接收订单支付款项,无需与特定用户关联。收单子合约地址可以多次使用,接收来自不同订单的支付款项,为商户提供了灵活的支付解决方案。

1. 支付流程

收单过程的接口调用时序图如下:

调用流程如下:

  1. 商家系统调用 /payment/createPaymentOrder创建收单订单接口)向 Pay Protocol 发起支付请求,Pay Protocol 对商家请求参数进行校验,而后返回给商户唤起支付页面的请求地址,商户通过域名与请求地址的拼接后重定向到支付页面,用户进行支付。
  2. 用户确认支付后,可点击页面的按钮,返回支付成功后跳转地址 redirectionUrl(商户入参传入)。
  3. 交易成功后,Pay Protocol 通过 POST 请求 notifyUrl(收单时商户入参传入),返回回调通知参数。
  4. 若由于网络等原因,导致商家系统没有收到回调通知,商家可自行调用 /payment/detail查询收单订单详情接口)查询交易以及支付信息,(商家也可以直接调用该查询接口,不需要依赖回调通知),或自行调用 /payment/notify主动发起收单回调通知)。
注意
  • 由于同步返回的不可靠性,收单结果必须以回调通知或查询接口返回为准,不能依赖同步跳转。
  • 商家系统接收到回调通知以后,必须通过验签(验证通知请求头中的 X-PAY-SIGN 参数)来确保支付通知是由 Pay Protocol 发送的。详细验签规则可查看回调通知验签
  • 接收到回调通知并验签通过后,请务必核对通知中的参数值是否与请求中的一致,并根据参数 paymentStatus 进行后续业务处理。

2. 退款流程

在交易完成后的一段时间内,若出现买家或卖家需要退款的情况,由于 Web3 技术的限制,无法直接将资金原路返回。因此,商户需要通过后台操作进行一次转账交易,以确保资金能够安全地返回到最初付款地址。退款转账中产生的网络费消耗,商户自行与用户协商。

退款过程的接口调用时序图如下:

调用流程如下:

  1. 商家系统调用 /refund/createRefundOrder发起退款申请接口)向 Pay Protocol 发起退款请求,Pay Protocol 对商家请求参数以及收单订单进行校验,生成收单对应的退款订单。
  2. 退款订单生成后,商户需在管理后台进行审批,通过转账的方式给用户退款。
  3. 退款交易完成后,Pay Protocol 通过 POST 请求 notifyUrl(退款时商户入参传入),返回回调通知参数。
  4. 若由于网络等原因,导致商家系统没有收到回调通知,商家可自行调用 /refund/detail查询退款订单详情接口)查询交易以及退款信息,(商家也可以直接调用该查询接口,不需要依赖回调通知),或自行调用 /refund/notify主动发起退款回调通知)。
注意
  • 由于同步返回的不可靠性,退款结果必须以回调通知或查询接口返回为准。
  • 商家系统接收到回调通知以后,必须通过验签(验证通知请求头中的 X-PAY-SIGN 参数)来确保退款通知是由 Pay Protocol 发送的。详细验签规则可查看回调通知验签
  • 接收到回调通知并验签通过后,请务必核对通知中的参数值是否与请求中的一致,并根据参数 refundStatus 进行后续业务处理。
退款说明

退款方式:由于 Web3 的不可逆机制,商户以转账的方式将资金返还给用户。

退款费用:由于退款方式,导致商户需承担交易的网络费消耗,网络费消耗无固定标准,可自行与用户沟通收取手续费。