处理Paypal onAuthorize Angular 4中的回调

时间:2017-10-21 07:20:55

标签: angular paypal checkout

我可以在Angular 4应用程序中成功加载checkout.js,渲染Paypal按钮,出现新窗口,我确认付款,处理付款但我不知道如何设置onAuthorize回调来处理Angular中的响应4(喜欢显示成功并将支付记录存储到MongoDb)。这是我的代码。我可以看到包含付款响应的第一个console.log但我无法访问组件的范围,因此在执行第一个console.log之后没有任何内容。我在控制台中没有错误。即使是console.log(“成功!”)也不会被处理。

onAuthorize: (data, actions) => {
            return actions.payment.execute().then(function(payment) {
                console.log("response = " + JSON.stringify(payment));
                this._alertService.success("The extension of subscription was succesfull!");
                this.user.contracts.push({
                        "acquired": new Date(payment.create_time), 
                        "price": payment.transactions[0].amount.total, 
                        "expires": new Date(this.user.expires.getFullYear()+this.selectedAccountExtensionOption.addedYears, this.user.expires.getMonth(), this.user.expires.getDate()) 
                        });
                console.log("successful!");     

            });
        },

1 个答案:

答案 0 :(得分:0)

问题是回调中没有上下文(this)。最好的解决方案是按answer to this question

中的说明绑定this

替代解决方案是在PayPal回调中发出自定义事件(文档here

let event = new CustomEvent('dosomething', { data: "some data" });

然后在组件中捕获此事件。文档here

@HostListener('dosomething') onDoSomething() { // do what you need }