Paypal rest sdk 400 error (node.js) 关于 VALIDATION ERROR 的一些事情(错误写在描述中)

Paypal rest sdk 400 error (node.js) Something about VALIDATION ERROR (The error is written in description)

这是我得到的错误

name: 'VALIDATION_ERROR',
  details: [
    {
      field: 'purchase_units[0]',
      issue: 'Item amount must add up to specified amount subtotal (or total if amount details not specified)'
    }
  ],
  message: 'Invalid request - see details',
  information_link: 'https://developer.paypal.com/docs/api/payments/#errors',
  debug_id: '74ac8660674d8',
  httpStatusCode: 400

这是我的 /pay post 路线

app.post('/pay' , (req , res) => {

    let cart = new Cart(req.session.cart)
    
    
    const create_payment_json = {
    "intent": "sale",
    "payer": {
        "payment_method": "paypal"
    },
    "redirect_urls": {
        "return_url": "http://localhost:3000/success",
        "cancel_url": "http://localhost:3000/failed"
    },
    "transactions": [{
        "item_list": {
            "items": getItems(cart.items)
        },
        "amount": {
            "currency": "USD",
            "total": cart.totalPrice
        },
        "description": "This is the payment description."
    }]
};

这是 getItems 函数

function getItems(cart) {
    let itemsArray = [];
    for (const [idx, item] of Object.entries(cart)) {
      itemsArray.push({
                "name": item.item.product_name, 
                "price": item.price,
                "currency": "USD",
                "quantity": item.qty
            });
    }
    return itemsArray;

}

当我 console.log cart.totalPrice 它应该是正确的(这是购物车中所有物品的总数)知道这里出了什么问题。我对所有这些东西有点陌生所以有点困惑

对于当前(未弃用)API,请参阅 Set up standard payments

中的示例

在您的服务器上制作 2 条路线,一条用于 'Create Order',一条用于 'Capture Order'、documented here。两条路线都应该 return 只有 JSON 数据(没有 HTML 或文本)。在第二条路线中,当捕获 API 成功时,您应该将其生成的付款详细信息存储在您的数据库中(特别是 purchase_units[0].payments.captures[0].id,这是 PayPal 交易 ID)并执行任何必要的业务逻辑(例如发送确认电子邮件或预订产品)立即 将您的 return JSON 转发给前端呼叫者之前。

将这 2 条路线与当前的 JS SDK 前端批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server