所有文章
Playbook阅读需 7 分钟

App Store 和 Google Play 的每一个退款窗口都是一场倒计时,下面是每个窗口留给你多少小时

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

深色书桌上一部手机旁摆着几只老式机械秒表和一只挂钟,把 App Store 和 Google Play 的每个退款窗口比作一场倒计时

要点

  • 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 触及了。

来源和延伸阅读

RefundHalt

App Store 和 Google Play 退款自动驾驶

继续阅读

下一项退款请求已经在路上。

读完又一封关于未能申辩退款的支持邮件所需的时间,足够您完成 RefundHalt 设置。