Итак, я пытаюсь отправить вызов API в Paypal, и вот правильный способ сделать это в соответствии с документацией 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 не ясны, я не могу выяснить, в чем ошибкаточно