将SCA实施到Stripe实施中

时间:2019-08-08 14:22:25

标签: stripe-payments

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

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

我正在对付款流程进行编码,但我只是想检查一下我的逻辑和理解是否正确。谁能验证以下内容?

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

现在发生的是尝试进行授权。如果需要SCA,则订阅状态为不完整,并且需要采取最新的发票付款意向状态。

这时,我可以使用handleCardPayment()将用户重定向到SCA Flow,以提示3DS,并在完成订阅状态后将其激活。

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

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

流程图如下:绿色是UI,橙色是服务器,蓝色是条纹

enter image description here

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

2 个答案:

答案 0 :(得分:2)

如果您要使用Stripe Billing产品创建订阅,则它们将处理创建PaymentIntent(如果您要立即付款)或SetupIntent(如果您要设置试用或计量计费)。您真正需要做的所有不同就是handleCardPayment(用于付款)或handleCardSetup(用于设置试用版和计量计费)。文档中的This部分非常好。

如果您不使用计费,则他们的Stripe Developers Youtube频道上会有一个video,这可能有助于消除任何混乱。

希望这会有所帮助:)

答案 1 :(得分:1)

Stripe Charges API which is not SCA compilant中实施欢迎患者,卡片和令牌。如果要在欧盟内部使用Stripe进行付款,则应使用付款方式。

还可以使用卡令牌创建付款意图。

但是,如果要减少必要身份验证的数量,则应使用设置意图(带有usage = "off-session")来创建付款方式,而不是卡令牌。

我有很多老客户仍在使用Charges API注册。我使用以下策略:

  • 新客户总是通过设置意向和付款方式进行注册。
  • 老客户使用Charges API,直到其令牌失效为止。然后,他们还必须使用设置意图和付款方式。

当然,客户不会注意到很多。

总而言之,我将始终为新客户和卡更新使用付款方式和设置意图。只有按照设置的意图,您才能确保客户必须尽可能少地进行身份验证。

编辑:关键点是订阅期间的会话外付款。条带过程在此处进行描述:https://stripe.com/docs/payments/cards/saving-cards#saving-card-without-payment