所有文章
Deep dive閱讀時間 9 分鐘

消耗型應用程式內購買的退款會讓你付出雙倍代價,因為你早已花錢把它交付出去了

消耗型的應用程式內購買,一組金幣、一包寶石、一批 AI 額度,是你在任何人開口要退款之前就已經花錢交付出去的那種購買。以下說明消耗型退款在 App Store 與 Google Play 上會讓你付出多少代價,以及你的回覆真正能發揮作用的那個唯一時窗。

一支智慧型手機顯示應用程式內的金幣錢包,旁邊散落著金色代幣,說明一筆商品已經交付出去的消耗型應用程式內購買退款

重點摘要

  • 消耗型應用程式內購買在購買的當下就被兌換掉了。金幣、寶石、額度與生成包在顧客想到退款之前,就已經變成運算、API 呼叫與交付出去的內容,這就是為什麼消耗型退款會逆轉價格,卻永遠無法逆轉你早已付出的成本。
  • 在 App Store 上你無法核發或封鎖消耗型退款。Apple 透過 reportaproblem.apple.com 決定每一筆。你唯一能提供的意見就是 CONSUMPTION_REQUEST 通知,它給你 12 hours 把消耗資訊回傳。
  • CONSUMPTION_REQUEST 會針對消耗型商品與自動續訂訂閱觸發,而對消耗型商品來說你的回覆更重要,因為 Apple 無法像對訂閱那樣從經過的時間推斷使用情況。你回報的 consumptionStatus 與 consumptionPercentage 就是實際的證據。
  • consumptionStatus 有四個值:0 未申報、1 未消耗、2 部分消耗、3 完全消耗。consumptionPercentage 是以千分位為單位的整數,其中 100,000 代表消耗了 100 percent。完全消耗的消耗型商品是你能提出用來反對退款的最有力理由。
  • 在 Google Play 上你可以透過 Play Console 或 Order Management API 自行退款消耗型商品,並可選擇撤銷,但 Google 的 48 hours 自助退款完全不會徵詢你,而已花掉的消耗型商品事後也無法從你的經濟體系裡追討回來。
  • 唯一會就消耗型爭議徵詢你意見的 Google Play 流程,是透過 orders.reviewrefund 進行的退單審查,你有 24 hours 可以回應。比這更快的一切都在沒有你的情況下決定。
  • 從 August 3, 2026 起,Google Play 的退單會把購買價格扣除 Play 服務費,再加上銀行的退單費用,轉嫁到開發者身上。對一件你已經交付的消耗型商品而言,這會讓一筆有爭議的金幣包變成比銷售額本身更大的損失。

每一筆退款都很痛,但消耗型應用程式內購買的退款,是在你已經花掉錢之後才把錢拿回去的那一種。訂閱退款逆轉的是你可以關掉的存取權。非消耗型退款收回的是永久解鎖。消耗型商品不一樣。一組金幣、一包寶石、一批 AI 圖像額度、一個加成道具,在它落入顧客餘額的那一刻就被兌換掉了,等到退款要求出現時,金幣已經沒了、額度已經燒掉了,而產生輸出的運算也早已向你收費。這正是消耗型商品成為應用程式裡最尖銳退款問題的原因,也是為什麼那些關於證明價值的常見建議在這裡救不了你。

消耗型退款與其他每一種退款有何不同

商店把每種購買類型視為三種東西之一,而退款落在每一種上的方式各不相同。這個差異不是空談。它決定了你有多少成本能回來。

消耗型商品在你交付的那一刻就被花掉

非消耗型商品,例如永久關卡解鎖或移除廣告,會留在帳號上。訂閱授予你可以撤銷的限時存取權。消耗型商品在兌換時就用盡了。顧客買了 1,000 枚金幣,花 600 枚在一個呼叫了你伺服器的功能上,那 600 枚就沒了。這份價值並非留存等待評判。它當場就被轉換成你要付出的成本。

這正是商店一開始就為消耗型商品另建一套退款證據流程的原因。對訂閱來說,商店可以推算已付期間過了多少。對消耗型商品來說,沒有可讀的時鐘。要嘛你交付了金幣、顧客用掉了,要嘛你沒有,而只有你的伺服器知道是哪一種。

已經消耗掉的東西你無法收回交付

當一筆消耗型退款獲准時,錢逆轉了,但金幣不會自己取消花費。如果顧客買了一個額度包,用它生成了四十張圖像,然後拿到退款,你就付了四十次生成的錢卻一無所得。撤銷剩餘餘額是你最多能做的事,而且要在還有剩的情況下才行。完全消耗的消耗型商品沒有留下任何可以收回的東西。

消耗型應用程式內購買退款實際上讓你付出什麼代價

消耗型退款檯面上的數字是從你帳上消失的銷售價格。真正的數字是銷售價格,再加上你為了把那筆購買轉換成交付價值而早已花掉的一切。第二部分的大多數永遠不會回來。

成本你何時付出退款時是否回來
為了完成金幣所買之物的運算或 GPU 時間兌換時,退款之前
購買所觸發的第三方 API 呼叫兌換時
交付輸出的儲存與頻寬兌換時與兌換之後
商店對該銷售抽取的佣金購買時通常是,商店會逆轉自己的抽成
購買價格本身購買時否,全額逆轉給顧客
若演變成爭議,銀行的退單費用扣款之後否,而且在 Google Play 上你現在也要付它
一個打開的空禮物盒,旁邊放著一張付款收據與一小疊金幣,說明一筆已交付後又退款的消耗型應用程式內購買

退款逆轉的是價格,不是運算

假設顧客買了一個 $9.99 的 AI 額度包,並把它們全部花在生成輸出上。每一次生成都讓你付出一次真實的 API 呼叫。當 Apple 核准退款時,$9.99 退回去,Apple 也逆轉了自己的佣金,所以你回報的營收淨額歸零。你為那些生成付的運算帳單卻沒有歸零。你付了、它結清了,而且維持已付狀態。退款沒有碰到它。這正是 RefundHalt 當初打造時所針對的情況,因為經過的時間對消耗型商品什麼都證明不了,唯一的防線就是知道實際上交付了什麼。

App Store 這一側,你的回覆能發揮作用的那個唯一 12 hours 時窗

在 App Store 上你沒有退款開關。你無法核准消耗型退款,也無法拒絕。每一筆退款都由 Apple 逐一透過 reportaproblem.apple.com 決定。你得到的,是唯一一次發言機會,而且很狹窄。

CONSUMPTION_REQUEST 是 Apple 唯一會向你徵詢意見的地方

當顧客針對消耗型商品要求退款,而且該應用程式已啟用消耗資料共享時,你的伺服器會收到一則 CONSUMPTION_REQUEST 的 App Store Server Notification。接著你有 12 hours 可以用 Send Consumption Information 回覆。錯過時窗,決定就會在沒有你意見的情況下做出。Apple 特別為消耗型商品推出了這套流程,並在 2024 年把同一則通知擴及自動續訂訂閱。

回覆帶有一組欄位。對消耗型商品最重要的兩個,描述的是它被用掉了多少,以及你到底有沒有交付它。

欄位它回報什麼有份量的值
consumptionStatus顧客用掉了多少該消耗型商品0 未申報、1 未消耗、2 部分消耗、3 完全消耗
consumptionPercentage已使用比例,以千分位為單位100,000 代表消耗了 100 percent
deliveryStatus你的應用程式是否真的交付了可用的商品已交付,或數種未交付原因之一
refundPreference你偏好的結果全額核准、按比例核准,或拒絕
customerConsented顧客是否同意共享消耗資料必須為 true,否則 Apple 會忽略其餘內容

為什麼你的回覆對消耗型商品比對訂閱更重要

對自動續訂訂閱來說,Apple 已經算出計費期間過了多少並依靠它。你的消耗回覆多半只是推動一項偏好。對消耗型商品來說沒有可衡量的已經過期間。你送出的 consumptionStatus 幾乎是 Apple 擁有的唯一使用訊號。如果你的伺服器能確切地說顧客消耗了整包的 100 percent,那就是可辯護交易與默默送禮之間的差別。如果 customerConsented 是 false,這些全都不會被讀取,所以同意必須在你的購買流程中,遠早於要求到來之前就取得。

Google Play 這一側,你可以退款但商品早已沒了

Google Play 給開發者的直接控制權比 Apple 多,但幫助卻比你以為的少,因為最快的退款途徑從不會到達你這裡。

48 hours 自助時窗完全繞過你

在購買後的 48 hours 內,Google Play 顧客可以透過商店要求退款,而且往往會自動獲得,無需你的參與。沒有人問你,你也無從置喙,而對消耗型商品來說,這意味著在你知道有要求發生之前,金幣已經花掉、錢也沒了。Voided Purchases API 是你事後得知此事的方式,好讓你撤銷還剩下的任何權益。

退款與撤銷,以及撤銷做不到的事

你可以透過 Play Console 或 Order Management API 自行核發消耗型退款,並附一個可選的撤銷參數把存取權收回。撤銷對會留存的東西運作得很乾淨,例如訂閱或耐久權益。它無法取消消耗型商品的花費。如果顧客已經把金幣變成交付出去的成果,撤銷就沒有東西可以收回,而你只能扛下履行成本,沒有任何銷售來抵銷。

當退單規則改變時,這在金錢上意味著什麼

退款與退單不是同一種損失,而對消耗型商品來說這個落差即將擴大。退款逆轉銷售並通常退還商店佣金。退單是顧客的銀行強行把錢拿回去,而且是最終的。

從 August 3, 2026 起,Google Play 把退單的成本轉嫁到開發者身上:購買價格扣除 Play 服務費,再加上銀行的退單費用。對一件你已經交付的消耗型商品而言,這筆算式非常殘酷。你付了運算來履行它,你失去了購買價格,現在你還要在上頭付銀行的費用。一筆有爭議的金幣包所付的代價,可能比好幾筆售出的所賺的還多。教訓不是事後去對抗退單,那你很少會贏,而是把不滿意的顧客留在退款途徑上,那裡損失較小、商店的抽成會回來,而不是走上爭議途徑,那裡則不會回來。

如何減少消耗型退款造成的損失

你無法阻止商店退款。你能確保的是,當它們退款時,你已經誠實交付、完整回覆,並在問題坐大之前看出型態。

在伺服器端交付並記錄下來

在你驗證交易之後才從你的伺服器授予消耗型商品,並針對交易 id 記錄交付與消耗的時刻。正是那筆記錄,讓你能用真實的 consumptionStatus 而非猜測來回覆 CONSUMPTION_REQUEST。一件你交付了卻無法證明有交付的消耗型商品,是一筆你會預設輸掉的退款。

回覆每一則 CONSUMPTION_REQUEST,而且據實回覆

每一次都在 12 hours 內回覆。回報真實的 consumptionStatus。對一個確實沒收到金幣的顧客誇大使用情況,反而會招來你原本想避開的退單,而退單是更昂貴的結果。誠實、完整、準時。整套打法就是這樣,而且唯有在要求落地之前資料就已備妥,它才管用。

把消耗型商品當作它們自己的退款群組來觀察

把消耗型退款混進你整體的退款率裡,訊號就消失了。要單獨追蹤它們。某一個金幣包或額度級距的退款激增,通常指向某個特定問題,一個壞掉的兌換、一個誤導的價格、一個交付內容比圖示所暗示更少的包。拿消耗型退款對照消耗型銷售,按產品區分,原因通常就一目了然。

精簡版

消耗型應用程式內購買的退款,是在你甚至還沒聽說之前就已經讓你付出代價的那種退款,因為在顧客購買的那一刻,金幣就被花掉、額度就被燒掉、運算就被計費了。Apple 讓你透過 CONSUMPTION_REQUEST 發言一次,為時 12 hours,而對消耗型商品來說那則回覆幾乎是唯一存在的證據。Google Play 讓你退款,卻很少先問你,而從 August 2026 起,一筆消耗型退單的代價比當初的銷售還高。在伺服器端交付、記錄你交付了什麼、據實回覆每一則要求,並把損失留在退款這條道上,而不是爭議那條道上。

常見問題解答

我可以自己退款消耗型應用程式內購買嗎?
在 Google Play 上,可以。你可以透過 Play Console 或 Order Management API 核發消耗型退款,並可選擇撤銷。在 App Store 上,不行。Apple 透過 reportaproblem.apple.com 決定每一筆退款,而你唯一能提供的意見就是 CONSUMPTION_REQUEST 通知,你有 12 hours 可以回覆它。
什麼是 CONSUMPTION_REQUEST,我有多久可以回應?
CONSUMPTION_REQUEST 是當顧客針對消耗型商品要求退款、且已啟用消耗資料共享時,Apple 送出的 App Store Server Notification。你有 12 hours 可以用 Send Consumption Information 回覆,回報 consumptionStatus 與 consumptionPercentage 等欄位。錯過時窗,Apple 就會在沒有你意見的情況下決定。
為什麼我的消耗回覆對消耗型商品比對訂閱更重要?
對訂閱來說,Apple 會算出計費期間過了多少並依靠它,所以你的回覆多半只是設定一項偏好。對消耗型商品來說沒有可衡量的已經過時間,所以你回報的 consumptionStatus 幾乎是 Apple 擁有的唯一使用證據。完全消耗的消耗型商品是你能送出的最有力事實。
如果一筆消耗型退款獲准,我拿得回運算成本嗎?
拿不回。退款逆轉購買價格並通常逆轉商店佣金,但你為交付該消耗型商品所花的運算、API 呼叫與儲存早已被計費,且維持已付狀態。這正是為什麼消耗型退款讓你付出的代價超過銷售價格本身,也是為什麼證明交付是唯一真正的防線。
August 2026 的 Google Play 退單變更如何影響消耗型商品?
從 August 3, 2026 起,Google Play 的退單會把購買價格扣除 Play 服務費,再加上銀行的退單費用,轉嫁到開發者身上。對一件你已經交付的消耗型商品而言,你會同時損失履行成本、銷售價格與銀行費用,所以一筆有爭議的包所付的代價,可能比好幾筆售出的所賺的還多。把顧客留在退款途徑而非退單途徑上,才是較便宜的結果。

資料來源與延伸閱讀

RefundHalt

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

繼續閱讀

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

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