stripe-payments - 在 strip 支付网关中处理客户延迟的正确方法

标签 stripe-payments payment-gateway checkout payment-processing

我有一个关于 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 状态和购买状态设置为完成(不要忘记检查调用签名以提高安全性)

  • 我希望这能帮到您。

    关于stripe-payments - 在 strip 支付网关中处理客户延迟的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58629190/

    相关文章:

    javascript - 使用 Stripe API,如何检查用户是否为特定产品付费?

    php - 试图获取非对象的属性

    javascript - 未连接到 Stripe API

    e-commerce - 购买/出售网站的 Paypal

    php - 添加隐藏字段以结帐并通过订单处理

    ajax - Magento:在一页结帐中显示审核步骤

    symfony - Stripe 上无法识别的选项

    Android 链接到外部商店

    php - Sagepay 5006 错误代码修复

    调用 SetMobileCheckout 时 81251 上的 Paypal 内部服务错误