我无法收到 stripe 结账会话的客户对象

I can't receive the customer object of my stripe checkout session

提问人:Salvatore Lorello 提问时间:12/16/2022 最后编辑:marc_sSalvatore Lorello 更新时间:1/3/2023 访问量:223

问:

在我的前端,我使用 prebuild-stripe-payment 调用我的结帐会话,在结帐会话按照指南完成后,我尝试接收客户对象以获得付款详细信息,付款成功(我从条纹仪表板看到),但在我的成功页面中,我没有得到像示例中那样的对象,所以我无法显示客户姓名。

这是我的代码:

 app.post("/create-checkout-session", cors(), async (req, res) => {
      const session = await stripe.checkout.sessions.create({
        line_items: [
          {
            price: "price_xxxxxxxxxxxxxxxx",
            quantity: 1,
          },
        ],
        tax_id_collection: {
          enabled: true,
        },
        phone_number_collection: {
          enabled: true,
        },
        mode: "subscription",
        allow_promotion_codes: true,
        success_url: `${MY_DOMAIN}/order/success?session_id={CHECKOUT_SESSION_ID}`,
        cancel_url: `${MY_DOMAIN}?canceled=true`,
        subscription_data: {
          trial_period_days: 30,
        },
        automatic_tax: { enabled: true },
      });
      res.redirect(303, session.url);
    });
    
    
    app.post("/order/success", async (req, res) => {
   
      const session = await stripe.checkout.sessions.retrieve(req.query.session_id);
      const customer = await stripe.customers.retrieve(session.customer);
    
      res.send(`<html><body><h1>Thanks for your order, ${customer.name}!</h1></body></html>`);
    });
节点 .js 快速 条带支付

评论


答:

1赞 Justin Michael 12/16/2022 #1

从 Checkout 到您的成功 URL 的重定向不是 POST 请求,而是 GET 请求,因此您的路由将不起作用。如果你切换到我相信你会看到你所期望的行为。app.postapp.get

评论

0赞 Salvatore Lorello 12/16/2022
我只是尝试获取请求但没有工作
0赞 Justin Michael 12/16/2022
是否可以将日志记录添加到成功路由以确认它正在被调用?并查看提供的查询变量?然后用该详细信息更新您的问题。app.get
0赞 Salvatore Lorello 12/16/2022
问题是 /order/success 从未被调用
0赞 Salvatore Lorello 12/16/2022
我解决了它,在MY_DOMAIN常量中,我不小心输入了前端端口而不是后端端口,所以它从未发出请求,因为它没有被调用,感谢您的帮助