Angular 2 - 代码未在令牌回调(条带)中执行

时间:2016-10-11 10:33:29

标签: angular stripe-payments

我正在使用Angular2和自定义表单来创建我的条带标记。下面的代码正确执行console.log(token.id),但未调用this.http.post...。即使我尝试调用另一个函数,例如this.sayHello(),它仍然没有被调用。

export class SubscriptionComponent{

  constructor(public http: Http){}

    openCheckout() {

    var handler = (<any>window).StripeCheckout.configure({
      key: 'pk_test_mykey',
      locale: 'auto',
      token: function(token, args){
        console.log(token.id);

        this.http.post("/stripe/customer", token.id).subscribe(
          res => {
            console.log(res);
          },
          error => console.log(error)
        );
      }      
    });
    handler.open({
      name: 'Demo',
      description: '',
      amount: 990,
      currency: 'GBP',
      email: 'test@hotmail.co.uk'
    });
  }
 }

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

对于有这个问题的其他人。我通过将令牌回调更改为此

来解决了这个问题
token: token => {
        console.log(token.id);
        this.checkoutService.postToken(token);
      }

注入checkoutService服务来处理http.post。不确定为什么这种方式有效而另一方没有,但我们去了。