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

如何为Stripe订阅自动生成的循环付款意图设置元数据?

解决Stripe订阅后续Payment Intent元数据问题的两种方案

方案一:通过关联Subscription获取元数据(推荐)

你不需要给每个自动生成的Payment Intent手动设置元数据,因为每个Payment Intent都会关联到对应的Invoice,而Invoice又关联到Subscription。你已经在Subscription上存了productId和userId,直接通过Webhook事件链读取即可:

  1. 保持现有Subscription创建逻辑(已在metadata中存储所需字段)。
  2. 在payment_intent.succeeded的Webhook处理函数中:
    • 从Payment Intent对象中拿到关联的invoice ID。
    • 拉取该Invoice并展开关联的subscription。
    • 从Subscription的metadata中直接读取productId和userId。

代码示例:

// Webhook处理逻辑
async function handlePaymentIntentSucceeded(event) {
  const paymentIntent = event.data.object;
  
  // 获取关联的Invoice,并展开subscription
  const invoice = await stripe.invoices.retrieve(paymentIntent.invoice, {
    expand: ['subscription']
  });
  
  // 从Subscription元数据中提取所需信息
  const { productId, userId } = invoice.subscription.metadata;
  
  // 执行你的数据库更新操作
  await activateUserSubscription(userId, productId);
}

这个方法最可靠,无论后续Stripe的元数据继承规则如何变化,通过Subscription关联的方式都能稳定获取所需信息。

方案二:设置Invoice默认元数据,让Payment Intent自动继承

Stripe允许你为Subscription设置invoice_settings.default_metadata,这样每个账单周期生成的Invoice都会自动带上这些元数据,对应的Payment Intent会直接继承Invoice的元数据:

修改Subscription创建代码,添加invoice_settings字段:

const subscription = await this.stripe.subscriptions.create({
  customer: customer.id,
  items: [{ price: "price_........." }],
  expand: ["latest_invoice.payment_intent"],
  metadata: {
    productId: productId,
    userId: user.id,
  },
  // 设置后续Invoice的默认元数据
  invoice_settings: {
    default_metadata: {
      productId: productId,
      userId: user.id,
      subscriptionId: "{{subscription.id}}" // Stripe会自动替换为实际订阅ID
    }
  }
});

// 第一个Payment Intent可手动更新(可选,因为第一个Invoice也会继承default_metadata)
await this.stripe.paymentIntents.update(subscription.latest_invoice.payment_intent.id, {
  metadata: {
    subscriptionId: subscription.id,
    userId: user.id,
    productId: product.id,
  }
});

这样后续自动生成的Payment Intent都会带上你设置的元数据,Webhook里直接从paymentIntent.metadata读取即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 01:25:29