如何规避 webhooks 延迟带来的风险?

更新于:2017年06月06日 13:43:56

每次 webhooks 延迟情况发生后,Ping++ 都会极力建议商户添加主动查询机制来规避这种风险,那么这里说的主动查询机制到底怎么加呢?


订单支付需要在客户端收到渠道的同步回调之后,向服务端请求查询该订单的支付状态。

建议的处理逻辑为:

1、收到客户端同步回调结果为成功,必须主动向商户的服务端请求查询该订单的支付状态:

    a. 如果已经支付成功(即商户服务端已经正常收到 webhooks):即更新该订单支付状态为“支付成功”。(一般情况均为此逻辑)

    b. 如果尚未支付成功(即商户服务端没有收到或未正常接收 webhooks):商户服务端需要主动调用 Ping++ 订单查询接口获取订单支付状态:

        i. 如果主动查询为成功,即更新状态为“支付成功。(此时 webhooks 有可能会重发,需考虑到后续收到 webhooks 时订单支付状态修改不会报错)

        ii.  如果主动查询结果为未支付,则标记订单为“未支付” ,并同步返回给客户端,刷新客户端的订单支付状态。(这种情况发生的几率极小。)

2、收到客户端同步回调结果为失败时,可以参考如上逻辑设置主动查询机制,具体需求按照商户的实际场景实现。

3、收到客户端同步回调结果为取消时,不需要发起主动查询机制。


    您需要登录后才可以回复