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

Node.js环境下Stripe订阅用量无法更新问题求助

Troubleshooting "No such subscription item" Error When Creating Stripe Usage Records

我碰到过不少开发者遇到这个问题,核心原因大多是对Stripe的ID概念混淆或者环境不匹配,咱们一步步来排查解决:

1. 你大概率混淆了「订阅ID」和「订阅项ID」

Stripe的usageRecords.create()方法第一个参数要求传入的是订阅项(Subscription Item)的ID(格式为si_xxxxxx),而不是你现在用的订阅(Subscription)ID(格式为sub_xxxxxx)。这是最常见的错误点!

你可以通过两种方式获取正确的订阅项ID:

  • 打开Stripe面板里的对应订阅详情,下拉到「订单项」区域,就能看到每个订阅项的ID(开头是si_)
  • 通过API拉取订阅对象,从subscription.items.data数组里提取对应的id字段

修正后的代码示例(替换成你的真实订阅项ID):

const res = await client.usageRecords.create('si_00000000000', { quantity: count, action: "set" });

2. 核对环境(Livemode)是否匹配

报错里明确标注了livemode=false,说明你的代码当前使用的是测试密钥。请确认你在Stripe面板里查看的订阅是在「测试数据」标签页下的,而非「实时数据」标签页。如果你的订阅是生产环境的,代码里要换成生产密钥,反之亦然。

3. 顺带确认订阅项的计费类型

虽然订阅处于试用阶段不会直接触发这个错误,但要确保对应的订阅项是计量式(Metered)计费的——只有计量式订阅项才需要调用usageRecords.create()上报用量。如果是固定价格的订阅项,这个API本身就不适用,不过你的错误提示是找不到订阅项,所以这个大概率不是当前问题,但可以顺便验证下。

按照这几点排查,应该就能解决问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:47:33