Braintree - 未来订阅取消

时间:2016-08-30 21:00:49

标签: braintree

我正在寻找一种方法来设置到期订阅的“到期”日期。当前的业务规则允许用户在结算周期结束之前仍然可以访问系统。

因为在此期间内,用户可能仍会购买插件,而Braintree的评分可帮助我们向此待处理的订阅付费。以下是我的一些想法:

1)将结算周期数从INFINITE设置为0或-1?我没有找到太多关于此的文档,我想知道我是否这样做,在下一个结算周期,订阅将“过期”? (我将对它进行测试,但我想我会把它放在这里)

编辑:结算周期数必须大于0,但将值设置为1似乎将到期日期设置为在周期结束时到期,这可能会解决我的问题。 (我猜Braintree假设当前的结算周期计为1。)

2)如果用户决定继续订阅,我可以将结算周期更改回INFINITE并继续订阅,就好像什么也没发生一样。

3)当用户升级到不同的包时,会发生相同的情况。将创建新订阅,其中将来的日期将在当前订阅结算周期结束后开始。

4)或者我是否必须将它们全部带入内部并运行我自己的CRON / Jobs来处理这些情况?

请让我知道您的想法,或建议更好的解决方案。

  

答案:我通过将number_of_billing_cycles设置为与jellenberger提到的current_billing_cycle相等来解决了这个问题。这将设置当前订阅的到期日期,从而允许我仍然收取相同的订阅费用。

1 个答案:

答案 0 :(得分:1)

完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系support

在定期计费中,有许多方法可以解决这类问题,而且每个结算流程都没有“正确的解决方案”。但最重要的是,您可以根据billing_period_end_datecurrent_billing_cycle - number_of_billing_cycles == 0计算最终周期中的到期日期。

如果您希望在最后一个结算周期结束后允许客户接收插件,您可以将结算周期数延长一个,并将price更新为零,或者添加折扣amount等于订阅价格。或者,更简单地说,您可以使用客户的默认付款方式为按比例分配金额创建新交易。

为了帮助更好地管理这些操作,有许多Webhooks与订阅相关,可能有助于避免编写自己的cronjob。如果您需要有关集成的进一步帮助,请随时联系Braintree Support