如何更细致地设计更新订单状态的逻辑?

更新于:2017年11月29日 15:03:52

如图,可以在客户端收到渠道的同步回调之后,向服务端发送同步回调的结果,然后结合客户端发送的同步回调结果和异步回调结果做判断。

建议的处理逻辑为:

1、收到客户端同步回调结果为成功,可接受的时间内收到 webhooks:即同为支付成功,修改支付状态为“支付成功”

2、收到客户端同步回调结果为成功,可接受的时间内未收到 webhooks:发起主动查询

(1)如果主动查询为成功,即更新状态为“支付成功”

(2)如果主动查询结果为未支付,则标记订单为“未支付”---a

3、收到客户端同步回调结果为失败或者取消,可接受的时间内收到 webhooks:则更新状态为“支付成功”---b

4、收到客户端同步回调结果为失败或者取消,可接受的时间内未收到 webhooks:发起主动查询

(1)如果主动查询为成功,即更新状态为“支付成功”---c

(2)如果主动查询结果为未支付,则标记订单为“未支付”

其中,a、b、c的情况很少见,如果遇到,可登录Ping++ 管理平台或渠道后台,查看订单详情,确认实际状态。


订单状态更新逻辑.jpeg

同时你还需确保:

1、你的服务端接收 webhooks  时,实现 webhooks 验签机制,保证 webhooks 服务器与你们服务器通信安全

2、你的客户端与服务端的通信安全


好了,以上的逻辑只要都实现了,应该就可以完全规避 webhooks 延迟的风险了。

    您需要登录后才可以回复