在我的 Angular 应用程序中,有一个名为Ngx-Stripe的模块

我将其定义为如下文档:

NgxStripeModule.forRoot('***your-stripe-publishable key***');

但是问题是我没有在应用程序 bootstrap 上获得此密钥,当我使用带 strip 化任何 Angular 库的带区字时,我不应该像app.module那样用角index.html或global对其进行硬编码。

用户进入付款页面后,我在api调用上得到了此密钥。在这种情况下,如何定义此密钥?

最佳答案

我希望它很简单,但是我能够实现的唯一方法是:

index.html (或者是通过webpack注入(inject)的脚本),必须放在Angular的源代码之前:

<script>
  var STRIPE_KEY = 'paste it here';
</script>

app.module.ts :
declare var STRIPE_KEY;

// ...
NgxStripeModule.forRoot(STRIPE_KEY);

这里的问题是Angt AoT编译器必须对.forRoot()进行静态分析,因此它无法接受您希望它接受的内容...通过StripeService.changeKey(key: string)方法获取密钥后如何设置密钥?

10-08 15:28