@ilvsx 在 联动终末地的支付问题,你们怎么解决支付宝重复支付的问题? 中发帖
我对接支付宝的过程中发现支付宝创建的支付订单接口,实际上不是真的支付订单,而是给的创建订单的凭据,你拿着这个凭据才能真的创建支付订单。
具体到场景来说就是这样的:
请求支付宝接口,跳转支付页面,用户输入正确的支付宝账户和支付密码,才实际创建订单,那么只要用户一直保留着这个支付页面不输入,另外新开一个页面去支付完成之后,再回来这个页面支付,就一定会收到两笔支付。
这个问题只能缓解,比如
限制支付时间
收到付款之后,检测是否是重复支付,是重复支付则自动退款。
每秒轮询检查该支付订单是否真的创建了,如果创建了则检测是否已经实际支付了,是则取消支付订单。
反正核心问题是支付宝的创建订单接口不是真的创建订单,支付宝的“创建订单”接口其实只是给了我们一张入场券,真正的交易是在用户输完密码那一瞬间才建立的。这不是你服务端加锁什么的能解决的,只能想办法去做兜底,赌用户不会拿自己的钱开玩笑,赌用...