Ionic 4 Stripe.js集成

2ekbmq32  于 2022-12-25  发布在  Ionic
关注(0)|答案(1)|浏览(163)

我已经通过index.html将stripe.js集成到了我的ionic项目中。
这很好用,但是我无法将stripe.js结果存储到局部变量中。
首先是index.html的代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8" />
  <title>Ionic App</title>

  <base href="/" />

  <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  <meta name="format-detection" content="telephone=no" />
  <meta name="msapplication-tap-highlight" content="no" />

  <link rel="icon" type="image/png" href="assets/icon/favicon.png" />

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

  <!-- add to homescreen for ios -->
  <meta name="apple-mobile-web-app-capable" content="yes" />
  <meta name="apple-mobile-web-app-status-bar-style" content="black" />
</head>

<body>
  <app-root></app-root>
</body>

</html>

和主页。ts

import { Component } from '@angular/core';
declare var Stripe;

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})

export class HomePage {

  stripe = Stripe('my_public_key', {stripeAccount: "connected_stripe_account_key"});
  obj:any;

  constructor() 
  {}

  doCheck()
  {
    this.stripe
    .confirmCardPayment('someIntentID')
    .then(function(result) 
    {
      console.log(result.paymentIntent);
      this.obj = result.paymentIntent;
    });
  }
}

Stripe代码在finde中运行,我得到了数据,可以在控制台中看到它,但是我不能将它存储在变量obj中,我得到了错误:* 未被捕获(在承诺中):TypeError:无法设置未定义TypeError的属性"obj":无法设置未定义 * 的属性'obj'
我想问题是,我不能把物体放入条纹函数中,有没有可能解决这个问题?
谢谢!

bnl4lu3b

bnl4lu3b1#

您遇到了“this”作用域问题,因为它没有指向匿名函数中的类。请使用arrow函数来避免此问题:

this.stripe
    .confirmCardPayment('someIntentID')
    .then((result) =>
    {
      console.log(result.paymentIntent);
      this.obj = result.paymentIntent;
    });

相关问题