我正在经历所谓的经典系统设计问题:在我的电子商务流程中,我只有一件商品和多个想要购买该商品的用户。这意味着会创建多个
PaymentIntents
,但只有第一个最快付款的用户才能获得该商品。然而,所有其他用户最终仍然会付款,并且此时没有剩余物品可供购买。
问题在于,只有在发生
PaymentIntentSucceeded
事件时,物品的数量才会减少。但是,如果在创建 PaymentIntent
时数量会减少,则需要某种逻辑来处理挂起 PaymentIntents
(用户发起付款但从未付款的陈旧付款)。
这个问题的解决方案是什么?
通常,您会跟踪您的库存,当付款会话开始时,您会搁置该库存,然后设置“购物车超时”,在指定时间段后释放该库存并使会话无效(此时您可以取消 PaymentIntent) ).