所有文章
Playbook閱讀時間 8 分鐘

你可以暫停訂閱或把續訂日期往後推,而不是退款,這樣能留住大部分收入

當訂閱者想退出時,你可以暫停訂閱、延後下一次扣款,或延長續訂日期,而不是退款。每一種做法都能留住客戶,並且不退回你已經收到的任何款項。以下講清楚每一個手段在各個商店裡如何運作,以及能省下什麼。

暖光書桌上的一部手機顯示著一個已暫停的訂閱,帶有一個柔和的暫停符號,展示如何暫停訂閱而不是退款

重點摘要

  • 當訂閱者想退出時,開發者在退款之前通常有三個商店認可的手段:暫停訂閱、延後下一次扣款,或延長續訂日期。每一種都能留住客戶,並且不退回已經收到的任何款項。
  • Google Play 允許使用者把一個自動續訂的訂閱暫停一段時間,時長在 one week 到 three months 之間,具體取決於方案的計費週期,而且暫停只在當前計費週期結束後才生效。
  • 在 Google Play 訂閱被暫停期間,使用者失去存取權限且無需付費,暫停結束時 Google 會自動嘗試為其續訂。
  • Google Play 的延後扣款讓開發者把下一次扣款往後推,每次 API 呼叫最少推 one day、最多推 up to a year,在此期間使用者保留完整存取權限且不被扣款。
  • Apple 沒有面向使用者的暫停功能。它的對應做法是 App Store Server API 的續訂日期延長,可以把訂閱者的續訂日期往後推 up to 90 days,每個日曆年 twice per calendar year,延長出的這段時間不收費。
  • 對一個年度訂閱退款,可能一次退回整整一年的付款,而暫停或贈送幾天所花的只是其中很小一部分,這就是為什麼退款應該是最後的選項,而不是第一個。
  • 一旦客戶就一筆扣款向銀行提出爭議,這些手段都幫不上忙。到那時開發者唯一能提供的輸入,就是 Apple 的 12 hours CONSUMPTION_REQUEST 或 Google Play 的 24 hours orders.reviewrefund 視窗。

你可以暫停訂閱、把下一次扣款推到未來,或者送給訂閱者一些免費天數,這幾種做法都能把客戶留在你的帳面上,而不退回你已經收到的一分錢。退款正好相反。它退回上一次扣款,有時是整整一年的費用,而且客戶通常反正也走了。所以當有人說想退出或要求退款時,退款很少是你唯一的選擇,而且它幾乎總是最貴的那一個。

這裡是全貌。Google Play 允許使用者暫停一個自動續訂的訂閱,也允許你把下一次扣款往後推,從一天到一年不等。Apple 沒有暫停按鈕,但它允許你每年延長續訂日期兩次,每次最多 90 days,客戶不用付費。接下來講的是每個手段在各個商店裡如何運作,與退款相比它們讓你花多少,以及有一種情況下它們全都幫不上忙。

當訂閱者想離開時,你真正擁有的選擇

取消和退款不是同一件事,把每一個不滿意的訂閱者都當成退款來處理,正是各家工作室退回本不必退回的錢的原因。取消會停止下一次續訂,把已經付的錢留在原處。退款則伸回去,把你已經入帳的一筆扣款拿走。在這兩者之間,有一套正是為這一刻而設的商店工具:留住這個人的訂閱,或者在不逆轉付款的情況下把關係維繫好。

先暫停、延後、延長,最後才退款

順序很重要。暫停會把訂閱停放起來,讓客戶能離開一陣子再回來。延後或延長會贈送免費時間,把一個本來要退款的請求變成一次善意的表示,讓你花的是幾天,而不是錢。退款是最後手段,因為在這四種裡,它是唯一一個把錢從你帳戶裡拿回去的。當其他三種都不合適時再動用它,而不是一開始就用。

如何在 Google Play 上暫停訂閱

在這兩個商店裡,只有 Google Play 有真正的暫停。使用者在 Play Store 裡打開自己的訂閱,選擇暫停它,商店會處理其餘的事。你不需要審核,但你可以圍繞它來做設計。

暫停能持續多久

使用者可以暫停一段時間,時長在 one week 到 three months 之間,可選項取決於方案的計費週期。暫停總是只在當前計費週期結束後才生效,所以客戶保留了已經付費的那部分,暫停在下一次續訂時乾淨俐落地開始。

方案計費週期使用者可選的暫停時長
每週1、2、3 或 4 週
每月1、2 或 3 個月
每 3 或 6 個月1、2 或 3 個月
每年1、2 或 3 個月

暫停對存取權限、計費和你的查詢有什麼影響

在訂閱被暫停期間,使用者沒有存取權限,也不支付續訂價格。沒有錢離開你的帳戶,也沒有錢進入。有一個整合細節常常讓團隊栽跟頭:除非你把 includeSuspendedSubscriptions 設為 true,否則一個被暫停的訂閱不會被 Play Billing Library 的 queryPurchasesAsync() 方法返回。忽略這一點,你的應用程式就可能把一個只差一次點擊就能回來的暫停訂閱者,當成徹底流失的使用者。

暫停結束時會發生什麼

在暫停期結束時,訂閱恢復,Google 會嘗試為其續訂。使用者也可以在暫停期間隨時手動恢復,一旦手動恢復,計費日期就移到手動恢復的那一天。如果續訂嘗試失敗,這個訂閱會走和其他任何訂閱一樣的續訂失敗路徑,經過計費寬限期和帳戶保留,所以暫停不會去掉你的挽回步驟,它只是把這些步驟往後延。

Apple 沒有暫停,所以你改為延長續訂日期

Apple 不給使用者一個暫停開關。它給開發者的,是把訂閱者的續訂日期往未來移的能力,這會贈送免費的服務時間,並把下一次扣款往後推。這是一個伺服器端的動作,而不是客戶去點的東西。

每年兩次,每次最多 90 days

使用 App Store Server API,你可以為一位客戶的訂閱移動續訂日期,每個日曆年 twice per calendar year,每次往未來移 up to 90 days,客戶不會因這段增加的時間被扣款。你會附上一個 extendReasonCode 來記錄原因,比如客戶滿意度或某個服務問題。這是 Apple 最接近暫停的做法:不是把方案停放,而是延長它,讓這個人保留存取權限,而你本來要收的那筆費用只是往後移了。

一次呼叫就能覆蓋一場故障

還有第二個端點,能一次為所有活躍訂閱者延長續訂日期。在一場影響了你整個使用者群的故障之後動用它,此時給所有人贈送幾天免費時間,比應付一波又一波單獨的退款請求更便宜也更從容。它是同一個想法的批量版本:用免費時間來支付,而不是用逆轉的扣款。

一隻手在點手機,把訂閱續訂日期往後推,旁邊有一個日曆和一個時鐘,展示把延後扣款作為退款的替代方案

延後扣款,在不退款的情況下贈送免費時間的手段

Google Play 對應 Apple 延長做法的是延後扣款,而且在時長上更慷慨。你呼叫 purchases.subscriptionsv2.defer,把一個比當前更晚的新到期時間設進去。每次 API 呼叫最少可以延後 one day、最多推 up to a year,想推得更遠,就在新日期到來之前再呼叫一次。

客戶什麼都保留,且什麼都不付

在延後期間,使用者仍然訂閱著你的內容並擁有完整存取權限,但不會為這多出來的時間付費,續訂日期也更新為新的日期。Google 自己的例子就是一份微型的留存操作手冊:因為填寫一份意見回饋問卷而贈送一週免費,或者在一場持續的故障導致人們無法使用你的服務後補償存取權限。這裡面的每一個,都是一筆你沒有開出的退款。

接好通知

延後一筆扣款會觸發一個 SUBSCRIPTION_DEFERRED 即時開發者通知,這樣你的後端就能記錄新的續訂日期,並讓權益保持同步。預付方案的運作方式相同:defer 呼叫延長的是到期時間,而不是續訂日期。

每個選項在錢上讓你花多少

這一部分應該決定你嘗試各種做法的順序。這四種做法在價格上相差甚遠,而差距最大的地方,恰恰是退款最傷人的地方,也就是一個時間長、價值高的方案上。

退款是唯一一個把錢拿回去的做法

退款把上一次扣款退給客戶。在月度方案上那是一個月。在年度方案上,它按那最後一次扣款計算,也就是整整一年,在一個事件裡被逆轉。除了退回去的金額之外,還壓著你為服務這個訂閱已經花掉的成本:算力、第三方 API 呼叫、儲存,以及你付給某位創作者的任何分成,這些都收不回來。暫停、延後或延長都不碰這些。它們唯一讓你花的,是你延後的未來收入,或你補償的少數幾天。

做法現在從你帳戶離開的你保留的
退款上一次扣款,年度方案上最多是整整一年,再加上你已經花掉的服務成本通常什麼都沒有,客戶一般都走了
暫停(Google Play)現在什麼都不離開,只是未來收入裡被暫停的那些週期這個訂閱者和下一次續訂
延後扣款(Google Play)你贈送的那些免費天數的價值這個訂閱者和下一次續訂
續訂日期延長(Apple)你贈送的那些免費天數的價值,每次延長最多 90 天這個訂閱者和下一次續訂

拒付會讓這筆帳更難看

當替代方案甚至不是一次乾淨的退款,而是一場銀行爭議時,這筆錢的帳就更清楚了。對於 August 3, 2026 之後下的 Google Play 訂單,一場敗訴的拒付讓開發者付出的是購買價格減去 Play 的服務費,再加上銀行的拒付費用。一次暫停或幾天補償,如果能讓一個沮喪的客戶不去找他的銀行,那它不只是比退款便宜,它還擋掉了一筆更大的成本。

什麼時候暫停或延後是錯誤的工具

一旦客戶不再跟你說話,轉而去跟他的銀行說話,這一切就都不管用了。暫停、延後和延長,都是你提供給一個還在你應用程式裡的訂閱者的東西。對於一場已經提交的爭議,它們無能為力。

一場已提交的爭議有它自己的短暫時鐘

一旦一筆扣款被爭議,你唯一的輸入就是一個狹窄的視窗。Apple 會給你的伺服器發一個 CONSUMPTION_REQUEST,並等待 up to 12 hours 以取得消費資料。Google Play 會啟動一個 24 hours 的時鐘,並透過 orders.reviewrefund API 處理你的證據。錯過任何一個視窗,決定都會在沒有你的情況下作出。所以這些留存手段是用在退款請求之前那一刻的,而不是用在一場銀行爭議之後。

退款有時才是對的答案

對於一個確實受了委屈、並且想要回自己的錢而不是你更多產品的客戶,給他免費時間可能會被讀作一種搪塞。當公平的做法是退回那筆扣款時,就退回它。重點不是永遠不退款,而是當一次暫停或一週的補償本可以既留住錢又留住客戶時,不要條件反射式地退款。

留存清單

這一切都不深奧。它是訂閱者發出想退出信號那一刻的一套簡短例行流程。

  • 把退款當成四個做法裡的最後一個,排在暫停、延後和延長之後,而不是第一個。
  • 在 Google Play 上,為暫停做好設計:設定 includeSuspendedSubscriptions,這樣你的應用程式就不會把一個被暫停的訂閱者誤當成已流失的。
  • 像對待一次新購買那樣處理暫停結束時的續訂,因為那正是一個被暫停的訂閱者被留住或失去的地方。
  • 在 Google Play 上使用延後扣款,在 App Store 上使用續訂日期延長,用補償天數來代替開出退款。
  • 記錄 SUBSCRIPTION_DEFERRED 通知和這次延長,讓你的收入數字反映出被移動的續訂日期。
  • 把退款留給那個確實受了委屈並想要回自己錢的客戶,而不是給每一個請求。
  • 記住這些手段在一場銀行爭議提交後就不再管用,當有爭議時,回應那 12 hours 和 24 hours 的視窗。

常見問題解答

可以暫停一個 Google Play 訂閱嗎?
可以。使用者可以把一個自動續訂的 Google Play 訂閱暫停一段時間,時長在 one week 到 three months 之間,取決於方案的計費週期。暫停只在當前計費週期結束後才生效。暫停期間使用者沒有存取權限且不付費,暫停結束時 Google 會自動嘗試為其續訂。
在 Google Play 上可以暫停一個年度訂閱嗎?
可以。對於年度方案,使用者可以選擇暫停 1、2 或 3 個月。暫停只在當前已付費的那一年結束後才開始,所以客戶保留了已經付費的存取權限,暫停在下一次續訂時開始。
Apple 允許你暫停訂閱嗎?
不允許,Apple 沒有面向使用者的暫停功能。最接近的工具是 App Store Server API,它讓開發者把訂閱者的續訂日期往未來延長 up to 90 days,每個日曆年 twice per calendar year,客戶不用付費。這會贈送免費時間並把下一次扣款往後推,而不是把方案停放。
Google Play 上的延後扣款是什麼?
延後扣款讓開發者用 purchases.subscriptionsv2.defer 方法把一個訂閱的下一次扣款推到未來。每次 API 呼叫你可以最少延後 one day、最多推 up to a year。在延後期間,使用者保留完整存取權限且不被扣款,這讓它成為一種用來補償免費時間而不是退款的方式。
暫停或延後比給訂閱者退款更便宜嗎?
幾乎總是。退款退回上一次扣款,在年度方案上那是整整一年,而且它不會收回你為服務這個訂閱已經花掉的算力、API 和儲存成本。暫停什麼都不退回,只是把未來收入往後推,延後或延長讓你花掉的是你贈送的那些免費天數的價值。這三種做法還都能留住客戶,而退款通常做不到。

資料來源與延伸閱讀

RefundHalt

App Store 與 Google Play 的退款自動駕駛

繼續閱讀

下一筆退款申請已經在路上。

讀完另一封關於未能抗辯退款的客服郵件所需的時間,就足夠您設定好 RefundHalt。