加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 避免电子商务场景中的竞争条件

发布时间:2020-12-13 22:28:43 所属栏目:PHP教程 来源:网络整理
导读:我的客户有一个销售电子产品的电子商务网站,并且有些情况下产品的销售次数超过了他们库存的次数.这是因为如果两个用户在库存中只剩下一个产品的同时购买产品,则一个会话在另一个会话开始之前没有完成将产品注销为售完(所以它继续正常,认为有一个左)即使在过
我的客户有一个销售电子产品的电子商务网站,并且有些情况下产品的销售次数超过了他们库存的次数.这是因为如果两个用户在库存中只剩下一个产品的同时购买产品,则一个会话在另一个会话开始之前没有完成将产品注销为售完(所以它继续正常,认为有一个左)即使在过程开始时有一个检查.这显然会花钱(退款费,退款等)和消费者的不便.

所以我想知道是否还有解决这个问题?我想在流程开始时创建一个“标记”,即它会检查库存,如果售罄,它会标记产品,从而阻止其他会话购买.但这也会产生更多问题:如果客户端发生某些事情会导致他们取消中间过程(断电等),那么即使产品被标记为已售出,但自结账以来它实际上并未售出过程没有完成.如果这种情况持续发生,那么产品就会积压.其次,会话还可以检查库存,而另一个会话将其标记为已售出,因此即使第二个会话已经购买,第一个会话也将继续.这导致我们回到原来的问题.

我在数据库端查看表锁定,但我不确定这是不是最好的主意.任何建议都将受到高度赞赏!

谢谢,
dyip

解决方法

你可以有一个故障保险,以便在用户结账时下订单,但是在订单发货之前,用户的信用卡实际上并未收费.然后,对于库存已用完的情况,您可以通过电子邮件向这些客户发送电子邮件并告诉他们“抱歉,我们已售罄X,您不会被收费等”.

你可以给他们下一个订单的折扣作为补偿,但这个过程将避免任何退款费用,退款等,因为他们从未实际收取没有库存的订单.

当然,听起来这会改变网站处理订单的方式,并且在每个订单准备好之后,必须让某人将信息输入系统.此外,在下订单之前,您需要对卡进行一些验证才能知道它是有效的,以防止欺诈 – 尽管可能是网站已经这样做了?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读