前言
今天同事突然问我,要是一个商品我直接下单所有库存,那么是不是要等到订单取消后另一个人才可以下单,我思考了下,确实是需要限制一下,下面是我参考的方案
方案:下单锁库存/支付锁库存
通过淘宝测试,n件以内下单是下单锁库存,n件以上是支付锁库存
这个n在后台应该是可以设置的,淘宝做这么久,肯定考虑到恶意下单的问题了
不过支付锁库存会有问题,就是两个用户同时下单,而回调是分先后的,此时可能会造成一个用户支付成功,但是库存没有,这里可能就需要自动退款或其他的操作了
伪代码
总体来说就多了个判断和一些操作吧
下单
获取锁库存方式(lock_sku_mode[createOrderLock下单锁/payLock支付锁])
if createLock {
锁库存(判断库存是否足够,不够则提示用户)
}
生成订单、订单商品[关联sku]
支付回调
获取订单
判断订单所库存方式
if payLock {
锁库存(判断库存是否足够,不够需要做退款处理,或者其他办法,因为钱已经到商家这里了)
}
修改订单为已支付状态
小结
目前没做这个功能,如果后续需要的话,可以考虑做成支付锁库存/少量下单锁大量支付锁(用不同策略来搞)
淘宝恶意下单怎么处理?有什么技巧吗?
淘宝防恶意下单