首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在角4中处理Paypal onAuthorize回调

在角4中处理Paypal onAuthorize回调
EN

Stack Overflow用户
提问于 2017-10-21 07:20:55
回答 1查看 842关注 0票数 0

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

代码语言:javascript
复制
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!");     

            });
        },
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-21 22:38:20

问题是上下文(this)在回调中不可用。最好的解决方案是绑定this,如对这个问题的回答中所解释的那样

另一种解决方案是在PayPal回调中发出自定义事件(文档这里)

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

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

代码语言:javascript
复制
@HostListener('dosomething') 
onDoSomething(data) {
 console.log(data)
 // your rest of the implementation
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46861004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档