我正在寻找一种方法来设置过期订阅的“过期”日期。当前的业务规则允许用户仍然可以访问系统,直到结算周期结束。Braintree - 未来订阅取消
因为在这段时间内,用户可能仍然会购买插件,Braintree的分期可以帮助我们收取这个待处理的到期订阅。以下是我的一些想法:
1)将结算周期的数量从INFINITE设置为0或-1?我没有在这方面找到太多的文档,我想知道我是否会在下一个计费周期执行此操作,订阅将“过期”? (我会对它进行测试,但我想我会把它放在这里)
编辑:结算周期的数量必须大于0,但设置值为1似乎设置过期日期在循环结束时到期可能解决我的问题。 (我猜Braintree假定当前的结算周期被计为1)。
2)如果用户决定继续订阅,我可以将结算周期改回INFINITE,订阅继续,就好像没有任何东西发生了。
3)当用户升级到不同的包时,会发生同样的情况。将在当前订阅结算周期结束后开始新的订阅,未来日期将开始。
4)或者我必须把它们全部放在家里,并有我自己的CRON/Jobs来处理这些情况?
请让我知道您的想法或建议更好的解决方案。
答:我通过设置
number_of_billing_cycles
由jellenberger提到等于current_billing_cycle
解决了这个问题。这为当前订阅设置了到期日,从而允许我仍然收取相同的订阅费用。
所有经常性结算当前都不会过期,因此要过期立即重复结算,会设置'number_of_billing_cycle = current_billing_cycle'确保它成为最终结算周期? – user6776148