提问人:Salvatore Lorello 提问时间:12/16/2022 最后编辑:marc_sSalvatore Lorello 更新时间:1/3/2023 访问量:223
我无法收到 stripe 结账会话的客户对象
I can't receive the customer object of my stripe checkout session
问:
在我的前端,我使用 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>`);
});
答:
1赞
Justin Michael
12/16/2022
#1
从 Checkout 到您的成功 URL 的重定向不是 POST 请求,而是 GET 请求,因此您的路由将不起作用。如果你切换到我相信你会看到你所期望的行为。app.post
app.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常量中,我不小心输入了前端端口而不是后端端口,所以它从未发出请求,因为它没有被调用,感谢您的帮助
评论