日期:2014-05-17  浏览次数:20475 次

支付宝商品剩余数量为1的问题(语言无关)
这个问题在群里和群友讨论了一下,没什么结果,特意上来问问!
问题是关于一个商品剩余数量为1,但是存在一种可能,就是两个用户都购买了这个数量为1的商品,下面听我说一下步骤和环境

环境:
商品A   数量为1
人物1
人物2

步骤:
1:人物1把商品A放入购物车,然后使用支付宝付款,到了付款输入密码的时候,人物1接到了老朋友的电话,然后跟朋友扯蛋去了.
2:人物2打开游览器,看到商品A,然后购买了商品A,放入购物车,然后支付宝付款,然后输入密码,付款了,成功了!
3:人物1打完了电话,回来输入密码(注意:人物1电脑游览器没动,一直保持在付款界面),支付成功了.

问题:
商品A剩余数量就为1?但是却有2个用户购买了?

难点:
到了支付宝付款界面,是到了支付宝官方网址,所以我的程序无法嵌入,也无法在付款的时候判断...

之前讨论的方案
方案1:当人物1放入购物车的时候,我就把商品数量减1
问题所在:那人物1如果不付款,这个商品tmd就一直被减着1,蛋疼吧!

方案2:在方案1的基础上加上一个超时判断,如果超过这个时间,那么商品数量就加1
问题所在:比如假设超时时间为30分钟,人物1到了输入密码付款的界面,然后和老朋友打电话去了,时间过了大概40分钟左右,人物2看了商品A,数量为1,然后购买,付款了!过了50分钟,人物1打电话结束了,然后输入密码,也付款了......蛋疼了吧...又成功了.....

方案3:在付款之后,支付宝会异步通知,利用这个通知来进行判断
问题所在:都说是付款之后才会异步通知的,人物2已经付款了.人物1在人物2之后付款,支付宝界面说:恭喜您,已经支付成功,然后触发回调,我告诉人物1说:虽然你的支付宝钱到我账户上了,但是我剩余数量不够,我还是退您钱吧.亲!...我++,就像你去买一个东西,已经付款了,成功了,钱也已经到商家手里了!然后商家告诉你说,缺货,我还是退你钱吧......

说说你们的解决方案吧!
支付宝 语言无关 问题 解决方法 剩余数量

------解决方案--------------------
问题所在:比如假设超时时间为30分钟,人物1到了输入密码付款的界面,然后和老朋友打电话去了,时间过了大概40分钟左右


不过,这个我记得支付宝超过你超时了,就支付不了的