所有文章
Deep dive阅读需 8 分钟

年度订阅退款可以一次性追回整整一年的付款,而且每家商店的处理方式各不相同

月度套餐退回一个月。年度订阅退款按最后一笔扣款计算,因此在年度套餐上那就是一整年。下面介绍 Google Play 和 App Store 各自如何决定退款、你能控制什么,以及被撤销一整年真正的代价是多少。

书桌上方挂着一个十二个月的挂历,下方放着一张银行卡,形象地展示了年度订阅退款追回整整一年

要点

  • 年度订阅退款按客户最近一笔扣款计算。在年度套餐上,那笔扣款就是一整年,因此全额退款会一次性退回十二个月的付款,而不是单单一个月。
  • 在 Google Play 上由开发者选择退款类型。fullRefund 退回当前计费周期的 100%,而 proratedRefund 只根据剩余权益时间退回未使用的部分。无论哪一种都会立即撤销访问权限。
  • 在 App Store 上开发者根本无法退款。客户在 reportaproblem.apple.com 提交申请,只有 Apple 决定,而且 Apple 通常在 24 到 48 小时内答复。没有面向开发者的退款 API。
  • 在购买后的 48 小时内,Google Play 买家每个应用可以自助办理一次退款。Google 会发放退款、撤销访问权限,并从你的收款中扣除,无需征求你的意见。
  • Apple 根据已过去的时间计算自动续订订阅的消耗量,因此在年度套餐上你唯一的输入就是 12 小时的消耗请求。你从不设定退款金额。
  • 被退款的年度套餐是你单个案例中最大的损失,因为你在数月使用中已经花掉的计算、存储和支持,并不会随着钱一起回来。

年度订阅退款是大多数应用业务所见过的最大的单笔撤销。出问题的月度套餐退回一个月。年度套餐可以一次性退回十二个月,因为退款是按客户支付的最后一笔扣款计算的,而在年度套餐上那笔扣款就是一整年。当那笔付款离开你的账户时,它还带走了一位你已经花了数月、真金白银去服务的订阅用户。

两家商店处理年度退款的方式几乎相反。在 Google Play 上你往往可以选择退回多少。在 App Store 上你什么都选不了,因为只有 Apple 决定。下面就是每家商店对年度订阅退款究竟怎么做、你能控制什么,以及被撤销一整年实际会让你付出多少代价。

年度退款按最后一笔扣款计算,而不是按日历计算

年度套餐的陷阱在于,退款并不是按订阅已经运行了多久来计算的。它是按最近的订单来计算的。Google 在其撤销流程中说得很清楚:用户退款以最新订单的金额为准。在年度订阅上,最新订单就是全年价格,因此在第九个月批准的全额退款仍会退回整整一年,而不是剩下的三个月。

这就是为什么单笔年度退款可能让一个月的月度套餐流失相形见绌。一份 $99.99 的年度套餐若全额退款,就是在一行里损失 $99.99。同样的收入若分摊到十二笔月度扣款上,任何时候最多只暴露一个月。年度定价用更高的预付款换来了更大的单点故障,而退款正是这一故障落地之处。

Google Play 如何为年度订阅退款

Google Play 把年度退款分为两个阶段,而这两个阶段受完全不同的规则约束。

48 小时自助窗口退回全部扣款

在购买后的头 48 小时内,客户可以直接从 Google Play 申请退款。Google 的政策允许每个应用办理一次,且由 Google 按其自身条款处理。不会征求你的意见。Google 发放退款,买家失去对订阅的访问权限,金额从你的收款中扣除。对于两天前购买的年度套餐,那就是整笔年度扣款被退了出去,且在没有你任何输入的情况下作出决定。

48 小时之后,你选择全额或按比例

自助窗口关闭后,Google Play 的退款会转到开发者手中,这时你才拿到一个真正的杠杆。使用 Play Developer API 方法 purchases.subscriptionsv2.revoke,你传入一个指明退款类型的 revocationContext:

  • fullRefund 退回当前计费周期的 100% 并终止订阅。在年度套餐上,那就是一整年。
  • proratedRefund 只根据剩余权益时间退回未使用的部分,并立即终止访问权限。在中途取消的年度套餐上,那大约是全年价格的一半。

这两个操作都会立即撤销订阅,并且都会触发一条 SUBSCRIPTION_REVOKED 实时开发者通知,所以你的服务器会得知权益已经消失。区别在于钱。在年度套餐上,选择 proratedRefund 而不是 fullRefund,就是退回一整年和只退回客户不会使用的那几个月之间的差别。

退款类型API 字段在年度套餐上退回什么由谁决定
自助,48 小时内Google,不是你整笔年度扣款Google,每个应用一次
全额退款fullRefund全年价格的 100%你,48 小时之后
按比例退款proratedRefund仅未使用的部分你,48 小时之后
一排整齐的十二枚相同硬币,末端有三枚滑出队列,形象地展示了年度订阅退款把数月的付款抽走

App Store 如何为年度订阅退款

在 Apple 这里没有第二阶段,因为根本不存在面向开发者的退款。想要拿回年度 App Store 订阅费用的客户会在 reportaproblem.apple.com 提交申请,由 Apple 审核并决定。Apple 通常在 24 到 48 小时内给出答复。没有开发者退款按钮,没有退款 API,你也无法设定金额。

在这里有两件事让开发者栽跟头。第一,取消订阅和退款不是一回事。取消年度套餐的客户只是停止下一次续订,并保留访问权限直到当年结束。没有资金流动。退款是 Apple 独自裁定的另一项请求。第二,Apple 不公布订阅退款的按比例计算公式,因此你无法预测客户会拿到整整一年、其中一部分,还是一分都拿不到。这是逐案决定的。

你与那个决定唯一的接触点就是消耗请求。当有人对自动续订订阅申请退款时,Apple 会发送一条 CONSUMPTION_REQUEST 通知,并给你的服务器 12 小时的时间通过 Send Consumption Information 端点作出答复。对于自动续订订阅,Apple 会自行根据已过去的时间计算消耗量,因此你发送的是交付和账户信号加上你的退款偏好,而不是使用百分比。它是 Apple 决定的一项输入,绝不是对该决定的否决权。

年度订阅退款实际会让你付出多少代价

标价数字只是账单的开始。被退款的年度套餐会撤销那笔付款,但你为赢得并服务那位订阅用户而早已花出去的成本并不会随之撤销。

会回来的钱,和不会回来的钱

当一份年度套餐被全额退款时,付款回到客户手中,这笔销售也从你的账簿上离开。不会回来的是订阅存续的那几个月里你早已花掉的一切:客户运行的每一次会话的计算、你的应用代表他们发起的 API 调用、你为其账户保留的存储,以及任何你早已入账为收入的收款。在年度套餐上,这些成本会在退款到来之前累积数月,而这正是年度退款比月度退款更昂贵的原因。你不仅是在退回一笔付款,还要在此之上承担数月已经交付的服务。

这正是 Google 的 proratedRefund 发挥作用的地方。如果客户确实在一年中途停止使用产品,按比例退款会把你的损失限制在未使用的部分,而不是整笔扣款,同时仍然终止权益。在 Apple 上你没有这样的控制权,因此一笔获批的年度退款就是你要整块吸收的一整年撤销。

2026 年 8 月 3 日之后,在 Google Play 上被争议的年度扣款代价还会更高

如果客户跳过退款流程,转而向其银行争议这笔扣款,那么在 Google Play 上账就更难算了。对于 2026 年 8 月 3 日之后下的订单,Google 会把拒付成本转嫁给开发者:你要承担购买价格减去 Play 的服务费,再加上银行的拒付费。支付行业的资料把那笔银行费用定在每笔争议大约 $15 到 $25,而在整整一年的扣款上,它是叠加在一个远比月度套餐所暴露的更大的被撤销金额之上。Google 通过 orders.reviewrefund 流程,向开发者指出其 24 小时拒付审查,作为对不正当争议提出异议的方式。

每个案例的暴露月度套餐年度套餐
因全额退款而被撤销的付款一个月一整年
已经花出去的交付成本大约一个月的使用最多一年的使用
2026 年 8 月 3 日之后的 Google 拒付一个月,减去服务费,加上银行费一年,减去服务费,加上银行费

在年度套餐上你的证据唯一算数的窗口

大多数年度退款都是在没有你参与的情况下决定的:Google 的 48 小时自助退回、支持人员批准的退款,以及 Apple 自行批准的任何退款。那些是商店的决定,不是你输掉的战斗,事后再多的证据也改变不了它们。恰恰有两个时刻,你所发送的内容会成为决定之前一项有记录的输入。

  • 当有人申请订阅退款时,Apple 的消耗请求给你 12 小时来发送交付和账户信号加上你的退款偏好。
  • 当买家向其银行争议一笔扣款时,Google 的拒付审查给你 24 小时通过 orders.reviewrefund 发送证据。

在高价值的年度套餐上,这两个窗口每次都值得回应,因为攸关的金额是一整年而不是单单一个月。这两个窗口之外的一切都是记账,而不是较量。

EEA 和 UK 的买家在哪里改变账面

消费者法律并不止步于商店的政策。在欧洲经济区和英国,法定撤回权让买家在撤销一笔购买时有更坚实的立足点,Google Play 也为这些地区发布了一份与之匹配的单独退款政策。对于卖给那里客户的年度套餐,应假定退款途径可能比标准的 48 小时规则对买家更宽厚,并把这些退款当作由商店决定的,而不是可争辩的。

如何在你的数字中解读年度退款

年度退款不应与月度退款以同样的方式记录,因为暴露并不相同。

  • 按金额而不是按数量来衡量年度退款。一笔整年的撤销可能超过几十笔月度退款,因此年度套餐上较低的退款数量仍可能是一处巨大的资金漏洞。
  • 在 Google Play 上,对于真正的年中取消默认使用 proratedRefund,把 fullRefund 留给那些确实应该退回整笔扣款的情况。这个选择是你留住还是送出的钱。
  • 把由商店决定的退款和那两个可争辩的窗口区分开。只根据你回应过的消耗请求和拒付审查来评判你的防御,绝不要根据 Apple 或 Google 自行发放的退款来评判。
  • 继续快速提供证据。在年度套餐上,12 小时和 24 小时的计时和任何其他套餐一样长,但押在上面的金额是一整年。

这就是 RefundHalt 处理年度套餐的方式。高价值的消耗请求和拒付审查会连同其截止时间率先显示,年度退款按金额来衡量而不是按数量一并归堆,而商店在没有你参与的情况下决定的退款会被单独记录,这样你的账簿是完整的,而不会假装你本可以去争取它们。

简短版

年度订阅退款按最后一笔扣款计算,因此在年度套餐上全额退款会一次性退回一整年。在 Google Play 上,头 48 小时之后你可以选择结果:fullRefund 退回一整年,proratedRefund 只退回未使用的部分,两者都会立即撤销访问权限。在 App Store 上你什么都选不了,因为只有 Apple 决定,而你唯一的输入是 12 小时的消耗请求。真正的代价比那笔付款更大,因为你早已花掉的数月计算、存储和服务不会随着钱一起回来。按金额衡量年度退款,在案例真实时按比例退款,并回应每一个可争辩的窗口,因为在年度套餐上攸关的始终是一整年。

常见问题解答

我可以自己为年度订阅退款吗?
这取决于商店。在 Google Play 上你可以,使用 Play Developer API 方法 purchases.subscriptionsv2.revoke,并且你选择 fullRefund 或 proratedRefund。在 App Store 上你不可以。没有面向开发者的退款 API,因此客户必须在 reportaproblem.apple.com 提交申请,且只有 Apple 决定金额。
在年度套餐上全额退款会退回一整年吗?
会,当退款是全额退款时。退款以客户最新订单的金额为准,而在年度套餐上那笔订单就是全年的扣款。在 Google Play 上,fullRefund 退回当前计费周期的 100%,也就是一整年。在 App Store 上,Apple 逐案决定金额,并且可以退回整整一年。
在 Google Play 上 fullRefund 和 proratedRefund 有什么区别?
fullRefund 退回当前计费周期的 100% 并结束订阅。proratedRefund 只根据剩余权益时间退回未使用的部分,同样会立即结束访问权限。在中途取消的年度套餐上,fullRefund 退回一整年,而 proratedRefund 大约退回剩下的一半。
我可以阻止 Apple 为年度订阅退款吗?
不能。只有 Apple 可以批准或拒绝 App Store 退款,而且没有办法阻止退款。你唯一的输入是 CONSUMPTION_REQUEST 通知,它给你的服务器 12 小时通过 Send Consumption Information 端点发送交付和账户信号加上你的退款偏好。Apple 把它当作一项输入,而不是否决权。
取消年度订阅会退回未使用的月份吗?
不会。取消只是停止下一次续订,客户会保留访问权限直到当年结束。没有资金流动。退款是另一项请求。Apple 不公布订阅退款的按比例计算公式,因此年中取消不会自动退回未使用的部分。

来源和延伸阅读

RefundHalt

App Store 和 Google Play 退款自动驾驶

继续阅读

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

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