带有额外功能的条纹订阅(模块或插件)

时间:2015-11-07 17:23:46

标签: laravel stripe-payments laravel-cashier

我需要对我当前的订阅系统进行更改,我需要添加用户根据他们想要的功能(模块)按订阅收费的选项。这是一个例子:

BasePlan1_2015:10美元

Feature1:$ 5
特色2:10美元 特色3:5美元

在结算续订时,用户使用BasePlan1_2015和Feature1& Feature2应支付
$ 10 +($ 5 + $ 10)= $ 25。

到目前为止,我有两个选择:

选项1:收听已创建发票的webhooks,并根据所选功能应用发票行。用户首次选择他们的功能时,我会将其添加到发票中,然后为其开具发票。然后我会在每个webhook添加所需的发票行。

选项2:即时创建新计划。我会在我的数据库中存储每个功能的成本,当用户选择功能组合时,我会动态创建计划,将总数等于基本订阅的成本加上所选功能,然后订阅它们那个具体的计划。如果有人删除或添加了新功能,我会创建一个新计划(如果尚未创建)并按比例分配。

我倾向于第二个选项,因为它更加自动化,并且在更新时很可能一切都在Stripe结束时完成。

到目前为止,这两个是我能想到的唯一选择,但我感觉可能还有别的东西。

是否有人使用或正在使用Stripe这样的东西并有其他选择?

编辑1
@koopajah我明白选项2更复杂(已经测试了它并且感觉管理起来并不那么难)但是到目前为止我还是无法理解选项1.我理解它应该如何工作但我觉得很难把它在代码中。基本上,我的问题出现在用户开始添加或更改功能时,以及我可能需要按比例分配他们不使用的时间。我使用的是年度订阅,因为结算周期较长,我必须按比例分配。

您是否知道我可以查看的包裹或某些资源,并更好地了解如何进行选项1? 此外,我无法真正测试带有条纹的webhooks,但只有当我每天订阅并等待几天后才能看到webhook如何工作。

更新1 遇到选项3(从这里Stripe FAQ):
BasicPlan1_2015的价格为1美元。基本计划的数量为10 => $ 10每个功能都会分配一个数量编号:

Feature1:数量5表示$ 5
特征2:数量10表示10美元 特征3:数量5意味着5美元

现在,当用户添加或删除一个或多个功能时,我只需更新计划数量,我想一切都应该正常工作。

BasicPlan1_2015机智功能1和功能2的数量应为10 +(5 + 10)= 25,每个结算周期收费25美元。

现在,比较所有三个选项我更倾向于选项3.只需一个计划,多个选项和相同的结果,而其他选项要求我有多个计划或使用webhooks!

0 个答案:

没有答案