App Store 和 Google Play 的每一个退款窗口都是一场倒计时,下面是每个窗口留给你多少小时
App Store 和 Google Play 的每一笔退款都会启动一个计时,而其中大多数都在你不知情的情况下运行。Apple 最短的退款窗口是 12 小时,Google 的拒付窗口是 24 小时,而从 2026 年 8 月 3 日起,错过一个拒付窗口就是一张账单,而不只是丢掉一笔销售。下面是每一个影响你账户的期限。

要点
- Apple 给你整整 12 小时,通过 Send Consumption Information 来回应一个 CONSUMPTION_REQUEST。错过那个退款窗口,Apple 往往会默认批准退款。
- Google Play 给你 24 小时,通过 orders.reviewrefund 回应一条拒付通知。Google 只记录你的第一次调用,忽略之后的每一次,所以你得到的是一次回应,而不是一场对话。
- Google Play 上 48 小时的自助退款完全在你不参与的情况下运行。买家在 48 小时内提出申请,最快的情况下大约 2 小时,就能拿到自动退款,而你通常根本看不到这个请求。
- 如果你在 3 天内不确认一笔 Google Play 购买,Google 会自行给买家退款并撤销该购买。那个计时跑在你的服务器上,而不是在客户那边。
- Voided Purchases API 只回溯 30 天。它的 startTime 不能设置得早于 30 天前,所以一笔你从未查询过的退款,可能会在唯一记录它的那份列表里过期消失。
- 通过 orders.refund 发起的开发者退款,是唯一一个完全由你掌控的计时,它可以运行 3 年。此后,一笔订单就再也无法通过 API 退款了。
- 从 2026 年 8 月 3 日起,一笔你在 24 小时窗口内未提出异议的 Google Play 拒付,可能让你损失购买价格减去 Play 服务费,再加上银行的拒付手续费。如今你错过一个窗口,是真金白银流出,而不只是丢掉一笔销售。
App Store 和 Google Play 的每一笔退款,都会在某处启动一个计时,而这些计时大多在你不参与的情况下运行。所谓退款窗口,只是一个期限留给你在商店自行决定之前采取行动的时间。Apple 运行的最短窗口是 12 小时。真正让你损失金钱的最短窗口是 24 小时。错过其中任何一个,退款通常都会被默认批准,而在 Google Play 上,从 2026 年 8 月 3 日起,错过一个拒付窗口如今还可能让你额外损失购买价格和银行手续费。下面是每一个影响你账户的退款窗口,每个留给你多长时间,以及它关闭时的代价。
真正会向你索取证据的两个窗口
在两家商店的所有退款流程里,只有两个会停下来问你都知道些什么。两个都很短,两个都容易在不知不觉中错过,而且两个在关闭的那一刻都会把决定权交给商店。如果你要围绕某样东西来构建退款处理,就围绕这两个来构建。
Apple 给你 12 小时来发送消费信息
当客户对一笔消耗型购买或某些非续期购买申请退款时,Apple 会通过 App Store Server Notifications V2 向你的服务器发送一个 CONSUMPTION_REQUEST。从那一刻起,你有 12 小时通过 Send Consumption Information 端点回复 Apple 所要求的信号。及时回应,你的数据就会参与决策。保持沉默,正如 Apple 自己的工具合作伙伴直白地说的那样,Apple 往往会默认批准退款。计时器不会在意通知是在你当地时间凌晨 3 点到达的。
Google Play 给你 24 小时来审查拒付
当买家向银行对一笔扣款提出争议时,Google Play 可能会在它去抗辩拒付之前请你发表意见。Google 的指引很明确:评估该请求,并在通知发出后的 24 小时内通过调用 orders.reviewrefund 作出回应。机制上还有一个要注意的地方。Google 会记录你针对一条通知的第一次 API 调用,并忽略后续的调用,同时仍然返回 OK 状态。你不会有草稿再修订的机会。你的第一次回答就是你唯一的回答。
那些从不征询你就关闭的窗口
其余的退款计时都不是邀请。它们自行运行,等到你能看到它们时,结果早已定局。了解它们仍然重要,因为每一个都在把钱从你的账户里搬走。
48 小时的自助退款
在 Google Play 上,买家可以自己退掉大多数应用和应用内购买,直接从商店操作,在购买后的 48 小时内完成。最快的情况约 2 小时就处理完毕。Google 会自动批准这些退款,而且在其中大多数情况下根本不会联系开发者。这里没有留给你提出异议的窗口,因为这个窗口从来就不是你的。它是买家的。
3 天的确认期限
这一个很容易被忘记,因为它看起来像是一个工程细节,而不是退款。如果你使用 Google Play Billing,并且在 3 天内不确认一笔购买,Google 就会给买家退款并为你撤销这笔购买。一个你忘了在后端确认的、已经交付的功能,到第四天就会变成一笔自动退款。这个计时跑的是你服务器的行为,也就是说,你确认流程里一个悄无声息的 bug,正在悄无声息地把钱退回去。
30 天的作废购买窗口
当一笔购买被退款或撤销时,Voided Purchases API 是你的后端事后得知此事的途径。那份列表只有 30 天的记忆。它的 startTime 不能设为早于 30 天前的值,而且记录是按 Google 看到该购买作废的时间来筛选的,而不是按它被购买的时间。如果你的服务器停止查询一个月,那段空档里的退款就会从末端掉出去,你永远不会知道它们发生过。
唯一一个由你掌控的计时,它运行三年
恰好有一个退款窗口是你从头到尾拥有的。使用 orders.refund,你可以自己退掉一笔 Google Play 订单,按你自己的节奏,在购买后的 3 年内进行。Google 不会问为什么。过了第三年,这笔订单就永久无法触及了,所以即便是你掌控的计时也有一个硬性终点。当你已经预料到要损失一笔订单时,这就是该动用的窗口,因为你主动发起的退款,比你输掉的一场拒付更便宜,下一节会把这一点用数字说清楚。

错过一个窗口在金钱上的代价
退款从来不只是销售价格重新流出去。等到一笔退款落地时,你通常已经为服务那笔购买花过钱了。一张生成图像背后的 GPU 分钟数、模型 API 调用、用户保存内容的存储、你付给创作者的分成:那笔支出已经花掉,不会随退款一起回来。窗口决定的是,你是否还要在此之上损失销售价格,以及是否有一笔银行手续费一同附带。
24 小时的拒付窗口,就是那个数字发生了变化的窗口。Google Play 的帮助文档对新的分摊说得很直接:对于在 2026 年 8 月 3 日当天或之后下的订单,当一笔拒付成立时,开发者承担购买价格减去 Play 服务费,再加上金融机构收取的相关拒付手续费,而 Google 仍然只承担它自己的服务费。在那个日期之前,损失的是那笔销售。在那之后,一笔你没有提出异议的拒付,就是销售加上银行的手续费。
| 你错过的窗口 | 谁的计时 | 它让你损失什么 |
|---|---|---|
| CONSUMPTION_REQUEST,12 小时 | 你的 | 退款,通常被默认批准,再加上你为服务该购买已经花掉的一切 |
| 拒付审查,24 小时 | 你的 | 购买价格减去 Play 服务费,再加上银行的拒付手续费,适用于 2026 年 8 月 3 日起的订单 |
| 自助退款,48 小时 | 买家的 | 那笔销售,被自动退款,没有留给你行动的窗口 |
| 确认,3 天 | 你服务器的 | 那笔销售,被自动退款并撤销,往往是一笔你本想保留的购买 |
| Voided Purchases 回溯,30 天 | 你的,靠查询 | 不是退款本身,而是关于它的信息,于是一个你本应切断的访问权仍然有效 |
一屏看尽每一个退款窗口
六个计时,三个你可以在其中行动,三个作用在你身上。放在一处,它们就容易记在脑子里,而且规律很清楚:给你发言权的窗口以小时计,而以天计的那些早已作出了决定。
| 退款窗口 | 有多长 | 谁行动 | 错过它就 |
|---|---|---|---|
| CONSUMPTION_REQUEST(Apple) | 12 小时 | 你 | Apple 往往默认批准退款 |
| 拒付审查,orders.reviewrefund(Google) | 24 小时 | 你 | Google 在没有你的证据下作出决定,且从 2026 年 8 月 3 日起,输掉一场拒付会向你收取价格加银行手续费 |
| 自助退款(Google) | 48 小时 | 买家 | 无事可做;退款是自动的,你很少看到它 |
| 购买确认(Google) | 3 天 | 你的服务器 | Google 自动退款并撤销该购买 |
| Voided Purchases API 回溯(Google) | 30 天 | 你,靠查询 | 那笔作废订单从列表中过期消失,你永远不会知道它被退款了 |
| 开发者退款,orders.refund(Google) | 3 年 | 你 | 这笔订单再也无法通过 API 退款了 |
如何确保你永远不会错过那两个要紧的窗口
你赢不了那些从来就不属于你的窗口,所以把力气花在那两个属于你的上面。两个都以通知的形式送到你面前,两个都会惩罚迟缓的回应,所以整场博弈就是在有人醒来之前,把一条通知变成一次自动回应。
在 12 小时内接住 CONSUMPTION_REQUEST
- 订阅 App Store Server Notifications V2,并把 CONSUMPTION_REQUEST 当作紧急事项对待,而不是队列里又一个事件。
- 把 Apple 所要求的消费信号准备好,可以随时按需组装,这样回复就是一次查询,而不是一个研究项目。
- 在 12 小时内留有余地地通过 Send Consumption Information 回应,并记录这次回应,因为一次无声的错过,与日后一笔被批准的退款无法区分。
在 24 小时内接住拒付
- 监听拒付通知,并把它路由到一个无论白天黑夜都能触发回应的地方,因为那 24 小时跑的是时钟,而不是你的办公时间。
- 调用 orders.reviewrefund 一次,附上你的退款倾向和任何购买使用证据,并一次就做对,因为 Google 只保留你的第一次调用。
- 记录下你已经回应过,这样日后输掉一场拒付时,那是一个你可以复盘的决定,而不是一个谜。
无论你是否在盯着,商店都会继续运行这些计时。你唯一能做的选择,是那两个征询你这一方说法的窗口,是找到一个早已等候的答案,还是遇到沉默,然后在没有你的情况下作出决定。
常见问题解答
- 我有多长时间来回应 Apple 的退款请求?
- 十二小时。Apple 的 CONSUMPTION_REQUEST 给你 12 小时,通过 Send Consumption Information 端点回复,如果你错过那个窗口,Apple 往往会默认批准退款。
- 我有多长时间来抗辩 Google Play 的拒付?
- 24 小时。你要在通知发出后的 24 小时内通过调用 orders.reviewrefund 来回应,而 Google 只记录你的第一次调用,所以你的第一个回答才是算数的那个。
- 我能在最初的 48 小时内拦下一笔 Google Play 退款吗?
- 不能。48 小时的自助退款由 Google 自动批准,不会征询开发者,所以没有留给你提出异议的窗口。你通常甚至不会看到这个请求。
- 如果我没有及时确认一笔 Google Play 购买会怎样?
- 3 天后,Google 会给买家退款并撤销该购买。确认期限跑在你的服务器上,所以一笔未确认的购买会变成一笔自动退款,无论你是否有意如此。
- Voided Purchases API 最远能显示多久以前的退款?
- 30 天。该 API 的 startTime 不能设置得早于 30 天前,而且记录是按 Google 看到该购买作废的时间来筛选的,所以一笔你从未查询过的退款可能会彻底从列表中过期消失。
- 我自己能在多长时间内为一笔 Google Play 订单退款?
- 三年。orders.refund 方法允许你为任何不超过三年的订单退款,此后该订单就永久无法通过 API 触及了。
来源和延伸阅读
- Apple Developer: Send Consumption Information (App Store Server API)
- Android Developers: Help Google dispute chargebacks (orders.reviewrefund)
- Play Console Help: Updates to refund protection and chargeback cost responsibility
- Android Developers: One-time purchase lifecycle and acknowledgment
- Google Play Developer API: Voided Purchases API
- Google Play Developer API: Method orders.refund
- Google Play Help: Learn about Google Play refund policies
RefundHalt
App Store 和 Google Play 退款自动驾驶
继续阅读
作废购买通知让你的 Google Play 服务器在退款到账的那一刻撤销访问权限
Google Play 可以在一笔购买被退款、发生拒付或被作废的瞬间,向你的服务器推送一条作废购买通知。它携带 purchaseToken、orderId、productType 和 refundType,只意味着一件事,撤销访问权限。下面介绍如何解读它并接入它。
你可以自己给 Google Play 订单退款,在拒付发生前处理还能省下银行手续费
对任何三年以内的 Google Play 订单,你都可以用一次 API 调用退款,退款时可选择是否撤销访问权限。在争议演变成拒付之前自己先退款,能省下从 2026 年 8 月 3 日起落到开发者头上的银行手续费。下面讲讲 orders.refund 的用法。