Stripe payments 将SCA实现到条带实现中

Stripe payments 将SCA实现到条带实现中,stripe-payments,Stripe Payments,我制作了一个SaaS,允许客户订阅计划,并在结账阶段使用优惠券。优惠券为客户提供X个月的X%折扣,默认情况下,每个人在订阅时都可以享受7天试用期 让我困惑的是文档。在一个部分中,它说您应该创建setupintent来接受付款,在其他部分,它说使用代币 我正处在付款流程的中间,但我只是想看看我的逻辑和理解是否正确。有人能验证下面的内容吗 客户输入卡号和优惠券 呼叫Stripe,获取卡的令牌 向服务器发送令牌和优惠券 使用令牌创建条带客户 创建具有折扣和传递客户ID的订阅 现在发生的是一次授权尝试。

我制作了一个SaaS,允许客户订阅计划,并在结账阶段使用优惠券。优惠券为客户提供X个月的
X%折扣,默认情况下,每个人在订阅时都可以享受7天试用期

让我困惑的是文档。在一个部分中,它说您应该创建setupintent来接受付款,在其他部分,它说使用代币

我正处在付款流程的中间,但我只是想看看我的逻辑和理解是否正确。有人能验证下面的内容吗

  • 客户输入卡号和优惠券
  • 呼叫Stripe,获取卡的令牌
  • 向服务器发送令牌和优惠券
  • 使用令牌创建条带客户
  • 创建具有折扣和传递客户ID的订阅
  • 现在发生的是一次授权尝试。如果需要SCA,则订阅状态为“未完成”,最新的发票付款意图状态需要执行操作

    此时,我可以使用
    handleCardPayment()
    将用户重定向到SCA流,以提示3DS,完成后,订阅状态即为活动状态

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

    今后,所有订阅费用都不需要进一步的SCA批准,但是,如果客户更改了计划或银行提出请求,那么我可以让我的用户返回SCA流程

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


    这里有什么我遗漏或误解的吗?我一直在阅读有关创建SetupIntent和PaymentIntent的内容,但我不确定我是否需要它?

    欢迎您的同病相怜,卡和代币是在中实现的。如果你想在欧盟内部使用条带支付,你应该使用支付意向

    还允许使用卡令牌创建支付意图

    但是,如果您想减少必要的身份验证数量,您应该使用设置意图(使用
    usage=“off session”
    )来创建支付方法,而不是卡令牌

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

    • 新客户总是通过设置意图和付款方式进行注册
    • 老客户使用ChargesAPI,直到他们的代币失效。然后,他们还必须使用设置意图和付款方式
    当然,客户并没有注意到这一点

    总之,对于新客户和卡更新,我总是使用付款方式和设置意图。只有有了安装意图,您才能确保您的客户必须尽可能少地进行身份验证


    编辑:关键点是订阅时发生的非会话支付。此处描述了条带过程:

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

    如果你不使用计费,他们的Youtube频道上会有一个标签,这可能有助于消除任何混乱


    希望这有帮助:)

    嗯,现在我更困惑了。我被告知订阅会生成一个PaymentIntent创建发票,因此为什么认为我仍然可以调用
    客户。创建
    然后再创建
    订阅。创建
    如下:我不使用订阅API,但我认为该页面可能有点过时。在任何情况下,付款方式也应与付款方式配合使用:“客户就是您的买家”。客户有唯一的ID、电子邮件地址和付款方式。“如果您需要SCA,您应该使用付款方式,而不是卡令牌/来源。但我不确定是否需要以这种方式担心非会话付款。它指出“如果您希望提前收集卡的详细信息,但不确定将来打算向客户收费的时间或金额,请使用Setup Intents API。"这对于计量型订阅很有用,但我已经为他们创建了一个客户和订阅,所以我知道我将收取多少费用。如果他们更改订阅,将生成一个新的发票,价格就在那里。问题是我不清楚在我的场景中要做什么..SetupIntents并不真正适用于您,因为您有来自订阅的初始付款。订阅会生成PaymentIntent yep,并且您完全正确地遵循stripe.com/docs/billing/subscriptions/payment。如果您在接受客户卡时没有向客户收费,您只需要使用SetupIntent。否则,您将使用
    设置未来用法:关闭会话
    ,或者只创建订阅并处理发票付款(它也会在创建发票的付款页上自动设置该用法)该图对我来说太棒了!这是SCA就绪状态。我要指出的唯一一点是,在“下一个月付款”->“发票生成”->“SCA需要”流程中,您不必有一个自己进行
    handleCardPayment
    的页面,Stripe可以配置为自动向客户发送电子邮件,但那里的图是正确的r初始付款啊,是的,我应该添加。对我来说,我想通知应用程序中的用户,通知他们需要额外信息/新付款,但是的,我在文档上看到了。谢谢!