作者:高寒蕊,Google 开发技术推广工程师
Google Play Billing 系列内容专为中文开发者而设,重点讲解中国开发者在使用 Play Billing 时常见的疑惑。如果您有任何问题,欢迎在留言区提出,我们会收集反馈并在后续文章中解答。
作为订阅应用的开发者,您可能已经阅读过我们上个月发布的文章,并了解订阅业务模式对应用和游戏盈利的重要性。在这篇文章中,我们将讨论用户取消订阅后的相关事宜,特别是“恢复订阅”和“重新订阅”之间的区别,以及在处理这些操作时需要注意的事项。
恢复订阅与重新订阅的混淆
在处理开发者的咨询时,我们发现中文开发者常常对 Play 订阅中的 Restore 和 Resubscribe 功能感到困惑,不清楚这两个术语是否指同一操作。我们的官方文档中有如下描述:
关键区别
- 恢复订阅 (Restore):
- 适用于用户取消但未过期的订阅。
- 只能在 Play 订阅中心操作。
-
购买令牌 (purchaseToken) 不会改变。
-
重新订阅 (Resubscribe):
- 本质上是一次新的订阅购买。
- 今年 6 月起,用户可以在 Play 订阅中心完成此操作。
- 重新订阅会生成新的购买令牌。
以下表格帮助开发者更直观地理解这两者之间的差别:
注意事项
特别提醒开发者注意,当用户在取消的订阅尚未到期时再次购买,新订阅将替换旧订阅,并在同一到期日期续订。重新订阅会生成新的购买令牌,而旧订阅仍会保留其购买令牌。因此,开发者需要及时将旧订阅的购买令牌标记为失效,以避免同一用户对同一订阅产品存在两个有效的购买令牌。
如果在重新订阅时,旧的订阅尚未失效,您会在新的订阅中看到 linkedPurchaseToken
字段,记录了与之关联的旧订阅的购买令牌。
处理 linkedPurchaseToken
对于 linkedPurchaseToken
的处理方法,可以参考以下文章:
- Implementing linkedPurchaseToken correctly to prevent duplicate subscriptions
从上面的表格中可以看出,这两种操作都可以在 Play 订阅中心完成,开发者除了正常响应 RTDN 之外,还需及时确认购买交易,特别是使用 Play Billing Library 2.0 或以上版本的开发者,任何交易如果在三天内未得到确认,将被 Play 取消。
结论
最后,虽然我们提到在重新订阅时,您会看到 linkedPurchaseToken
字段,但请不要依赖该字段来判断旧订阅的有效性。开发者应通过 Google Developer API 的订阅接口返回的 expiryTimeMillis
字段信息来获取正确的订阅到期时间。您还可以阅读官方文档了解关于销售订阅和实时开发者通知的更多信息。
- Google Developer API的订阅接口
- 销售订阅
- 实时开发者通知参考指南
对于恢复订阅和重新订阅,您分清楚了吗?如果您还有任何疑问,欢迎在评论区留言提出您的问题。