这样一个场景
当同时的接入了支付宝和微信等。有2种或者更多的三方支付方式时。因为第三方支付,支付成功时都是异步通知的的,这时候可能会有一个问题,一个用户使用微信支付但是系统还没收到异步通知,他🈶️使用了支付宝支付,就会支付两次,这时候就出问题了。
这种情况我们能怎么办呢? 当然正常支付通知都会在几秒内回来,但是这种情况也还是有可能发生的。
所以我们可以这样优化支付逻辑:首先。因为支付通知回来以后,都会异步去更新订单状态。所以每次发起支付的时候,我们都应该先判断订单状态,保证当前待支付的订单是一个正常且未支付的订单,再去执行接下来的逻辑。
然后,同时微信和支付宝都支付完,而第一个回调已经修改完订单状态后,此时第二个回调接收到,我们可以做一个退款操作,将第二种支付退款。
一般很少出现,出现了就钱都收下,比如买会员有效期,给用户加双份。
也许用户就是想这么买呢,为啥要限制人家花钱?
确实买错了,再联系客服退款呗。
你们是已经碰到这种场景并按此方案做了?
还是只是在想象中的场景?