首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使条带订阅符合SCA

如何使条带订阅符合SCA
EN

Stack Overflow用户
提问于 2020-12-06 22:02:17
回答 1查看 184关注 0票数 0

我正在尝试将我的代码迁移为SCA兼容的代码,但问题是似乎没有一个明确的指南来指导如何在Stripe上做到这一点。

我已经尝试了各种方法,但似乎无法让监管测试卡正常工作(这里的那个:https://stripe.com/docs/testing#regulatory-cards)。不过,普通的卡(424244242)可以正常工作。

我尝试的第一件事是confirmCardSetuphttps://stripe.com/docs/billing/subscriptions/overview#authentication-failures

我所做的就是一旦用户确认了他们的卡,就通过网络钩子来监听paymentintent.succeeded。我得到了3DS确认在这里显示,但一旦它到达网络挂钩,我不能使用支付方式来创建新的用户订阅。我得到了一个错误,没有附加到用户的支付方式。虽然当我检查条纹仪表板时,我使用的付款方式是附加在那里的。我甚至尝试过手动操作,但它真的无法识别。您似乎不能使用通过confirmCardSetup创建的支付方式来创建订阅。

我尝试的第二种方法是这个指南:https://codenebula.io/node.js/stripe/sca/2020/03/03/how-to-use-stripes-new-payment-intents-api-with-node-js-to-create-subscriptions-with-built-in-sca/

它是使用createPaymentMethod()实现的。然后将创建的付款方式提交到服务器以创建客户和订阅。此操作失败,并显示以下错误:

代码语言:javascript
复制
the payment attempt failed because additional action is required before it can be completed

我尝试的最后一件事是遵循这个指南:https://stripe.com/docs/payments/save-and-reuse它在文档中说它可以用于“循环付款”,所以我假设这是用于订阅。集成是有效的,但它并不是真正用于订阅。它在服务器端使用setupIntent调用,在客户端使用confirmCardSetup。只有当您在paymentIntent::create调用中使用它时,它才有效。

我正在尝试做的是使用通过confirmCardSetup生成的支付方法创建一个客户。然后为该用户创建订阅。我得到了与上面的方法#1相同的问题。它抱怨用户没有附加支付方式。因此,我只是假设通过此调用生成的支付方法仅用于创建支付意图。

这里的代码片段:https://stripe.com/docs/billing/subscriptions/overview#authentication-failures给出了如何实现这一点的提示,但是当我甚至不能创建订阅时,我从哪里获得这个subscription变量:

代码语言:javascript
复制
const {pending_setup_intent} = subscription;

if (pending_setup_intent) {
  const {client_secret, status} = subscription.pending_setup_intent;

  if (status === "requires_action") {
    stripe.confirmCardSetup(client_secret).then(function(result) {
      if (result.error) {
        // Display error.message in your UI.
      } else {
        // The setup has succeeded. Display a success message.
      }
    });
  }
}

请帮帮忙。即使是关于如何实现这一点的一般步骤也可以做到。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-12-07 11:02:10

带条纹的订阅符合SCA标准。您可能遇到的问题是,如果初始付款需要身份验证,则无法继续该过程。

这里有一个完整的集成示例:https://stripe.com/docs/billing/subscriptions/overview#integration-example

您需要做的是创建一个订阅并展开latest_invoice.payment_intent,如果失败,您就有了需要确认的客户端:https://stripe.com/docs/billing/subscriptions/overview#requires-payment-method

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65168916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档