【发布时间】:2019-12-16 07:06:25
【问题描述】:
我正在制作一个 SaaS,允许客户订阅计划,并在结帐阶段使用优惠券。优惠券给客户X% off for X months,默认情况下,每个人在订阅时都会获得7天的试用期。
让我困惑的是文档。在一个部分中,它说您应该创建 SetupIntents 以进行付款,而在其他部分中它说要使用令牌。
我正在编写支付流程的代码,但我只是想检查一下我的逻辑和理解是否正确。任何人都可以验证以下内容吗?
- 客户输入卡号和优惠券
- 调用 Stripe,获取卡片令牌
- 向服务器发送令牌和优惠券
- 使用令牌创建 Stripe 客户
- 使用折扣创建订阅并传递客户 ID
现在发生的事情是进行了授权尝试。如果需要 SCA,则订阅状态不完整,需要对最新的发票付款意图状态进行操作。
此时,我可以使用handleCardPayment() 将我的用户重定向到 SCA 流以提示 3DS,一旦完成,订阅状态就会变为活动状态。
如果发票付款因任何原因失败,则订阅状态不完整,并且付款意图要求具有付款操作要求状态。此时,我应该再次向我的客户展示 React Elements 表单,并使用新卡令牌调用 stripe.invoices.pay 端点
今后,所有订阅费用都不需要进一步的 SCA 批准,但是如果客户更改计划或银行要求,那么我可以通过 SCA 流程流程让我的用户返回
流程图在这里:绿色是 UI,橙色是服务器,蓝色是条纹
这里有什么我遗漏或误解的地方吗?我一直在阅读有关创建 SetupIntents 和 PaymentIntents 的信息,但我不确定我是否需要这个?
【问题讨论】:
-
这张图对我来说很棒!这就是 SCA 就绪状态。我要说的唯一一点是,在“下个月付款”->“生成的发票”->“需要 SCA”流程中,您不必自己拥有
handleCardPayment的页面,可以配置 Stripe自动向客户发送电子邮件stripe.com/docs/billing/migration/… 但是初始付款的图表是正确的 -
啊,是的,我应该加上那个。对我来说,我想在应用程序中通知用户以通知他们需要额外的信息/新的付款,但是是的,我确实在文档中看到了这一点。谢谢!
标签: stripe-payments