【发布时间】:2015-04-08 03:33:00
【问题描述】:
我有一个网络服务,它为我的用户发布和托管某些信息。每个用户的编辑界面与他们发布的信息是分开的。我正在使用 Stripe 订阅为其付费,但我无法想出一种可行的方式来处理未付费订阅。这是我要实现的逻辑:
- 在第一次失败的计费尝试时,我的应用程序应该锁定用户的编辑界面;相反,它应该为他们提供一个页面,其中包含解决其付款问题的选项。但是,他们发布的信息仍会发布,因此延迟付款不会影响访问者的活动。
- 在 15 天后的最后一次计费尝试失败后,我的应用程序也应该删除他们发布的信息。此时,用户的编辑界面被替换为允许他们使用新信用卡重新激活帐户或完全删除帐户的界面。
- 如果用户选择重新激活帐户,他们不应获得试用期
- 如果用户重新激活,他们还应该支付他们之前跳过的 15 天的费用,方法是将他们的第一个计费周期缩短 15 天,或者将等于 15 天服务的费用添加到他们的第一张账单。
如果我注意正确的 webhook,#1 和 #2 很容易实现 — 只需将拖欠客户或已删除或未付费订阅的客户的请求重定向到“修复此问题”页面。 #3 也很简单——只需创建订阅并将trial_end 设置为now。
#4 很棘手。我如何确定用户的最后一张发票在取消订阅之前未支付的确切时间?如何缩短新订阅的第一个计费周期?或者,我如何按比例分配客户的最后一张发票总额以代表我实际提供给他们的部分,以便我可以将该金额添加到新发票中? (我知道我可以在开始新订阅之前创建一个发票项目来收取金额,所以至少这是可能的。)
最后,Stripe 的“标记未付费订阅”选项是否有助于解决这些问题?看起来它一直在创建发票,但没有尝试为它们收费;我不认为这就是我想要的。
【问题讨论】:
标签: stripe-payments credit-card subscription recurring-billing