【问题标题】:add multiple products to stripe checkout nodejs将多个产品添加到条带结帐 nodejs
【发布时间】:2021-06-28 16:21:24
【问题描述】:

我正在创建一个电子商务网站,客户可以在其中将产品添加到他们的购物车中。在结账时,我需要将购物车中的所有商品放入条纹结账页面——我的意思是,在我的代码中,我需要传递购物车中所有产品的图片、名称和价格,进入条纹结帐页面...

这是我目前的代码!

const YOUR_DOMAIN = 'http://localhost:1208';
app.post('/create-checkout-session', async (req, res) => {
    var user = "select * from " + tableID + "";
    ibmdb.open(db2ConnString, function(err, conn) {
        if (err) return console.log(err);
        conn.query(user, function(err, rows) {
            if (err) {
                console.log(err);
            }

            var productName = "";
            var image_url = "";
            var price = "";

            for (var i = 0; i < rows.length; i++ ) {
                productName = rows[i].NAME;
                image_url = rows[i].IMAGE_URL;
                price = rows[i].PRICE;
            }

            conn.close(function() {
                console.log("closed function")
            });
        });
    })

  const session = await stripe.checkout.sessions.create({
    payment_method_types: ['card'],
    line_items: [
      {
        price_data: {
          currency: 'cad',
          product_data: {
            name: ProductName,
            images: image_url,
          },
          unit_amount: price,
        },
        quantity: 1,
      },
    ],
    mode: 'payment',
    success_url: `${YOUR_DOMAIN}/success.html`,
    cancel_url: `${YOUR_DOMAIN}/cancel.html`,
  });
  res.json({ id: session.id });
 
});

购物车中会有多个产品,我该如何解决这个问题?

【问题讨论】:

    标签: javascript html node.js stripe-payments


    【解决方案1】:

    如果我没看错你的代码

                for (var i = 0; i < rows.length; i++ ) {
                    productName = rows[i].NAME;
                    image_url = rows[i].IMAGE_URL;
                    price = rows[i].PRICE;
                }
    

    您需要将这些值放入对象数组中,其中每个对象的格式类似于 CheckoutSession 所期望的 price_data 哈希。

    所以在你的 for 循环之后,你的数组,例如price_data_array 看起来像:

    [
          {
            price_data: {
              currency: 'cad',
              product_data: {
                name: ProductName,
                images: image_url,
              },
              unit_amount: price,
            },
            quantity: 1,
          },
          {
            price_data: {
              currency: 'cad',
              product_data: {
                name: ProductName,
                images: image_url,
              },
              unit_amount: price,
            },
            quantity: 1,
          },
          .....
    ]
    

    然后,当您创建 CheckoutSession 时,只需在 line_items: price_data_array 下传递该数组。

    【讨论】:

      猜你喜欢
      • 2013-09-11
      • 2019-04-03
      • 2021-12-25
      • 2021-12-29
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-17
      相关资源
      最近更新 更多