You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Express.js、MongoDB和Stripe的电商购后MongoDB更新问题

问题描述

我正在开发一个基于Express.js、MongoDB和Stripe的电商网站,这是我首个处理交易与数据库的项目。项目架构如下:

  • 产品信息存储在MongoDB
  • 支付逻辑由Stripe处理
  • 服务器通过Express.js搭建

目前已实现成功支付,但无法更新MongoDB中的数据。Stripe返回的购买响应仅包含Stripe ID,我希望能关联保存MongoDB ID。尝试在商品对象中添加自定义字段时出现报错,请问是否有办法更新或删除已购买的商品?

以下是Stripe相关的app.js代码片段:

app.post("/buy", async (req, res) => {
    const id = req.body.id;
    const p = await Product.find(({_id: id}));

    try {

        let items = [];

        for(const i in p) {
            const item = p[i];
            items.push({
                price_data: {
                    currency: "eur",
                    product_data: {
                    name: item.title,
                },
                unit_amount: item.price
                },
                quantity: item.in_stock
            });
        }

        const session = await stripe.checkout.sessions.create({
            payment_method_types: ["card"],
            mode: "payment",
            success_url: `${process.env.SERVER_URL}/thanks?session_id={CHECKOUT_SESSION_ID}`,
            cancel_url: `${process.env.SERVER_URL}/`,
            line_items: items,
        }); 
        
        res.json({url: session.url});
    } catch(err) {
        res.status(500).json({ message: err.message });
    }
});

app.get("/thanks", async (req, res) => {
    try {
        const session = await stripe.checkout.sessions.retrieve(req.query.session_id);
        stripe.checkout.sessions.listLineItems(
            req.query.session_id,
            function(err, lineItems) {
            // asynchronously called
            console.log(lineItems);
          }
        );
    } catch(err) {
        res.redirect(process.env.SERVER_URL);
    }
    res.render("thanks", {home_url: process.env.SERVER_URL});
});
已解决方案

通过session.metadata字段实现关联MongoDB ID,后续可通过await stripe.checkout.sessions.retrieve(SESSION_ID)获取包含自定义元数据的会话信息。

这是个简单的错误,但对新手来说确实容易迷惑。


内容的提问来源于stack exchange,提问作者Gustav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:35:08