You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Stripe Checkout订阅服务时元数据无法附加的问题排查

Stripe Checkout订阅模式元数据不显示的问题排查

你的问题核心在于元数据挂载的对象不同:

  • 单次收费模式中,payment_intent_data.metadata是附加到PaymentIntent对象上的,你查看对应PaymentIntent时能正常看到元数据;
  • 订阅模式下,你当前代码里的subscription_data.metadata是附加到最终生成的Subscription订阅对象上的,而非Checkout Session本身。如果直接查看Checkout Session的metadata字段,自然看不到这部分内容。

解决方法

1. 查看正确的关联对象

调用Stripe API获取该Checkout Session对应的subscription字段值(Session对象会返回关联的订阅ID),再查询这个Subscription对象,就能看到你设置的message元数据。

2. 给Checkout Session本身添加元数据

如果需要元数据同时出现在Checkout Session上,可以在Session的根层级直接添加metadata字段,与subscription_data同级:

Session::create([
    'customer' => $user->stripeCustomerId,
    'payment_method_types' => ['card'],
    'line_items' => [[
        'price' => 'price_0MACBYAGG6RS7KP5c1fNa6v9',
        'quantity' => $amount,
    ]],
    'subscription_data' => [
        'metadata' => [
            'message' => $message,
        ],
    ],
    // 新增Session级别的元数据
    'metadata' => [
        'message' => $message,
    ],
    'mode' => 'subscription',
    'success_url' => UrlHelper::url('?session_id={CHECKOUT_SESSION_ID}'),
    'cancel_url' => UrlHelper::url('?cancel=true'),
]);

这样无论是查看Checkout Session还是对应的Subscription对象,都能看到你设置的元数据内容。

内容的提问来源于stack exchange,提问作者Steven Grant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 13:25:47