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

Stripe订阅异常:无效卡重试后负金额项导致未正常计费求助

Stripe订阅重试计费异常解决方案

问题根源

核心原因是取消失败订阅时的配置导致Stripe保留了未结算的信用记录:

  • 支付失败后取消订阅时设置了invoice_now=false,Stripe不会生成结算发票,也不会清除原订阅关联的「未使用时段信用」。
  • 新订阅创建时,Stripe自动用该信用抵扣了正常订阅费用,导致发票总计为0。
  • 原订阅的proration_behavior=none仅作用于订阅变更时的 prorate,不影响取消后的信用逻辑。

修复方案

1. 调整取消订阅的逻辑

取消失败订阅时,设置invoice_now=true+proration_behavior=none,强制生成结算发票并清除信用记录:

stripe.Subscription.delete(
  "sub_XXXXXX",
  invoice_now=True,
  proration_behavior="none"
)

此操作会生成0金额的取消结算发票,彻底清除原订阅的信用关联,后续新订阅将按正常价格计费。

2. 创建新订阅时强制禁用信用抵扣

若无法修改取消逻辑,创建新订阅时明确禁用所有折扣/信用抵扣:

stripe.Subscription.create(
  customer="cus_XXXXXX",
  items=[{"price": "price_XXXXXX"}],
  proration_behavior="none",
  discounts=[],
  payment_behavior="default_incomplete"
)

该配置会忽略客户所有现有信用,直接生成正常金额的订阅发票。

3. 手动清理已存在的客户信用

如果已经产生了未应用的信用,可通过API直接清除:

# 删除客户的折扣/信用
stripe.Customer.delete_discount("cus_XXXXXX")

# 或调整客户余额至0(单位为货币最小单位,€3.49对应349分)
stripe.Customer.create_balance_transaction(
  "cus_XXXXXX",
  amount=349,
  currency="eur",
  description="清除未使用订阅信用"
)

验证标准

新订阅生成的发票需满足:

  • 仅包含「订阅价格 €3.49」的条目
  • 发票总计为€3.49,无负金额抵扣项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 07:12:45