未经许可,不得转载。
情况说明
在订单支付的业务场景中,存在一种潜在的竞态问题:订单在即将取消的瞬间,用户刚好完成支付。这种情况的发生通常源于业务逻辑中设置的订单自动取消机制,例如:一笔订单未支付超时 10 分钟后自动取消。如果用户的支付操作恰好发生在第 10 分钟左右,就可能出现以下两种情况:
1、用户支付成功时,订单状态尚未被更新为“已取消”
支付回调处理成功后,订单状态从“支付中”更新为“支付成功”。但接下来如果定时任务更新订单为“已取消”,将导致用户支付款项被扣除,却未能获得对应的权益或商品。

2、用户支付成功时,订单状态已被更新为“已取消”
此时,支付回调处理发现订单已取消,用户支付款项虽已扣除,但系统不提供对应服务或商品。

无论是哪种情况,都需要进行合理的业务处理,以避免对用户体验或系统逻辑造成不良影响。
核心思路:基于状态的判断
为解决上述竞态问题,确保订单状态修改的唯一性和正确性是关键。一般情况下,订单或支付单的
订阅专栏 解锁全文
171万+

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



