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

如何在Node.js中更新Stripe订阅的商品数量?

Stripe 订阅商品数量更新报错解决方案

问题原因

  • 直接报错触发点:Stripe 订阅更新接口的 items 参数要求传入数组类型,你当前代码给 items 传的是 { data: 数组 } 格式的对象,类型不匹配直接触发 Invalid array 报错
  • 参数结构错误:即使你直接把数组传给 items,也不能直接使用从订阅检索接口返回的完整订阅项对象,该对象包含大量接口禁止修改的只读字段(如创建时间、关联产品元数据等),会导致后续参数校验失败
  • 缺少必要标识:修改已有订阅项时必须指定对应订阅项的ID,否则接口无法识别要修改的目标资源

正确实现代码

你不需要传递完整的订阅项数组,只需要明确传入要修改的订阅项ID和新的数量值即可,示例如下:

const subscription = await stripe.subscriptions.retrieve(
  stripe_sub_id
);

// 获取目标订阅项的唯一ID
const targetSubscriptionItemId = subscription.items.data[0].id;

await stripe.subscriptions.update(
  stripe_sub_id,
  {
    items: [
      {
        id: targetSubscriptionItemId,
        quantity: newCount
      }
    ]
  }
);

如果需要同时修改同一个订阅下的多个商品数量,只需要在 items 数组中新增多个对应结构的对象,分别指定不同的订阅项ID和数量即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:27:03