返回网址不适用于PayPal和NodeJS

时间:2014-10-10 12:52:19

标签: node.js paypal paypal-rest-sdk

我的返回网址不适用于paypi-rest-sdk和NodeJS。

付款后的页面:https://space.zeo.net/g/2x2n1

页面应为:http://www.mywebsite.fr/confirm

      var payment = {
        "intent": "sale",
        "payer": {
          "payment_method": "paypal"
        },
        "redirect_urls": {
          "return_url": paypalConfigs.returnUrl,
          "cancel_url": paypalConfigs.cancelUrl+request.user.id
        },
        "transactions": [{
          "amount": {
            "total": total,
            "currency": "EUR"
          },
          "description": "Commande Printwithlove"
        }]
      };

      paypal.payment.create(payment, function (error, payment) {
        if (error) {
          console.log(error);
        } else {
          if(payment.payer.payment_method === 'paypal') {
            request.session.paymentId = payment.id;
            var redirectUrl;
            for(var i=0; i < payment.links.length; i++) {
              var link = payment.links[i];
              if (link.method === 'REDIRECT') {
                redirectUrl = link.href;
              }
            }
            response.redirect(redirectUrl);
          }
        }
      });

2 个答案:

答案 0 :(得分:1)

嘿尝试使用developer.paypal.com/webapps/developer/docs/integration/direct / ...创建付款,即只发送curl请求。如果您能够这样做并且重定向有效,那么您可以消除这是您的帐户设置或凭据的问题,并且返回网址已正确格式化。然后尝试来自github.com/paypal/rest-api-sdk-nodejs/samples的样本,如果样本有效,则可能是您的应用程序出现问题。

Eshan的建议也可能是这里的问题。

答案 1 :(得分:0)

使用npm paypal-rest-sdk软件包。很久以前我也遇到过同样的问题。然后我重定向了Payal页面。您给了 response.redirect(redirectUrl); ,它在读取所有代码异步过程时正在执行,因此重定向不起作用。您可以在执行if条件时输入重定向代码!