如果我有一个 items 对象,我该如何将它放入 paypal-rest-sdk items 部分 (node.js)

If I have an object of items , how do I put it in the paypal-rest-sdk items section (node.js)

例如。我有一个名为 cart 的变量,当我 console.log 它就是

Cart {
  items: {
    '1': { item: [Object], qty: 1, price: 150 },
    '2': { item: [Object], qty: 1, price: 200 }
  },
  totalQty: 2,
  totalPrice: 350,
  add: [Function (anonymous)],
  reduceByOne: [Function (anonymous)],
  increaseByOne: [Function (anonymous)],
  deleteItem: [Function (anonymous)],
  generateArray: [Function (anonymous)]
}

这是贝宝部分

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": [{
                "name": "item",
                "sku": "item",
                "price": "200.00",
                "currency": "USD",
                "quantity": 1
            }]
        },
        "amount": {
            "currency": "USD",
            "total": "200.00"
        },
        "description": "This is the payment description."
    }]
};

如何将购物车中的商品放入 paypal 的商品部分,以便它可以计算所有商品。我是新来的。是否可以在“item_list”对象中 运行 循环?非常感谢任何帮助。谢谢

这是一个简单的编程任务:编写一个迭代 Cart.items 和 returns 项目数组的函数。有很多方法可以构建这样的循环,甚至可以使用映射函数。举个例子

function getItems(cart) {
    let itemsArray = [];
    for (const [idx, item] of Object.entries(cart)) {
      console.log(`${idx}: ${item}`);
      itemsArray.push({
                "name": "item name goes here", //data seems to be in item.item
                "price": item.price,
                "currency": "USD",
                "quantity": item.qty
            });
    }
    return itemsArray;
}

那你用它...

        "item_list": {
            "items": getItems(Cart.items)
        }

另一件需要注意的事情是,您的 PayPal 代码适用于已弃用的 v1/payments API 或 checkout.js。您应该使用当前的 v2/checkout/orders 和 JS SDK。请参阅 Set up standard payments

中的示例