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

Stripe API删除产品因存在用户创建价格报错的问题咨询

核心原因

报错的本质是两个规则没满足:

  • Stripe 不支持永久删除 Price 对象,把active参数设为false仅能将价格归档,不会移除资源关联关系。
  • 删除 Product 的前置校验要求:产品关联的所有用户创建的价格都必须处于归档状态,只要存在1个active=true的关联价格,就会返回你看到的报错。你操作后仍报错,基本是漏处理了关联价格,或者请求参数传错导致价格实际没被归档。
全API操作步骤(无需登录Dashboard)
  • 第一步:拉取目标产品下的全量关联价格,不要只处理已知的默认价格,避免遗漏测试时创建的其他关联价格
// 拉取产品下所有价格,价格数量超过100条时需要做分页处理
const priceList = await stripe.prices.list({
  product: "待删除的产品ID",
  limit: 100
}, {
  stripeAccount: "目标资源所属的Connect子账号ID" // 操作子账号资源时必传,操作主账号可省略
})
  • 第二步:遍历所有价格,逐个将未归档的价格设为active=false
for (const price of priceList.data) {
  if (price.active) {
    await stripe.prices.update(price.id, {
      active: false
    }, {
      stripeAccount: "目标资源所属的Connect子账号ID" // 和上一步的账号参数保持一致
    })
  }
}
  • 第三步:所有价格归档完成后,调用产品删除接口即可
await stripe.products.del("待删除的产品ID", {
  stripeAccount: "目标资源所属的Connect子账号ID"
})
常见踩坑点
  • 不要只处理default_price对应的价格:创建产品后如果做过价格新增、测试调用,很可能存在其他关联价格,漏改任意一个都会触发报错。
  • 操作Connect子账号资源时,所有价格查询、价格更新、产品删除请求都必须携带stripeAccount参数,否则请求会落到主账号空间,子账号下的资源状态根本没被修改,会一直返回报错。
  • 批量归档价格后如果立刻调用删除接口偶发报错,可以等待1-2秒重试,Stripe后端状态同步存在极短的延迟。

内容的提问来源于stack exchange,提问作者Metidji Sid Ahmed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:31:37