javascript - 在 Angular 5 中使用 Stripe

标签 javascript angular typescript stripe.js

我有一个使用 Stripe 保存客户支付卡信息的 Angular 应用程序。

我将这个脚本包含在我的 index.html 中

<script src="https://js.stripe.com/v3/"></script>

此脚本提供了一个“Stripe”对象,我可以像这样使用它:

<script> var stripe = Stripe('pk_XXXXXXXXXXX') </script>

问题是:如何从我的 Angular typescript 代码访问 Stripe 对象?

最佳答案

typings.d.ts 中注册类型

declare var Stripe: any;

从服务中实例化一个 Stripe 对象

import { Injectable } from '@angular/core';

@Injectable()
export class PaymentService {

  stripe = Stripe('pk_test_XXXXX');

}

现在您可以将此服务注入(inject)您的组件并与元素交互,但请确保使用 AfterViewInit。

export class SomeComponent implements AfterViewInit {

  elements: any;

  constructor(private pmt: PaymentService) 

  ngAfterViewInit() {
    // initalize elements
    this.elements = this.pmt.stripe.elements()
  }

}

关于javascript - 在 Angular 5 中使用 Stripe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47847606/

相关文章:

Angular 4 指令错误 : Can't resolve all parameters for directive

javascript - 套接字 io 传输错误

typescript - 输入安全字段分配

json - Typescript - 如何在 Angular2 中正确使用 jsPDF?

javascript - 如何找到原型(prototype)在哪里使用?

javascript - 使 anchor 标记的行为类似于复选框和单选按钮

javascript - three.js 是否有等效的背面可见性?

angular - 在 Angular 模块中使用注入(inject)的故事书

javascript - AngularJS (1.x) 中的 IOC - 我怎样才能实现?

javascript - 使用 JavaScript 选择 CSS 主题