在我的 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)
方法获取密钥后如何设置密钥?