如何在 Stripe 结帐会话中访问项目元数据
How to access items metadata in Stripe checkout session
当我创建结帐会话时,我正在使用 price_data
和 product_data
属性即时创建价格。对于每个项目,我将元数据放入 product_data.metadata
属性.
支付成功后,为了向客户展示支付成功页面,我获取session数据。但由于某种原因,项目的元数据是空的。当我在仪表板中检查时,项目的元数据存在,但当我使用 API.
获取时,它们是空的
我试图通过扩展 line_items
属性:
获取整个会话数据
const session = await stripe.checkout.sessions.retrieve(session_id, { expand: ['line_items'] });
我也尝试过直接获取项目:
const line_items = await stripe.checkout.sessions.listLineItems(session_id);
在这两种情况下,每个项目的元数据都是空的。
动态创建项目时,元数据最终出现在 产品 属性 中,而不是 价格 属性.
所以我通过使用产品数据扩展项目解决了这个问题:
const line_items = await stripe.checkout.sessions.listLineItems(session_id, {
expand: ['data.price.product'],
});
响应中包含元数据 product
属性。
当我创建结帐会话时,我正在使用 price_data
和 product_data
属性即时创建价格。对于每个项目,我将元数据放入 product_data.metadata
属性.
支付成功后,为了向客户展示支付成功页面,我获取session数据。但由于某种原因,项目的元数据是空的。当我在仪表板中检查时,项目的元数据存在,但当我使用 API.
获取时,它们是空的我试图通过扩展 line_items
属性:
const session = await stripe.checkout.sessions.retrieve(session_id, { expand: ['line_items'] });
我也尝试过直接获取项目:
const line_items = await stripe.checkout.sessions.listLineItems(session_id);
在这两种情况下,每个项目的元数据都是空的。
动态创建项目时,元数据最终出现在 产品 属性 中,而不是 价格 属性.
所以我通过使用产品数据扩展项目解决了这个问题:
const line_items = await stripe.checkout.sessions.listLineItems(session_id, {
expand: ['data.price.product'],
});
响应中包含元数据 product
属性。