Node.js 在条带签出中发送额外参数
我在购物车上使用Next.js、Node.js和woocommerce,当我结账并发回会话时,我会看到我所有的订单详细信息,但产品ID是stripe生成的,而不是woocommerce产品ID。我需要woocommerce ID,因为通过stripe成功收到付款后,我想将订单保存到woocommerce,没有产品ID我无法执行此操作 我已经查找了是否可以发送带有行项目的自定义参数,但我找不到任何内容,也不知道stripe会话是否会返回该参数 Node.js代码,我想在其中发送Woocomece产品ID,然后在会话中将其发送回我。我可以尝试在这里提交给woocommerce,但如果订单没有通过,我在woocommerce有一个订单实际上没有通过条纹Node.js 在条带签出中发送额外参数,node.js,woocommerce,stripe-payments,next.js,Node.js,Woocommerce,Stripe Payments,Next.js,我在购物车上使用Next.js、Node.js和woocommerce,当我结账并发回会话时,我会看到我所有的订单详细信息,但产品ID是stripe生成的,而不是woocommerce产品ID。我需要woocommerce ID,因为通过stripe成功收到付款后,我想将订单保存到woocommerce,没有产品ID我无法执行此操作 我已经查找了是否可以发送带有行项目的自定义参数,但我找不到任何内容,也不知道stripe会话是否会返回该参数 Node.js代码,我想在其中发送Woocomece产
app.post('/create-checkout-session', async (req, res) => {
const session = await stripe.checkout.sessions.create({
payment_method_types: ['card'],
line_items: [
{
price_data: {
currency: 'usd',
product_data: {
name: 'T-shirt',
},
unit_amount: 2000,
},
quantity: 1,
},
],
mode: 'payment',
success_url: 'http://localhost:4242/success.html',
cancel_url: 'http://localhost:4242/cancel.html',
});
res.json({ id: session.id });
});
如果需要按行项目/产品列出,则应将其作为
元数据
包含在产品数据
()中:
当然,如果会话只需要一个值,您还可以在会话本身或上发送元数据
更新:检索行项目
要检查此产品级别的元数据
,您需要检索会话。请注意,line\u项
是一个可包含属性()-默认情况下不会返回它们。您必须使用指定它们,并且需要使用产品
对象执行更多操作:
const session = await stripe.checkout.sessions.retrieve(
'cs_test_123',
{
expand: ['line_items.data.price.product']
}
);
谢谢你。我在产品数据中放置元数据的地方做了完全相同的尝试,但是当我检查日志时,我在那里看不到元数据。你说看不到是什么意思?不知道在哪里?您需要检索会话并使用扩展来包括行项目。如果您在会话上设置元数据
,您将通过webhook事件获得该元数据。我将编辑我的答案以显示检索此内容。
const session = await stripe.checkout.sessions.retrieve(
'cs_test_123',
{
expand: ['line_items.data.price.product']
}
);