javascript - Nodejs Paypal api

标签 javascript node.js paypal

所以我正在尝试向 Paypal 发送 api 调用,根据 Paypal 文档,这是正确的方法:

"items": [
      {
        "name": "hat",
        "description": "Brown hat.",
        "quantity": "5",
        "price": "3",
        "tax": "0.01",
        "sku": "1",
        "currency": "USD"
      },
      {
        "name": "handbag",
        "description": "Black handbag.",
        "quantity": "1",
        "price": "15",
        "tax": "0.02",
        "sku": "product34",
        "currency": "USD"
      }
    ]

收到错误:

 { Error: Response Status : 400
 at IncomingMessage.<anonymous> (C:\Users\Kadiem\node_modules\paypal-rest- 
 sdk\lib\client.js:130:23)
at IncomingMessage.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1094:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
response:
{ name: 'VALIDATION_ERROR',
 details: [ [Object] ],
 message: 'Invalid request - see details',
 information_link: 'https://developer.paypal.com/docs/api/payments/#errors',
 debug_id: 'b2698c8d3e7a4',
 httpStatusCode: 400 },
 httpStatusCode: 400 }

这是从 Nodejs 发送的请求:

router.post('/pay', (req, res) => {
orderid = req.body.orderid;

var products = JSON.parse(req.body.products);

const create_payment_json = {
"intent": "sale",
"payer": {
    "payment_method": "paypal"
},
"redirect_urls": {
  "return_url": "",
  "cancel_url": ""
},
"transactions": [{
    "item_list": {
        "items":

          products.map((product) => {
            return {
              name: product.productname,
              sku: product._id,
              price: product.price,
              currency: "USD",
              quantity: product.quantity
            }
          })

    },
    "amount": {
        "currency": "USD",
        "total": "1.00"
    },
    "description": "Test"
}]
};

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

    });

我收到错误 400 这是什么我在这里做错了因为 PayPal 内部错误不明确我无法找出到底是什么错误

最佳答案

根据文档,您需要从请求中删除 []。您实质上是在数组 ([]) 中创建一个数组 (products.map)。

试试这个:

"items": products.map((product) => {
        return {
          name: product.productname,
          sku: product._id,
          price: product.price,
          currency: "AED",
          quantity: product.quantity
        }
      })

关于javascript - Nodejs Paypal api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54482834/

相关文章:

php - Paypal : trouble with ipn response

paypal - 隐藏/删除使用借记卡或信用卡付款

php - PHP 的 AJAX 分页解决方案

javascript - 如何为 jinja 模板重新加载 javascript?

javascript - 无法从 Node.js 读取 Azure 配置设置

javascript - Discord 机器人如何在嵌入或一般情况下在 Discord 消息中创建超链接?

javascript - 自定义对象和事件监听器

javascript - 更新 React Js 中的对象数组

node.js - 由于 JSON 字符串中存在尾随空格,无法解析 JSON

PayPal - 动态付款接收方?