2016-08-30 135 views
1

我正在尋找一種方法來設置過期訂閱的「過期」日期。當前的業務規則允許用戶仍然可以訪問系統,直到結算週期結束。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

完全披露:我在布倫特裏工作。如果您有任何其他問題,請隨時聯繫support

在循環計費中,有幾十種方法可以解決這類問題,對每個計費流程都沒有「正確的解決方案」。但底線是,您可以根據billing_period_end_datecurrent_billing_cycle - number_of_billing_cycles == 0計算最終週期中的到期日期。

如果您希望允許客戶在上一個結算週期完成後接收附加信息,則可以將結算週期數擴展一次,並將price更新爲零,或者添加折扣amount等於訂閱價格。或者,更簡單地說,您可以使用客戶的默認付款方式按比例創建新交易。

爲了更好地管理這些操作,有許多與訂閱有關的Webhooks,並且可能有助於避免編寫自己的cronjob。如果您需要進一步的集成幫助,請隨時聯繫Braintree Support

+0

所有經常性結算當前都不會過期,因此要過期立即重複結算,會設置'number_of_billing_cycle = current_billing_cycle'確保它成爲最終結算週期? – user6776148