首页 > 解决方案 > 管理具有不同价格的多个并发订阅的计费周期的最佳方法是什么?

问题描述

有一个 SAAS 能够在不同的渠道上进行多个付费订阅。用户通过浮动价值的定期账单收费。

Channel A cost = $10/month
Channel B cost = $15/month

例如,用户在 1 月 1 日订阅频道 A,他们在 2 月 1 日收费(10 美元)。然后用户在 1 月 17 日订阅频道 B,下一次账单安排在 2 月 17 日。

我发现的一个明显的解决方案是建议用户支付 B 订阅的所需部分以及每月 15 美元的主要价格。

required_extra_amount = (30 - 17) * $15 / 30

因此,计费周期将与每月 1 日的常见计费日期同步。价格为 25 美元。

向用户收费最少次数的最佳方式是什么?我将非常感谢有关该主题的任何链接。

标签: architecturesubscriptionsaasrecurring-billingsystem-design

解决方案


如果您想按固定周期计费,那么按比例向用户收费是显而易见的解决方案。您的代码走在了正确的轨道上——唯一的复杂之处是您似乎假设每月固定 30 天,这对于计费周期可能有效(?)。

我可能会做这样的事情:

UserCharge = (DaysToBeBilled / DaysInBillingPeriod) * FullPeriodRate

因此,如果:

  • DaysToBeBilled = 15
  • DaysInBillingPeriod = 30
  • FullPeriodRate = 10 美元
  • 月费 = 5 美元
  • (30 / 15) * 10 = 5。

此外:

  • (31 / 5) * 15 美元 = 2.42 美元
  • (31 / 17) * 15 美元 = 8.22 美元
  • (31 / 30) * 15 美元 = 14.51 美元

DaysInBillingPeriod 只需通过一些简单的查找来设置一年中相关月份的天数,并且该算法适用于任何长度的计费期,而不仅仅是每月。


推荐阅读