看一下支付通知API的文档中,支付通知的注意事项

什么情况下,通知会多次发送给商户系统呢?

现在有一个场景,是商户系统,另一块是微信的支付系统,正常情况下我们的商户系统向微信系统发送支付请求,等待用户扫码支付,用户扫码成功之后,微信的支付系统会给我们的商户系统发送给通知

接下来会给通知进行处理,如果成功了会给一个应答,必须是200的应答

如果出于超时应答的情况下

超过5秒之后,微信就会重复的发送通知,微信会重复的接收通知

重复的接收通知会导致重复的记录日志

导致会出现一种情况,用户在购买产品之后,会导致它的购买积分不断增加,用户的积分会不断的在积分中进行增加,就在这个位置模拟应答超时

模拟接收微信端的重复通知

重新做一笔支付,点击扫描二维码

在这种场景下,我们后台已经接收到了支付通知的id

出现了支付日志的不断增加的情况

订单数据没有增加,但是支付日志不断增加

Ctrl + C两次重新启动内网穿透

这一次内网穿透已经发生了改变

把这一个改一下

我们要判断一个订单状态

在这个processOrder处理方法的订单状态当中

在更新订单状态和记录支付日志之前,处理重复的通知

根据订单号获取订单状态

如果是已支付的话,就return,如果是未支付的话,我们才接收到相应的支付命令

之后我们就创建相应的方法

Alt + enter,将方法创建出来

这种写法是针对空指针异常写的

这里的是为了方便而写 + 绿色的向上符号进行操作

这里

接口调用的幂等性,无论接口被调用多少次,产生的结果是一致的



被折叠的 条评论
为什么被折叠?



