Stripe创建计划返回id前缀为plan_而非price_的原因及解决方法
问题原因
- 接口调用差异:Stripe在2020-08-27版本API更新后,将订阅定价能力整合到新版Prices接口中。如果你调用的是旧版
/v1/plans接口创建定价计划,返回的ID固定为plan_前缀;如果调用新版/v1/prices接口创建周期性计费类型的定价,返回的ID就是官方文档示例中的price_前缀,此时返回体的object字段仍为plan,和你给出的官方返回示例结构完全匹配。 - 账户API版本过低:如果你的Stripe账户后台设置的默认API版本早于2020-08-27,即便你调用Prices接口,部分场景下也会返回兼容格式的
plan_前缀ID。
修复方法
- 替换调用接口:将当前使用的旧版
/v1/plans创建接口替换为新版/v1/prices接口,创建时添加recurring参数配置计费周期规则即可,返回的ID会自动变为price_前缀。 - 升级API版本:在Stripe开发者后台将账户默认API版本升级到2020-08-27及以上版本即可,升级前请先测试现有业务接口兼容性,避免影响正常流程。
- 兼容方案:如果暂时不需要调整接口,可直接使用返回的
plan_前缀ID,Stripe目前仍对旧版plan ID做了全链路兼容,后续订阅、支付等流程都可以正常运行,不会出现功能异常。
内容的提问来源于stack exchange,提问作者Khả Nam
相关产品推荐
相关产品推荐

