在条形支付网关中处理客户延迟的正确方法

问题描述 投票:2回答:1

我想问一下使用Stripe Checkout API的付款策略。考虑以下情况

  1. 供应商在市场上以10美元的价格发布了10种产品(苹果)
  2. 一个客户想要购买其中的8个,他填写了详细信息,然后点击结帐按钮(带有条纹结帐页面)
  3. 但是客户等待闲置1个小时而未完成付款(仅查看用户界面)
  4. 意味着别人买了全部10个苹果
  5. 第一个客户不知道这件事,因为他已经在最终付款页面中。
  6. 他花40美元买了8个苹果
  7. 交易是错误的,因为没有剩下要交付的苹果。

我正在尝试将Stripe支付网关集成到我的市场平台,但找不到针对这种情况的解决方案。

Stripe中有任何功能可以处理吗?喜欢会话超时时间?或处理此问题的标准方法是什么?

感谢您的帮助。

stripe-payments payment-gateway checkout payment-processing
1个回答
0
投票
但是我以前有同样的问题。我要做的是从应用程序端开始管理会话。所以我有一个条纹会话表,并且有一个超时和会话状态。另外,我有一个购买表,状态为如果用户尚未付款则可能处于待处理状态。这样我就可以更新真实商店中的商品计数。

这是我实施的方案。它可以帮助您或任何考虑此问题的人。也许有一个更完美的方案,但这对我有用:v:

    用户按下
  1. 支付] >>

    该应用程序向您的应用程序发出POST请求

  2. 创建会话端点
  3. ,并提供所有必需的信息

    在后端中,检查该用户是否具有具有相同信息的活动会话,如果是,则将其重定向到该活动会话ID。如果没有,则仅创建另一个条带会话,将其信息记录在数据库中,然后将用户重定向到新的会话ID

  4. 然后

  5. 添加购买记录
  6. ,其中包含用户尝试获取的金额/数量(状态=待处理)和您拥有的会话ID。然后

    更新商品页面并减去此数量...

  7. 使用该会话ID创建一个Webhook
  8. 。这样就可以知道它是否完成(您必须具有一个接受会话ID的端点)

    您会定期检查活动的会话(cronjob),如果会话太旧(例如一个小时),则将其删除并删除待处理的购买,然后将商店中的商品计数更新为实际计数。] >

  9. 并且当Stripe调用带有所需事件的Webhook时,您现在可以将会话状态和购买状态设置为完成(别忘了检查呼叫签名以提高安全性)

  10. 我希望这会对您有所帮助。
© www.soinside.com 2019 - 2024. All rights reserved.