非续订订阅把到期、续购和每一笔退款都甩给你,来看看它真正的代价
App Store 上的非续订订阅,以及它在 Google Play 上的表亲预付费方案,只收一次费,永不续订。这就把到期倒计时、续购和退款全都压到了你头上。下面讲清楚每个商店的退款如何运作、未使用预付费的规则,以及固定期限模式的实际成本。

要点
- 非续订订阅是一次性收费,授予一段固定时长的访问权限,然后就停止。Apple 不会续订它,也不会追踪它的到期时间,所以倒计时、续购提示以及销售之后的一切都由你的服务器负责。
- Google Play 对同一思路的版本叫预付费方案,它同样不会自动续订。要保持访问权限,客户需要购买一次充值,这会再次按全价收费,并按充值的时长延长权益。
- Google Play 允许客户对尚未使用的预付费方案申请退款。已使用的预付费方案通常无法退款,但未动用过的可以,所以一个充了值却从不打开应用的买家可以把钱拿回去。
- 对预付费购买错过 Google 的确认截止时间,Google 就会撤销这次充值,取消剩余的订阅,并给客户退款。时长一周或以上的方案必须在 3 天内确认,更短的方案要在其时长的一半时间内确认。
- 在 Google Play 上,普通退款和撤销并不是一回事。退款可以让客户的访问权限一直保留到期限结束,而撤销,包括拒付,会立即切断访问权限。
- 固定期限模式消除了非自愿流失,因为没有续订可以失败,但它把留存的责任转移到了你身上。每一次续用都是重新决定付费,所以流失的客户是无声流走的收入,而不是一笔你可以重试的失败扣款。
- 在两个商店上,你都在第一天就把整段期限的价值交付出去,所以一份几乎没用过的固定期限被退款,仍然会追回你已经开始花掉的钱。
你读到的大多数订阅建议,都假设商店负责续订。非续订订阅有意打破了这个假设。非续订订阅只向客户收一次费,授予一段设定时长的访问权限,然后就直接结束。Apple 不会再次扣费,不会发送续订,甚至不会去记录访问权限何时用完。最后这一点就是坑所在。当你选择这个模式的那一刻,到期倒计时、续购提醒,以及退款之后的收尾,全都从 Apple 的服务器搬到了你的服务器上。
Google Play 有着同样的形态,只是换了个名字,叫预付费方案,而且它带着一个退款上的小怪癖,可以把钱退还给一个从没用过所购之物的客户。下面讲讲非续订订阅和预付费方案在每个商店上实际是怎么运作的,退款会对它做什么,以及一旦你算上第一天就交付出去的价值,固定期限模式究竟会花你多少钱。
为什么非续订订阅是一次性收费却表现得像订阅
在各种应用内购买类型中,非续订订阅处在一个奇怪的位置。它不是消耗型项目,因为它授予的是时间而不是某种数量的东西。它也不是自动续订订阅,因为没有任何东西会续订。Apple 自己的描述很直白:非续订订阅让客户在有限的一段时间内访问内容或服务,并且不会自动续订。一张季票、一个月的档案库访问、一门解锁 90 天的课程,这些都是天然契合的场景。
让它名义上算作订阅的,是谁在计时。对于自动续订订阅,Apple 会追踪到期时间、向银行卡扣费,并通过 App Store Server Notifications 告诉你续订是成功还是失败。对于非续订订阅,这些都不会发生。Apple 把这笔销售交给你,然后就退到一边。你的服务器必须记录访问期何时结束、在那一刻切断访问权限,并决定是否以及如何邀请客户再次购买。因为 Apple 不盯着倒计时,Apple 那边没有任何机制阻止客户把同一份非续订订阅买两次,所以防止重叠也是你的活。
每个商店如何运行固定期限订阅
Apple 把它叫作非续订订阅
在 App Store 上,你像设置任何其他应用内购买一样,在 App Store Connect 里设置一份非续订订阅,给它一个时长,然后出售。这笔收费是单次付款。期限结束时,客户什么也留不下,除非再买一次,而再买一次是一次全新的购买,不是 Apple 替你安排的续订。没有扣费重试,没有宽限期,也没有账号保留,因为没有可以重试的周期性扣费。那些安全网只对自动续订订阅存在。
Google Play 把它叫作预付费方案
Google Play 的预付费方案,就是内建于 Play Billing 中的同一种固定期限思路。预付费方案不会自行续订。要让访问权限持续下去,客户需要购买一次充值,而 Google 对此的运作方式说得很明确。充值会立即按全价收费,并按充值的时长延长权益。一次充值会拿到一个新的购买令牌,旧的令牌保存在 linkedPurchaseToken 字段里,好让你把历史记录串接起来。用户没法像取消自动续订那样取消预付费方案。它就是在付费时间用完时直接到期。
Google 还对确认一笔预付费购买设了一条硬性截止时间,错过的惩罚就是一笔退款。一周或更长的预付费方案必须在 3 天内确认。短于一周的预付费方案必须在其时长一半的时间内确认,所以一个三天的方案给你一天半。错过这个窗口,Google 就会撤销这次充值、撤销并取消剩余的订阅,并给客户退款。那不是客户改了主意。那是一次集成上的疏忽,把整笔销售整个拆掉。
| 方面 | Apple 非续订订阅 | Google Play 预付费方案 |
|---|---|---|
| 是否自动续订 | 否 | 否 |
| 客户如何延长 | 作为新购买再买一次 | 按全价购买一次充值 |
| 谁追踪到期时间 | 你的服务器 | Google,通过 API 读取 |
| 扣费重试或宽限期 | 无 | 无 |
| 确认截止时间 | 标准的完成交易步骤 | 3 天,或不足一周时为方案时长的一半 |
| 客户能否中途取消 | 不适用,没有周期性 | 否,它会自行到期 |
| 购买令牌有效期 | 由你管理 | 到期后 60 天内有效 |
退款会对固定期限订阅做什么
在 App Store 上,退款要走 Apple
想要拿回非续订订阅钱款的客户不会先来找你。他们会在 reportaproblem.apple.com 提交申请、选一个理由,然后由 Apple 审核这个请求并做出决定。你不批准它,而且对于非续订订阅,不像消耗型退款那样会有一个在决定之前向你索要使用凭证的商店通知。如果 Apple 批准了,你会在自己这边和报告里作为一笔退款得知此事。因为你自己的服务器是唯一记录访问期的地方,你还得决定一笔被退款的非续订订阅对访问权限意味着什么,并自己去执行。
在 Google Play 上,退款和撤销是不同的操作
Google Play 把大多数人所说的退款拆成了两种不同的结果,而这个区别决定了客户能否继续使用你的应用。一次直接退款可以让客户的访问权限保留到付费期限结束。一次撤销,你可以通过 API 触发它,拒付所做的也是撤销,会立即结束访问权限,而且 Google 让你在它落地的那一刻就切断权益。所以一个被退款的预付费客户可能仍在使用你给他的内容,也可能当场被锁在外面,取决于走的是哪条路径。
你预料不到的未使用预付费退款
Google 加了一条很容易漏掉的例外。客户可以对尚未使用的预付费方案申请退款,尽管已使用的预付费方案通常无法退款,而且过去的订阅扣费通常成立。除此之外,Google Play 上的自助退款路径又短又窄:客户可以在 48 小时内退回一笔购买,而且每个应用只能一次。过了这个点,请求就转给你。但未使用预付费的规则不在那个窗口之内,所以一个充了值却从不打开应用的买家,有一条干净利落的路把整笔付款拿回去。
固定期限模式究竟会花你多少钱
固定期限订阅的账算法和自动续订的不一样,而且是以一种很容易定价过低的方式不一样。
你在第一天就交付整段期限
当有人购买一个月的访问权限、一张季票或一个 90 天的解锁时,你从第一次点击起就欠了他整段期限。算力、API 调用、存储,以及你的应用背负的任何按用户计的成本,都消耗在一个你只在开头被付过一次费的时间窗里。对那笔购买的退款不会把你已经服务过的天数还给你。如果一个客户用掉了一张三十天通行证中的两天,然后 Apple 退了款,或者 Google 撤销了它,你既损失了价钱,也损失了那两天的成本,而且没有任何按比例分摊会给你切回一块来。固定期限收入在整段期限内都保持完全可逆,而它背后的价值已经在离开你的预算了。
你自己造成的退款
预付费确认规则把一段代码路径变成了一笔退款。如果你的服务器没有及时确认一笔预付费购买或充值,Google 不只是警告你。它会撤销这次充值、取消订阅的剩余部分,并给客户退款,全都一起发生。那是一笔你已经成交、随后又因为一次错过的回调而丢掉的销售,而修复完全在你这边。要在服务器端确认,要快,绝不要依赖用户重新打开应用来触发它。在一个短的预付费方案上,窗口可能只有一天半,一条慢吞吞的确认流水线就是一个长期存在的退款风险。

没有非自愿流失,但留存现在要靠手动
有一个实实在在的好处值得抓住。固定期限订阅不会非自愿流失,因为没有可以失败的续订扣费。那些被拒的银行卡、扣费重试和账号保留,它们悄悄结束了一部分自动续订订阅,在这里根本不适用。没有人会因为卡过期而被锁在外面。代价是留存不再自动。每一次续用都是重新决定付费,所以一个流失的客户不会作为一笔你能挽回的失败扣款出现。他们什么都不作为地出现,一段本该有续订的地方留下的无声空缺。把他们赢回来是一个你得自己搭建、自己把握时机的提示,而你不去追的收入,就是根本不会到来的收入。
| 事件 | 访问权限会发生什么 | 你的钱会发生什么 |
|---|---|---|
| Apple 退款一份非续订订阅 | 由你在自己的服务器上决定并执行 | 全价撤销,已服务过的天数不退回 |
| Google 退款但不撤销 | 访问权限可保留到期限结束 | 价钱已退,权益可能仍在使用 |
| Google 撤销或拒付 | 立即切断访问权限 | 价钱撤销,且拒付还加一笔银行费用 |
| 预付费充值未及时确认 | 剩余订阅被撤销并取消 | 充值和剩余余额都退款 |
| 未使用的预付费方案,客户申请退款 | 什么都没用过 | 全额付款退还 |
| 固定期限直接到期 | 访问权限按计划结束 | 收入终于归你留下 |
所有这些事件,退款、撤销、拒付、到期,都会到达 RefundHalt 已经在监听的同一批 App Store Server Notifications 和 Real-time Developer Notifications 上。非续订订阅和预付费方案不会藏起它们的退款,它们像任何其他购买一样报告这些退款。读取这些数据流,就是你如何把一个商店不再追踪倒计时的模式,变成一个你始终知道哪些固定期限销售变成了收入、哪些又退了回来的模式。
简短版
App Store 上的非续订订阅,以及 Google Play 上的预付费方案,是为一段固定访问时长收取的单次费用,永不续订。Apple 不追踪到期时间,所以你的服务器来追踪。Google 允许客户为一份未使用的预付费方案退款,而且如果你错过确认截止时间,它会把整笔都退掉。Google 的退款可以让访问权限继续运行,也可以作为一次撤销或拒付立即切断它。没有非自愿流失要去对抗,但也没有自动续订,所以留存是一个由你负责的提示。你在开头就交付整段期限,而一笔退款会追回你已经开始花掉的钱,所以要按第一天的成本给这个模式定价,而不是按标价上的那笔销售。
常见问题解答
- 什么是 App Store 上的非续订订阅?
- 非续订订阅是一种应用内购买,它授予对内容或服务在一段固定期限内的访问权限,然后结束,不会续订。Apple 只向客户收一次费,并且不追踪到期时间,所以你的应用必须记录访问期何时结束、切断访问权限,并在你想把他们赢回来时提示客户再次购买。
- 非续订订阅和自动续订订阅有什么区别?
- 自动续订订阅会自行续订,Apple 负责扣费、重试和到期追踪。非续订订阅只收一次费然后停止,销售之后生命周期的每一部分,到期、续购提示,以及退款后强制执行访问权限,都是开发者的活。Google Play 的预付费方案是与非续订订阅最接近的对应物。
- 能给 Google Play 预付费方案退款吗?
- 在特定情况下可以。客户可以对尚未使用的预付费方案申请退款,尽管已使用的预付费方案通常无法退款,而且过去的订阅扣费通常成立。Google 的自助退款也覆盖大多数购买,在 48 小时内且每个应用只能一次。此外,如果你错过预付费购买的确认截止时间,Google 会自动退款。
- 退款会终止客户对固定期限订阅的访问权限吗?
- 并非总是。在 Google Play 上,一次普通退款可以让访问权限保留到付费期限结束,而一次撤销或拒付会立即结束访问权限,并且 Google 让你马上移除权益。在 App Store 上,你的服务器是唯一存放访问期的地方,所以由你来决定并执行一份被退款的非续订订阅对访问权限意味着什么。
- 非续订订阅有非自愿流失吗?
- 没有。非自愿流失来自一笔失败的续订扣费,而非续订订阅和预付费方案永远不会自动续订,所以没有可以失败的扣费,也没有扣费重试或账号保留。代价是留存要靠手动:每一次续用都是一次新的购买,所以一个不再回来的客户是无声流走的收入,而不是一笔你能挽回的失败付款。
来源和延伸阅读
- Apple Developer Documentation: StoreKit Product.ProductType.nonRenewable (the non-renewing subscription product type, time-limited access that does not renew automatically)
- Apple App Store Connect Help: Create non-renewing subscriptions (non-renewing subscriptions give access to content or a service for a limited period and the developer manages renewal and expiry)
- Apple Support: Request a refund for apps or content that you bought from Apple (the reportaproblem.apple.com path Apple reviews and decides)
- Google Play Billing: About subscriptions (prepaid plans do not auto-renew, top-ups charge full price and extend entitlement, and the 3-day and half-duration acknowledgment deadlines that trigger a revoke and refund when missed)
- Google Play Billing: Subscription lifecycle (the purchase token is valid until 60 days after expiration, and a revoke or chargeback means removing the entitlement immediately)
- Google Play Help: Cancel, pause, or change a subscription on Google Play (a customer can request a refund on an unused prepaid plan, and access continues for the time already paid for)
- Google Play Help: Apps, games, and in-app purchases refund policies (the 48-hour self-service refund window and the once-per-app limit)
RefundHalt
App Store 和 Google Play 退款自动驾驶
继续阅读
应用预购在上线当天之前算不上成交,其中不少会在扣款前就流失掉
在 App Store 和 Google Play 上,应用预购在上线之前不收取任何费用,买家在上线前可以随时免费取消。发布时被拒付的卡会让更多订单被取消。以下讲清楚应用预购和预注册到底是怎么运作的,以及这道缺口给你的发布带来多大代价。
Google Play 给每位买家一个你无法关闭的退款窗口,这会让你付出什么代价
在 Google Play 上,买家可以在 48 小时的窗口内申请退款,Google 可以不经你同意就予以批准。48 小时之后,退款申请才会落到你的收件箱。下面说明 Google Play 退款窗口在 48 小时两侧各自如何运作,以及每一笔退款会从你的收入中扣走什么。