所有文章
實戰指南閱讀時間 8 分鐘

服務中斷後,Apple 和 Google 都允許你延長訂閱續訂日期,但兩者的限制截然不同

應用程式當機時,與其坐等退款申請,不如主動延長訂閱續訂日期。本文說明 Apple 的 90 天延長與 Google Play 的帳單延後如何運作、各商店的界線在哪裡,以及每種做法實際要付出的成本。

一座亮著琥珀色警示燈的伺服器機櫃,旁邊的筆電顯示著行事曆,正是開發者決定在服務中斷後延長訂閱續訂日期的那一刻

重點摘要

  • Apple 的 App Store Server API 允許開發者將已付費且有效的自動續訂型訂閱的續訂日期延長 1 到 90 天,用來彌補服務中斷、活動取消或直播中斷。
  • Apple 允許每位客戶在 365 天內獲得兩次續訂日期延長。延長一旦生效就無法撤銷,Apple 會以電子郵件將新的續訂日期通知客戶。
  • 處於免費優惠期、帳單重試期、寬限期到期日已過或已經過期的訂閱,Apple 不會延長。訂閱之前必須至少有一個已付費週期。
  • 透過 Apple 續訂日期延長增加的天數,不計入讓開發者訂閱收益分成從 70% 提高到 85% 所需的一年付費服務期。
  • Google Play 的 purchases.subscriptionsv2.defer 每次呼叫可將訂閱的下一個帳單日期延後最少一天、最多一年。使用者在此期間保有完整存取權且不會被收費,Google 會傳送 SUBSCRIPTION_DEFERRED 通知。
  • 續訂日期延長不會退還任何現金,因此開發者保留了這筆款項,但必須負擔增加天數內的運算、儲存空間與 API 呼叫費用,卻沒有續訂收入可以支應。退款則會退還購買金額,而你為服務該客戶已經花掉的錢一毛也拿不回來。
  • 如果服務中斷導致應用程式內購買未能交付,而 Apple 傳來 CONSUMPTION_REQUEST,誠實的 deliveryStatus 應為 UNDELIVERED_SERVER_OUTAGE,而且 Apple 要求在 DELIVERED 以外的任何狀態下,consumptionPercentage 都必須為 0。

服務中斷給了每位訂閱者最站得住腳的退款理由,而你無法阻止他們開口。你能做的,是在任何人提出之前,把失去的天數還給他們。兩大應用程式商店都允許你延長訂閱續訂日期,讓客戶得到免費時間而非現金。Apple 每次延長最多 90 天,每年允許兩次。Google 每次呼叫最多可將帳單延後一年。兩者在手續、通知與背後的成本上差異很大,一套中斷應變計畫無法同時涵蓋。

服務中斷會如何影響你的退款風險

退款由商店決定,不是由你決定。在 App Store 上,客戶向 Apple 申請,由 Apple 裁定。你可能會收到 CONSUMPTION_REQUEST 通知,並有 12 小時可以透過 Send Consumption Information 傳送消耗資料。這就是你全部的發言權。

在 Google Play 上,買家可以在購買後 48 小時內直接取得退款,不需要徵詢你的意見。之後的申請才會轉到你手上。Google 唯一會要求你提供證據的流程,是被標記為需要開發者審查的退單,你必須在 24 小時內透過 orders.reviewrefund 回覆。銀行對退單的裁決就是最終結果。

所以,兩家商店都沒有給你阻擋退款的方法。你能掌握的,是服務恢復後訂閱者是否仍覺得吃虧。迅速給予、清楚告知的額外訂閱時間,正是兩家商店專為此打造的工具。

如何在 App Store 上延長訂閱續訂日期

App Store Server API 為此提供了兩個端點。Extend a Subscription Renewal Date 作用於單一訂閱,以其 originalTransactionId 指定。Extend Subscription Renewal Dates for All Active Subscribers 作用於某個 productId 下所有符合資格的訂閱者,如果中斷只影響部分地區,你可以用 storefrontCountryCodes 加以限定。

每個請求包含三項內容:extendByDays,數值為 1 到 90;extendReasonCode;以及你自行產生的 requestIdentifier。原因代碼 3 代表服務問題或中斷。代碼 1 代表客戶滿意度,代碼 2 代表其他原因,代碼 0 代表未聲明。

Apple 會延長哪些訂閱

只有至少有一個已付費週期、處於有效狀態的自動續訂型訂閱才符合資格。Apple 會略過以下訂閱:

  • 處於免費優惠期的訂閱,例如免費試用。
  • 處於帳單重試狀態的非有效訂閱。
  • 處於帳單寬限期且到期日已過的訂閱。
  • 過去 365 天內已獲得兩次續訂日期延長的訂閱。
  • 已過期的訂閱。

家人共享會自動一併延長。當 Apple 延長一個支援家人共享的已購訂閱時,家庭成員的訂閱也會跟著延長。你無法直接指定家庭成員的訂閱進行延長。

大量請求很慢,請留意通知

Apple 表示,延長所有有效訂閱者的請求可能需要數小時甚至數天,視你的訂閱者人數而定。200 回應只代表 Apple 正在處理。App Store Server Notifications V2 會告訴你處理結果:

通知子類型代表意義
RENEWAL_EXTENDED無某個訂閱的續訂日期已延長
RENEWAL_EXTENSIONFAILURE某個訂閱的延長失敗
RENEWAL_EXTENSIONSUMMARY整個大量請求已完成

對於每一則 FAILURE,從酬載中已簽署的交易取出 originalTransactionId,再用單一訂閱端點重試。如果你偏好輪詢,Get Status of Subscription Renewal Date Extensions 會回報請求是否完成,以及延長成功與失敗的數量。

Google Play 的帳單延後如何運作

Google 的對應方法是 purchases.subscriptionsv2.defer,每個購買憑證呼叫一次。請求主體包含一個 deferralContext,內含三個欄位。etag 來自 purchases.subscriptionsv2.get,若與訂閱最新的 etag 不符,呼叫就會失敗。deferDuration 指定要把日期延後多久。validateOnly 設為 true 時,請求會以試跑方式執行,不會變動訂閱。

Google 的帳單指南規定,每次 API 呼叫的範圍是一天到一年。若要延後更久,請在新的到期日到來之前再次呼叫。對於自動續訂的訂閱,延後會移動下一個續訂日期。對於預付方案,則會移動到期時間。對於含有附加項目的訂閱,所有項目都會延後相同的時間。回應中會列出每個項目新的 expiryTime。

延後期間,使用者維持訂閱狀態並保有完整存取權,額外的時間不會收費。Google 會傳送 SUBSCRIPTION_DEFERRED 即時開發者通知。舊版的 purchases.subscriptions.defer 已淘汰,新程式碼應使用 v2 方法。

Google 不會通知你的客戶,所以你得自己來

每次延長成功後,Apple 都會寄電子郵件給客戶。Google 的帳單指南則完全沒有提到要通知使用者。如果目的就是預防退款申請,訂閱者就必須知道有這段額外時間。請自己在應用程式內並透過電子郵件告知他們,說明延長了幾天以及原因。

Apple 與 Google 並列比較

Apple App StoreGoogle Play
APIExtend a Subscription Renewal Date,另有一個大量端點purchases.subscriptionsv2.defer
每次請求的長度1 到 90 天1 天到 1 年
次數每位客戶 365 天內兩次未說明上限;在新的到期日之前再次呼叫
大量選項每個 productId 呼叫一次,可依店面限定每個購買憑證呼叫一次
免費試用不符合資格Google 指南未提及
通知RENEWAL_EXTENDED、RENEWAL_EXTENSIONSUBSCRIPTION_DEFERRED
是否通知客戶Apple 寄送電子郵件由你決定
能否撤銷否Google 指南未提及

延長與退款的成本比較

退款和延長從不同的地方拿走你的錢。退款會退還客戶為該週期支付的金額。而你為服務該客戶已經花掉的一切都收不回來:每次工作階段的運算、模型 API 呼叫、儲存空間,以及支付給內容被其使用的創作者的款項。

延長則保留了這筆款項。它的成本是你在沒有續訂收入支應的情況下繼續提供的服務。每多一天,有效訂閱者都會持續產生同樣的帳單。對輕度使用者來說幾乎可以忽略。對重度使用 AI 功能的使用者來說,額外 30 天可能代表 30 天的模型呼叫,卻沒有任何收入。請依中斷時間決定延長天數,而不是依你想表達的歉意。

你放棄的退款續訂日期延長
訂閱款項退還給客戶保留
已為服務該客戶花費的成本損失損失
增加天數內的運算、儲存空間與 API 呼叫無,存取權結束由你負擔,尚無續訂收入
之後的訂閱若退款撤銷存取權則終止維持有效,於新日期續訂

Apple 的抽成成本

在訂閱者付費服務的第一年,Apple 會支付你每次續訂金額的 70%,之後為 85%。Apple 的訂閱頁面說明,續訂延長的天數不計入付費服務天數。因此,30 天的延長會讓該訂閱者升到 85% 的時間延後 30 天。如果你參加了 App Store Small Business Program,你原本就能拿到 85%,這項成本不適用。

Google Play 的退單成本

對於 2026 年 8 月 3 日之後成立的訂單,若持卡人贏得退單,Google Play 開發者需負擔購買金額扣除 Play 服務費後的部分,再加上銀行手續費。服務中斷正是會把不滿的客戶推向銀行的那種事件。搶先一步送到他們手上的延後,比一場你無法翻盤的爭議便宜得多。

一本日期往後移的掛曆,旁邊放著手機和一張雲端主機帳單,這些都是開發者在服務中斷後延長訂閱前要衡量的成本

什麼情況下延長不是正確的工具

購買的不是訂閱

續訂日期延長只適用於訂閱。如果中斷影響的是消耗型項目或一次性解鎖,請重新交付該項目。如果 Apple 為此傳來 CONSUMPTION_REQUEST,請如實回報發生的情況。Apple 的 deliveryStatus 欄位有對應的值 UNDELIVERED_SERVER_OUTAGE,而且 Apple 表示,DELIVERED 以外的任何狀態都必須將 consumptionPercentage 設為 0。

客戶已經用完兩次 Apple 延長

Apple 的上限是每位客戶 365 天內兩次延長。一年內發生兩次中斷就會全部用完,第三次時你將無法透過商店提供任何補償。請追蹤每個 originalTransactionId 已使用的延長次數,這樣大量請求傳回的 FAILURE 通知就不會讓你措手不及。

客戶正在免費試用

Apple 不會延長處於免費優惠期的訂閱。試用使用者損失的是免費天數,而不是付費天數,所以退款風險很低。如果你想補償他們,一則應用程式內訊息的成本比任何 API 呼叫都低。

下一次服務中斷的檢查清單

  • 記錄中斷的開始與結束時間,以及受影響的產品和地區。
  • 選擇一個能涵蓋損失時間的天數。在 Apple 上,使用原因代碼 3,並維持在 1 到 90 天之內。
  • 在 Apple 上,每個 productId 送出一次大量請求,若只有部分地區受影響,則用 storefrontCountryCodes 加以限定。
  • 監聽 RENEWAL_EXTENSION FAILURE,並用單一訂閱端點逐一重試。
  • 在 Google Play 上,逐一處理有效的購買憑證,讀取每個 etag,先以 validateOnly 試跑,再正式延後。
  • 自己告知 Google Play 訂閱者有額外時間,因為 Google 不會通知。
  • 依據 RENEWAL_EXTENDED 與 SUBSCRIPTION_DEFERRED 更新權益到期時間,而不是依靠你自己的日期計算。
  • 按帳戶保存使用紀錄,這樣即使仍收到退款申請或退單,你也能在 12 小時內(Apple)和 24 小時內(Google)備妥證據。

常見問題解答

App Store 訂閱的續訂日期可以延長幾次?
每位客戶在 365 天內可延長兩次。每次延長 1 到 90 天,過去 365 天內已獲得兩次延長的訂閱無法再次延長。
我延長訂閱時,Apple 會通知客戶嗎?
會。續訂日期延長成功後,Apple 會寄一封電子郵件給客戶,告知更新後的續訂日期。Google Play 的帳單指南沒有提到這類訊息,所以在 Android 上,你應該自己通知訂閱者。
Google Play 訂閱最多可以延後多久?
Google 的帳單指南規定,每次呼叫 purchases.subscriptionsv2.defer 可延後一天到一年。若要再延後,請在新的到期日到來之前再次呼叫該 API。使用者保有完整存取權,延後的時間不會收費。
Apple 的續訂日期延長可以撤銷嗎?
不行。Apple 表示,訂閱續訂延長一旦生效就無法撤銷。送出請求之前,請確認產品、天數與店面。
續訂日期延長會影響我在 Apple 的 85% 收益分成嗎?
會。Apple 不把續訂延長的天數計入付費服務天數,因此延長會讓訂閱者從 70% 升到 85% 的時間點延後你所增加的天數。參加 App Store Small Business Program 的開發者原本就能拿到 85%。
可以延長處於免費試用期的訂閱嗎?
在 App Store 上不行。Apple 會排除處於免費優惠期的訂閱,以及帳單重試中、寬限期已過與已過期的訂閱。只有至少有一個已付費週期的有效訂閱才符合資格。

資料來源與延伸閱讀

RefundHalt

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

繼續閱讀

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

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