我有一个关于 Stripe Checkout API 支付策略的问题。考虑以下场景
供应商在市场上以每个 5 美元的价格发布了 10 个产品(苹果)客户想购买其中的 8 个,他填写详细信息并单击结帐按钮
(条纹结帐页面来了)但是客户在没有完成支付的情况下等待了 1 小时(只看 UI)意思是别人买了所有10个苹果第一个客户不知道这一点,因为他已经在最终付款页面。 他为 8 个苹果支付 40 美元 交易是错误的,因为没有苹果可以交付。 我正在尝试将 Stripe 支付网关集成到我的市场平台,但我找不到适合这种情况的解决方案。
Stripe 中是否有任何功能可以处理此问题?像 session 超时时间?
或者处理这个问题的标准方法是什么?
感谢你的帮助。
我不知道这是否仍然相关!
但我之前也遇到过同样的问题。我所做的是从应用程序端开始管理 session 。所以我有一个 strip session 表,我有一个超时和 session 状态。此外,我有一个购买表,如果用户尚未付款,该表可能处于待处理状态。所以我可以更新真实商店中的商品数量。
这是我实现的场景。它可能会帮助您或任何正在考虑此问题的人。也许有更完美的场景,但这对我有用:v:
用户按下 支付 应用程序向您的应用程序发出 POST 请求 创建 session 端点 , 包含所有需要的信息 在后端,检查该用户是否有具有相同信息的事件 session ,如果是,则将他重定向到该事件 session ID。如果不创建另一个 strip session ,将其信息记录在您的数据库中并将用户重定向到新的 session ID 然后添加购买记录 用户尝试获取的数量/数量(状态 = 待处理)以及您拥有的 session ID。然后更新商品页面 减去这个数量... 使用该 session ID 创建一个 webhook .所以你可以知道它是否完成(你必须有一个接受 session ID的端点)如果 session 太旧(例如一小时),您会定期检查您的事件 session (cronjob),您只需将其删除并删除待购买的商品,然后将商店中的商品数量更新回实际数量。 当 stripe 使用所需的事件调用您的 webhook 时,您现在可以将 session 状态和购买状态设置为完成(不要忘记检查调用签名以提高安全性)我希望这能帮到您。