支付过程中 Order 和 Charge 的关系是怎么样的?

更新于:2018年08月13日 18:37:47

首次接入 Ping++ 会员账户系统或多级商户系统的商户,经常会遇到如标题这样类似的疑问,可参考以下解释:

  • 【Order 和 Charge 的关系】

    Order 包含 Charge,Order 可以理解为一个订单对象,包含了商品信息和支付信息,其中支付信息就是 Chagre 对象;

    接入会员账户系统或多级商户系统的商户可以只关注 Order 接口,在服务端请求创建及支付 Order 对象后,将 Order 对象传给客户端 SDK 并调用支付方法即可完成支付;

    对于非系统类即聚合支付商户,可以仅使用 Charge 接口接入支付。

  • 【一个 Order 多 Charge】

    一个 Order 对象可能会包含多个 Charge 对象。当一个 Order 在未支付的情况下,多次切换支付渠道时,就会在 Order 中产生多个对应的 Charge 对象。当某个渠道支付成功后,其 Charge 对象的 paid 字段就会变成 true;

    当然,若用户同时在多个支付渠道完成了支付(此为小概率事件,例如打开支付宝控件,在未关闭的情况下再次打开微信进行支付,支付完成后再切回支付宝进行支付),此时多个 Charge 都会是支付成功状态,你可以对其中任何一笔支付 Charge 做退款处理。

  • 【Webhooks 推送】

    一个 Order 订单支付成功后,Ping++ 会同一时间推送对应 Order 和 Charge 的 Webhooks 事件,即 order.succeeded 和 charge.succeeded;

    对于会员账户系统或多级商户系统的商户,只需要在 Dashboard 配置接收 order.succeeded 事件的回调  URL 即可。


    您需要登录后才可以回复