英文:
Stripe subscriptions: why does it not prorate when auto-cancelling
问题
I'll provide the translation for the text you provided:
我计划使用Stripe来管理SaaS产品的按座位订阅,并希望在支付失败时(在重试窗口期间)允许客户继续访问应用程序,但如果所有重试都失败,则最终取消订阅。
Stripe没有覆盖的情况似乎有:
- 客户由于所有重试的失败而自动取消。
- 这会使Stripe客户处于订阅已取消但客户有一个完整计费周期的发票的状态,他们刚刚被取消。 (理想情况下,这应该自动按比例计算,但似乎没有任何选项可以这样做)。 更糟糕的是,即使我告诉Stripe将此发票标记为不可收款(设置中的唯一其他选项),客户仍然可以从客户门户查看/支付此发票。
- 客户决定要重新激活。我的应用程序需要为这位客户创建一个新的订阅。
- 我希望客户现在支付在重试窗口/支付失败之前产品可用的宽限期费用。如何处理这个问题?
英文:
I'm planning to use Stripe to manage per-seat subscriptions for a SaaS product, and I'd like to allow customers to continue accessing the application in the event that payment fails (during the retry window), but ultimately cancel the subscription if all retries fail.
The scenario that none of Stripe's options seem to cover is:
- Customer is automatically cancelled due to failed payments on all retries.
- This leaves the Stripe customer in a state where the subscription is cancelled but the customer has an invoice for the full billing period in which they've just been cancelled. (Ideally this would automatically prorate but there doesn't seem to be any option to do that). Even worse this invoice is viewable/payable from the customer portal, even if I tell Stripe to mark this invoice uncollectible (the only other option from the settings).
- Customer decides they want to reactivate. My app needs to create a new subscription for this customer.
- I want the customer to now pay for the grace period where the product was available during the retry window / failed payments before they were cancelled. What's they best way to handle this?
I feel like there must be something obvious I'm missing, because all of the above leads down a path of tracking the previously unbilled usage in my application and then apply it as an additional charge if the customer attempts to reactivate (and also check Stripe to see whether they paid the last invoice from the cancelled subscription and account for overpayment in that case).
答案1
得分: 1
抱歉,Stripe目前不提供此功能,您需要实现处理这些情况的逻辑。
这会让Stripe的客户处于这样一种状态:订阅已取消,但客户有一张针对他们刚刚取消的完整计费周期的发票。(理想情况下,这会自动按比例计算,但似乎没有这样的选项)。更糟糕的是,即使我告诉Stripe将此发票标记为无法收回(来自设置中的唯一其他选项),该发票也可以在客户门户中查看/支付。
如果您不希望客户支付该发票,我建议监听 customer.subscription.deleted
事件并作废发票。
我希望客户现在支付宽限期的费用,在此期间产品在重试窗口/付款失败之前是可用的。处理这种情况的最佳方式是什么?
我在这里的建议是对要向客户收费的金额进行自己的计算,并在创建订阅时将其添加为一次性发票项目。
英文:
Unfortunately, you're correct in that Stripe doesn't provide such feature(s) currently and you'll need to implement the logic to handle those scenarios.
> This leaves the Stripe customer in a state where the subscription is cancelled but the customer has an invoice for the full billing period in which they've just been cancelled. (Ideally this would automatically prorate but there doesn't seem to be any option to do that). Even worse this invoice is viewable/payable from the customer portal, even if I tell Stripe to mark this invoice uncollectible (the only other option from the settings).
If you don't want the customer to be able to pay the invoice, I would suggest listening for the customer.subscription.deleted
event and void the invoice(s).
`
> I want the customer to now pay for the grace period where the product was available during the retry window / failed payments before they were cancelled. What's they best way to handle this?
My suggestion here would be to perform your own calculations for how much to charge the customer, and add it as a one off invoice item when creating the Subscription.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论