如何使用PHP在Stripe结账会话中获取订单项元数据及商品描述
Stripe Checkout 订单项数据获取问题解决
获取订单项的Metadata
调用allLineItems方法时,默认返回的订单项数据不会包含关联的Product/Price对象的Metadata。你需要在调用时添加expand参数,展开关联的price.product对象,才能拿到Metadata:
$checkout_lineitems = $stripe->checkout->sessions->allLineItems( $_GET['session_id'], ['expand' => ['data.price.product']] ); // 遍历订单项获取Metadata foreach ($checkout_lineitems->data as $item) { // 获取Product的Metadata $productMetadata = $item->price->product->metadata; // 读取具体自定义字段 $customField = $productMetadata['your_custom_key'] ?? ''; }
如果你的Metadata是直接绑定在Price对象上的,就把expand参数改成['data.price'],然后通过$item->price->metadata获取。
正确获取商品描述
当你通过product_data创建临时商品时,订单项的description字段会默认显示商品名称,而真正的商品描述存储在关联的Product对象中。同样需要通过expand参数展开price.product,然后从Product对象里读取描述:
// 先执行带expand参数的allLineItems调用(同上) $firstItem = $checkout_lineitems->data[0]; // 正确获取商品描述 $productDescription = $firstItem->price->product->description;
这样就能拿到你设置的'My item'这个描述内容了。
内容的提问来源于stack exchange,提问作者Stevio
相关产品推荐
相关产品推荐

