APP/H5/小程序之用户N+1次支付问题解决方案

本文讨论了在消息队列积压导致的异步回调消息延迟情况下,如何处理用户多次点击支付的问题。提出了异步方案,通过订单表中的支付标识字段管理支付状态,以及同步方案,通过后端实时查询支付状态来避免重复支付。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用场景:消息队列积压,异步回调消息延迟。
同一订单点击支付按钮支付单号更新的场景:用户在第一次发起支付之后,回调还未应答之前,用户再次发起支付,造成用户N+1次支付问题。

异步方案:前端支付完成,调用一个后端接口。
订单表中添加一个支付标识字段:0-待付款 1-支付中 2-已完成;默认0-待付款。
根据支付单号,更新支付标识字段:1-支付中。
用户N+1次点击支付,判断订单状态是否支付中;0-待支付:则拉起支付,1-支付中:则提示用户支付中,2-已完成:则提示已付款。
回调消息应答时,需更新支付标识字段:2-已完成。

同步方案:前端支付完成,调用一个后端接口。
根据支付单号,去三方查询支付状态,若支付成功,则更新订单支付状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值