【问题标题】:Integrating PayPal with backend that uses authentication headers将 PayPal 与使用身份验证标头的后端集成
【发布时间】:2021-08-11 03:48:54
【问题描述】:
var create_payment_json = {
        intent: "sale",

    payer: {
        payment_method: "paypal"
    },
    
    redirect_urls: {
        return_url: "http://0c95effc2751.ngrok.io/success",
        cancel_url: "http://0c95effc2751.ngrok.io/cancel"
    },...}



 paypal.payment.create(create_payment_json, function (error, payment) {
        if (error) {
            console.log(error)
            throw error;
        } else {
            for(let i = 0;i < payment.links.length;i++){
              if(payment.links[i].rel === 'approval_url'){
                console.log(payment.links[i].href)
           
               res.redirect(payment.links[i].href);
              }
            }
        }
      });

在我的后端 Node.js 代码中,我使用中间件来要求身份验证,因此所有路由都可以通过授权标头访问。在 PayPal 页面上批准付款后,在没有此授权标头的情况下重定向回成功路径,因此很遗憾无法访问成功路径。如何解决?

【问题讨论】:

    标签: javascript node.js paypal


    【解决方案1】:

    最好的解决方案是不使用任何重定向。完全没有。

    相反,在您的服务器上创建两条路由,一条用于“创建订单”,一条用于“捕获订单”,documented here。这些路由应该只返回 JSON 数据(没有 HTML 或文本)。后者应该(成功时)在返回之前将付款详细信息存储在您的数据库中(特别是purchase_units[0].payments.captures[0].id,PayPal 交易 ID)

    将这两条路线与以下批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server

    【讨论】:

    • 请我如何实现设置服务器端SDK并在我的代码中创建一个订单,最后一个包含需要快递的索引文件,路由文件和身份验证要求,在我的路由中有支付路由
    • 不确定您具体要寻求什么帮助;上面记录了必要的步骤。
    猜你喜欢
    • 2014-09-28
    • 2021-02-10
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 2015-12-03
    • 2014-03-06
    • 2021-04-28
    • 2015-09-13
    相关资源
    最近更新 更多