使用js的Stripe支付流程

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

我正在努力在网站上实施支付流程。要使用 Stripe 向客户收费,我是否需要同时使用 SetupIntent 和 PaymentIntent?我想在付款时保存客户的卡信息,以便将来可以使用它向客户收费。

我目前正在使用stripe进行用户支付。因此,我们为用户提供了一个注册页面,用户可以在其中输入密码并确认密码,然后单击提交。提交用户信息后,我正在执行以下流程

  1. 使用姓名和电子邮件为该用户创建条带客户。
  2. 然后调用 createsetupIntent stripe API,该 API 返回 clientsecret,使用该 clientsecret 向用户显示 paymentelement。
  3. 付款弹出窗口包含条纹付款元素和付款按钮。
  4. 当用户单击支付按钮时,我使用confirmParams 将用户的卡信息保存在条带中。
  5. 之后,将该方法设置为默认方法。
  6. 最后使用 paymentIntentAPI 向客户收取特定金额。
  7. 如果付款成功,那么每个月我的系统都会使用发票 API 向客户收费。因为,我没有使用基于订阅的模型。

该流程正确吗?或者有没有其他方法可以提高效率?以及如何处理这里的失败案例,例如点击“支付”按钮后,如果在保存卡信息或向客户收费时出现故障,那么如何处理这些案例?

stripe-payments payment-gateway stripes
1个回答
0
投票

您不需要同时使用 SetupIntent 和 PaymentIntent - SetupIntent 用于保存卡无需付款。

要在付款期间保存卡,您可以使用 PaymentIntents。保存卡的 PaymentIntent 设置为

setup_future_usage='off_session'
,而使用保存的卡的 PaymentIntent 设置为 `off_session=true'。

这是此流程的指南:
https://docs.stripe.com/ payments/save-during- payment

  1. 使用姓名和电子邮件为该用户创建条带客户。
  2. 然后调用 createPaymentIntent stripe API (
    setup_future_usage
    ),它返回 clientsecret,使用该 clientsecret 向用户显示 paymentelement。
    付款弹出窗口包含条纹付款元素和付款按钮。
  3. 当用户单击支付按钮时,我使用
    confirmPayment
    将用户的卡信息保存在条带中。
  4. (当我想向客户收费时)使用 paymentIntent API (
    off_session
    ) 向客户收取特定金额。

之后,将该方法设置为默认方法。 <- NOT TRUE
除了您自己(如果需要)之外,没有任何其他方式将 payment_method 设置为客户的默认值。在您的情况下,您实际上不需要这样做,因为您需要在定期 PaymentIntents 的

payment_method
参数中硬设置 payment_method_id。

如果付款成功,那么每个月我的系统都会使用发票 API 向客户收费。因为,我没有使用基于订阅的模型。 <- NOT TRUE
不会自动收费,您必须执行该操作。如果您想要自动收费,您可以使用 Stripe 订阅,但正如您所确认的,这不是您正在做的事情。

© www.soinside.com 2019 - 2024. All rights reserved.