小编Tan*_*ner的帖子

为什么 stripe.confirmCardSetup 对我失败?

我正在开发一个 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 中,但没有捕获到错误。

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

javascript stripe-payments typescript angular

6
推荐指数
0
解决办法
517
查看次数

如何防止Angular组件样式替代覆盖到其他组件?

我有几个相互之间路由的Angular组件。他们俩都有mat-form-field。在一个组件中,我将覆盖下划线组件的样式,如下所示:

::ng-deep .mat-input-underline {
  display: none;
}
Run Code Online (Sandbox Code Playgroud)

当我单击链接返回到其他组件时,如上定义的样式会保留下来,下划线组件也消失了。我试图添加如下样式:

::ng-deep .mat-input-underline {
  display: revert;
  //or
  display: unset;
  //or
  display: initial;
}
Run Code Online (Sandbox Code Playgroud)

但是它们都不起作用。如何仅覆盖一个组件而不覆盖其他组件的材料设计样式?

css css-selectors material-design angular-material angular

3
推荐指数
1
解决办法
3106
查看次数