支付宝扫码支付和微信扫码支付共存的情况下,如何避免同一个订单被多次支付

       前面分享了一篇 JAVA后端调用微信支付“统一下单”接口实现微信二维码扫码支付 的博客,虽然二维码在生成的时候可以设置有效期,但是这依旧不能保证整个业务流程和数据的安全。因为通常网站提供给用户的支付方式不止一种,除了微信支付,可能还有支付宝和银联支付等。

       我们不妨先来假设下面几个场景:

       场景一:张三在你的网购平台下了一个订单,起初是选择微信二维码扫码支付的,但是打开微信时发信微信零钱余额不足,于是张三就把这个二维码截图发给自己的基友李四,等了五分钟,李四可能因为手头有事要忙迟迟没有支付,这时张三实在没耐心了,就想起自己的支付包刚好还有点钱,于是就用支付宝支付成功了。恰巧此时李四那边也忙完自己的事情了,拿着自己的微信也成功扫码支付了。这是就造成一个订单,被成功支付两次了。

       场景二:张三在你的网购平台下了一个订单,选择微信二维码扫码支付,因自己余额不足,将生成的二维码发给李四,由李四代付,大约过了五分钟,李四那边有事忙着一直没有支付,此时张三突然不想买了,于是取消了订单,过了几分钟才想起来要通知李四取消订单,恰好此时李四那边已经成功扫码支付了。这就造成已取消订单被支付成功的情况。


        针对这种一个订单被多次支付和已取消订单被支付的情况,平台需要提供退款的功能,并且添加流水的操作应该由定时任务来执行,具体的流程准备另写一篇博客说明(如果我还记着这回事的话)。但是这就足够了吗?所谓种什么因得什么果,为什么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值