10-4 关于支付的库存检测,是否做一个库存的锁定

来源:10-4 下单与支付的业务流程(库存量检测)

吃了饿饿了又吃

2017-06-14

老师你好,

关于支付确认的支付检测,下单前检测,低于下单的库存,无法下单或减少下单数量,我想了以下情景:


假设:产品 只有1件库存。有A, B两人,或者说我左右手同时操作两个手机(前后时间在0.1秒左右)

  1. 同时先下单。因为有库存,都可以下单。

  2. 同时点击支付。有库存,可以支付。微信支付是异步的,反馈有一个时间差。

  3. 微信支付成功。A快了0.1秒,库存先扣了1,变为0。B慢了0.1秒,检测0库存,无法扣除或继续扣库存为-1。


有了以下的疑问:

  1. 是否做一个支付时的库存锁定(先扣除库存,不用等待微信支付的反馈,如果在一定时间内未完成,则恢复库存,支付也需要重新启动)?

  2. 上面B支付了,但已经没货了。在程序上怎么处理,如果没货了,要退钱给用户?


写回答

2回答

7七月

2017-06-14

同学你很棒。第一个是预扣除库存,也是一种方法,可以用于大型的电商项目里,但维护成本很高,你需要有 一个任务队列来还原没有支付的商品库存。

2. B支付没有货了,程序上处理不了,本身发生的几率很小,如果没货了,由客服自行处理。

3. 即使是预扣除库存也没有绝对可以保证100%不出现付款缺货的情况,但概率可以进一步的减少。

1
1
吃了饿饿了又吃
非常感谢!谢谢鼓励和建议。我是学技术不久,就遇到你这么好的老师。很久以前计算机主要是学理论和思想,没上心在编程上。我还是先把这个啃了,其他的再琢磨。
2017-06-14
共1条回复

7七月

2017-06-14

在微信回调里,我们做了库存的锁定,不知道你看到那一章没有。

1
1
吃了饿饿了又吃
最近重看了1-9章,现在刚到10-10. 有锁定就好。
2017-06-14
共1条回复

微信小程序电商实战 从前端到后端的全流程精讲

全栈工程师/前后端都讲/架构思想/ RESTFul API、MySQL表设计

4805 学习 · 4382 问题

查看课程