订单取消、扣库存以及并发扣库存

1.取消订单的操作是怎么实现的?

取消订单的操作参考:

订单超时 取消订单 的几种实现方案总结与对比_暴力小熊的博客-CSDN博客_订单超时取消

2.长时间不支付,订单会取消吗?

会取消的,设置超时时间30分钟后未支付自动取消订单。

具体代码操作:我们调用支付宝的方法,然后我们在代码中获取下单时间,传入方法中,然后到了规定时间未支付,会自动取消订单,具体实现由支付宝实现。

取消订单的代码实现:

电商项目-订单模块_zhyue28的博客-CSDN博客

(35条消息) 支付订单超时处理_liuluteng2333的博客-CSDN博客_支付超时怎么处理

3.扣库存流程中,为啥选择用户支付成功了才扣库存 ,有生成订单这一步吗?

有先生成订单这一步,也就是用了异步扣库存的流程,Redis缓存库存,mysql存储库存。成功支付后再扣库存,防止恶意买家大量下单占用库存却不支付的情况,同时下单即扣库存并发性也差。

扣库存流程参考:

扣库存流程 - osc_06552749的个人空间 - OSCHINA - 中文开源技术交流社区

订单生成、库存扣减与支付逻辑 - sw008 - 博客园 (cnblogs.com)

4.生成订单再去支付对吧,那假如有一批人都去生成订单但都没支付,怎么保证同时支付的时候库存不会超卖,因为库存是有限的?

用异步扣库存的方式,好处就是先扣Redis缓存中的,支付成功生成订单后才扣mysql数据库的,在数据库前还加了一个消息队列,防止高并发访问数据库造成瘫痪。

Redis缓存中的商品数量和数据库同步,扣库存先扣Redis中的,这一步是预扣除,支付成功才扣数据库的,当Redis中的商品数量为0的时候,外面的用户访问就会返回没有库存的信息,保证了不会超卖的现象。

扣库存流程以及防止超卖:

电商系统如何防止超卖?(超级经典)

扣库存流程 - osc_06552749的个人空间 - OSCHINA - 中文开源技术交流社区

5. 你们怎么保证库存的数据没有错,比如用户生成订单并支付之后,如果退款取消了,库存是不是也能加回来,有吗?

参考扣库存流程:
扣库存流程 - osc_06552749的个人空间 - OSCHINA - 中文开源技术交流社区

电商项目-订单模块_zhyue28的博客-CSDN博客

6.你们的数据存储是用mysql吗?那你们操作库存那个SQL是咋写的?

电商项目-订单模块_zhyue28的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值