首页 > 解决方案 > 将 SCA 实施到 Stripe 实施中

问题描述

我制作了一个 SaaS,允许客户订阅计划,并在结帐阶段使用优惠券。优惠券给客户X% off for X months,默认情况下,每个人在订阅时都会获得 7 天的试用期。

令我困惑的是文档。在一个部分中,它说您应该创建 SetupIntents 以进行付款,而在其他部分中它说要使用令牌。

我正在编写支付流程的代码,但我只是想检查一下我的逻辑和理解是否正确。任何人都可以验证以下内容吗?

  1. 客户输入卡号和优惠券
  2. 调用 Stripe,获取卡片令牌
  3. 向服务器发送令牌和优惠券
  4. 使用令牌创建 Stripe 客户
  5. 使用折扣创建订阅并传递客户 ID

现在发生的事情是进行了授权尝试。如果需要 SCA,则订阅状态不完整,并且最新的发票支付意图状态需要操作。

此时,我可以使用handleCardPayment()提示 3DS 将我的用户重定向到 SCA 流,一旦完成,订阅状态就会变为活动状态。

如果发票支付由于任何原因失败,则订阅状态不完整,并且支付意图需要具有需要支付操作的状态。此时,我应该再次向我的客户展示 React Elements 表单,并stripe.invoices.pay使用新的卡令牌调用端点

展望未来,所有订阅费用都不需要进一步的 SCA 批准,但是如果客户更改计划或银行要求,那么我可以通过 SCA 流程流程让我的用户返回

流程图在这里:绿色是 UI,橙色是服务器,蓝色是条纹

在此处输入图像描述

我在这里有什么遗漏或误解的吗?我一直在阅读有关创建 SetupIntents 和 PaymentIntents 的信息,但我不确定我是否需要这个?

标签: stripe-payments

解决方案


如果您使用 Stripe Billing 产品创建订阅,他们会处理创建 PaymentIntent(如果您要立即付款)或 SetupIntent(如果您要设置试用或计量计费)。你真正需要做的就是handleCardPayment(用于支付)或handleCardSetup(用于设置试用和计量计费)。文档中的这一部分非常好。

如果您不使用计费,他们的 Stripe Developers Youtube 频道上有一段视频,这可能有助于消除任何混淆。

希望这可以帮助 :)


推荐阅读