Angular导航到paypal网址响应

时间:2017-08-05 22:53:54

标签: node.js angular paypal

我正在尝试整合 Paypal API 我使用AngularNode.jsMongoDB堆栈。

我成功创建了付款

paypal_api.payment.create(create_payment_json, config_opts, function(err,res) {
    var response = {};
    if (err) {
        throw err;
    }
    if (res) {
        if (res.payer.payment_method === "paypal") {
            console.log("Create Payment Response");
            console.log(res);
            response.payment = res;
            response.paymentId = res.id;

            for (var i = 0; i < res.links.length; i++) {
                var link = res.links[i];
                if (link.method === "REDIRECT") {
                    var redirectUrl = link.href;
                }
            }
            response.redirectUrl = redirectUrl;
            resultat.status(200).json({
                message: "Success",
                obj: response
            });
        }
    }
});

module.exports = router;

我在FrontEnd中检索redirectUrl,见下文

PayNow() {
    this.contactClientService.PayNowPaypal().subscribe(
    (paypalObject: Payment) => {
        this.paypalObject = paypalObject;
        console.log(this.paypalObject.redirectUrl);
        this.router.navigate([this.paypalObject.redirectUrl]);
    },
    error => { 
        this.errorMessage = <any>error
    });
}

this.router.navigate([this.paypalObject.redirectUrl]); 我理解错误消息"Error: Cannot match any routes."。我读到我可以使用window.location.href = '...';转到外部链接。但这是最好的方法吗?我不确定。有什么建议吗?

如果我将链接复制到浏览器中,我将重定向到PayPal进行付款。

redirectUrl:"https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_e....."

谢谢

1 个答案:

答案 0 :(得分:1)

this.router.navigate是一种角度方法,用于查找路径定义中的匹配路径。由于paypal为您提供外部链接,因此它不会与您的任何应用程序路由相匹配。这就是为什么你看到错误&#34;错误:无法匹配任何路线。&#34;

您是正确的,当您导航到应用外部的外部链接时,您应该使用

window.location.href = this.paypalObject.redirectUrl;