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

Stripe更新订阅项时如何为自动生成的发票应用优惠券?

解决Stripe订阅项更新时发票自动完成无法添加优惠券的问题

两种可行方案:

方案一:生成草稿发票后手动添加优惠券

把proration_behavior从always_invoice改为create_prorations,Stripe不会自动生成并完成发票,只会将 prorate 金额作为待处理发票项保存。之后你可以手动创建草稿发票,添加优惠券后再完成流程。

修改后的订阅项更新代码:

Stripe::SubscriptionItem.update(
  'sub_item_id',
  proration_behavior: 'create_prorations',
  payment_behavior: 'default_incomplete',
  quantity: 10
)

后续操作步骤:

  1. 调用接口生成草稿发票:
    invoice = Stripe::Invoice.create({
      subscription: 'sub_id',
      auto_advance: false # 强制保持草稿状态
    })
    
  2. 为草稿发票绑定优惠券:
    Stripe::Invoice.update(
      invoice.id,
      coupon: 'coupon_id'
    )
    
  3. 手动完成发票,触发支付流程:
    Stripe::Invoice.finalize_invoice(invoice.id)
    

方案二:更新订阅时直接应用优惠券(针对本次 prorate)

如果希望生成 prorate 发票时自动套用优惠券,可直接使用Subscription.update接口(而非单独更新订阅项),在请求中加入优惠券参数,Stripe会自动将优惠券应用到本次更新产生的 prorate 金额上。

示例代码:

Stripe::Subscription.update(
  'sub_id',
  items: [{
    id: 'sub_item_id',
    quantity: 10
  }],
  proration_behavior: 'always_invoice',
  payment_behavior: 'default_incomplete',
  coupon: 'coupon_id'
)

注意:若优惠券仅需作用于本次 prorate 而非整个订阅,后续记得移除订阅上的绑定,避免影响未来发票。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 02:45:38