訂閱生命週期與計費
本頁說明訂閱在其生命週期中如何流轉、計費週期和續訂如何計算,以及失敗的付款如何處理。
狀態
可視需要左右捲動
| 狀態 | 意義 |
|---|---|
created | 訂閱已建立,但消費者尚未完成授權。 |
trialing | 消費者正處於試用期。尚未發生任何扣款。 |
active | 訂閱正常計費。每個計費週期結束時會自動建立新訂單並扣款。 |
unpaid | 目前計費週期的訂單未能成功付款。訂閱正處於催收狀態,之後將恢復為 active 或終止為 expired。 |
canceled | 由商戶代表消費者取消。終止狀態——不會再產生扣款。 |
expired | 因始終無法收款(初始扣款失敗,或催收已耗盡)而非自願終止。終止狀態——不會再產生扣款。 |
canceled 和 expired 都是終止狀態,但意義不同:canceled 是商戶代表消費者主動取消,而 expired 反映的是付款失敗。在您自己的流失分析中應區分這兩者。
計費週期
每個處於活躍狀態的訂閱都有一個 currentBillingPeriodEnd 時間戳記,處於試用狀態的訂閱還會有一個 trialEnd 時間戳記。
- 間隔(Interval):一個包含
unit(WEEK、MONTH或YEAR)和count(兩次續訂之間的單位數)的物件。按月和按年的週期會順延至與訂閱的計費錨點(首次成功扣款)相同的日期;若錨點當天在目標月份中不存在(例如錨點為 31 號,而目標月較短),則順延至該月最後一天(30 號或 28/29 號)。 - 續訂(Renewal):由 Tokenz 在目前計費週期結束時自動管理。
試用期
如果在建立訂閱時設定了 trialPeriodDays(1–365),結帳時不會建立初始訂單。而是按以下流程進行:
- 消費者透過提供卡片資訊開始試用。Tokenz 會在支付網路中登記支付同意——參見支付方式與授權。
- 訂閱進入
trialing狀態,並發送subscription.trial_startedwebhook。 - 當試用達到
trialEnd時,系統會建立訂單並使用已儲存的卡進行扣款。成功後,訂閱變為active,並發送subscription.activatedwebhook。
如果未設定試用期,初始訂單會在結帳時建立並扣款,授權成功後訂閱立即變為 active。
催收(付款失敗復原)
每個訂閱在建立時都會設定一個催收策略,用於控制計畫扣款失敗時的處理方式:
RETRY(預設):未付款的訂單會在其到期窗口(dunningExpireAfterHours,預設 24 小時)耗盡之前,最多重試dunningMaxAttempts次(預設 3 次),並按一定間隔分散進行。消費者還會收到一封包含復原結帳連結的郵件,以便在需要時更新卡片。如果某次重試成功,訂閱會恢復為active。如果所有重試均失敗且訂單過期,訂閱將變為expired。CANCEL_IMMEDIATELY:首次扣款失敗會立即使訂閱失效——沒有重試窗口。
可視需要左右捲動
| 欄位 | 說明 |
|---|---|
dunningMode | RETRY 或 CANCEL_IMMEDIATELY。預設值為 RETRY。 |
dunningMaxAttempts | 當 dunningMode 為 RETRY 時的最大重試次數。1–10,預設 3。 |
dunningExpireAfterHours | 當 dunningMode 為 RETRY 時,未付款訂單過期前的小時數。1–168,預設 24。 |
注意: 從
unpaid復原到active不會移動原有的計費週期——下一次續訂仍按原始錨點日期排程,而不是按復原日期排程。
取消
只要訂閱處於 trialing、active 或 unpaid 狀態,商戶即可代表消費者取消訂閱。取消操作會:
- 設定
canceledAt並停止產生後續的續訂訂單 - 取消該訂閱任何處理中的訂單(例如仍在等待付款的訂單)
- 發送
subscription.canceledwebhook
取消是最終操作——目前沒有辦法恢復已取消的訂閱。消費者需要重新開始一個新的訂閱。
續訂提醒
在部分地區,法規要求在特定扣款前發出通知(例如試用轉正式扣款之前,或年度續訂之前);在有此要求時,Tokenz 會自動發送這些通知。