我正在使用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'
});
}
}
非常感谢任何帮助。
答案 0 :(得分:3)
对于有这个问题的其他人。我通过将令牌回调更改为此
来解决了这个问题token: token => {
console.log(token.id);
this.checkoutService.postToken(token);
}
注入checkoutService
服务来处理http.post
。不确定为什么这种方式有效而另一方没有,但我们去了。