为什么 stripe.confirmCardSetup 对我失败?

Tan*_*ner 6 javascript stripe-payments typescript angular

我正在开发一个 Angular 应用程序,我们尝试保存客户的信用卡以便以后收费。

有一个按钮允许客户添加或编辑付款方式。一旦他们点击它,我们就会向后端发出调用以创建一个传递客户 Stripe ID 的设置意图,Stripe 返回一个设置意图,包括一个 ClientSecret,我们将其传递回前端以供稍后使用.

然后客户在浏览器的 Stripe Card Element 中输入他们的信用卡信息。我们有一个按钮允许用户保存他们的卡;当他们点击它时,我们使用我们之前获得的 ClientSecret 进行这样的调用(如 Stripe JS 文档https://stripe.com/docs/js/setup_intents/confirm_card_setup 中所述):

const {setupIntent, error} = await stripe.confirmCardSetup(
  '{SETUP_INTENT_CLIENT_SECRET}',
  {
    payment_method: {
      card: cardElement,
      billing_details: {
        name: 'Jenny Rosen',
      },
    },
  },
);
Run Code Online (Sandbox Code Playgroud)

但是,有时会confirmCardSetup失败。当使用断点单步执行代码时,似乎从未调用过该方法,并且应用程序就在此时失败。该行之后没有代码被执行,也没有提供错误消息。我已经确定该stripe对象至少在尝试调用该方法之前立即存在,因此它不是空引用类型问题。我还尝试将代码包装在 try/catch 中,但没有捕获到错误。

有没有人对我应该做的不同的事情有什么建议,以免遇到这个问题?