Google Play Billing 系列内容专为中文开发者设计,重点解答开发者在 Play Billing 使用中的常见问题。如果您有任何疑问,欢迎在评论区留言,我们将在后续文章中为您解答。
作为订阅应用的开发者,您可能已经阅读了我们上个月发布的文章,了解订阅业务模式对应用和游戏盈利的重要性。本文将深入探讨用户取消订阅后的相关操作,特别是恢复订阅和重新订阅的区别,以及在处理这些操作时需要注意的事项。
恢复订阅与重新订阅的区别
在开发者的咨询中,我发现许多中文开发者对 Play 订阅中的 Restore 和 Resubscribe 功能感到混淆。这两者看似相似,但实际上有本质的区别。
恢复订阅(Restore)
恢复订阅的关键在于“恢复”,它需要满足以下条件:
- 用户已取消订阅;
- 订阅尚未过期;
- 只能在 Play 订阅中心操作。
由于是恢复操作,原有的订阅信息不会改变,purchaseToken
也会保持不变。
重新订阅(Resubscribe)
重新订阅,有时也称为 Resignup,本质上是一次新的订阅购买。之前,重新订阅只能从应用内发起,但从今年 6 月起,用户也可以在 Play 订阅中心对过期不满一年的订阅进行重新订阅。对于过期超过一年的订阅,用户只能从应用中重新购买相同的订阅内容。无论重新订阅是通过应用内还是 Play 订阅中心完成,都会产生一个新的 purchaseToken
。
两者对比表格
| 操作 | 恢复订阅(Restore) | 重新订阅(Resubscribe) |
|————–|——————–|————————|
| 触发条件 | 订阅取消但未过期 | 订阅已过期或重新购买 |
| 操作地点 | Play 订阅中心 | 应用内或 Play 订阅中心 |
| purchaseToken
| 保持不变 | 生成新的 purchaseToken
|
特别注意事项
订阅未过期时的重新订阅
当用户取消的订阅尚未到期,而用户又再次购买时,新订阅将替换旧订阅,并在同一到期日期续订。由于重新订阅会生成新的 purchaseToken
,开发者需要及时将旧订阅的 purchaseToken
标记为失效,以避免同一用户对同一订阅产品(同一 SKU)出现两个有效 purchaseToken
的情况。在处理重新订阅时,您可以通过 linkedPurchaseToken
字段找到与之关联的旧订阅的 purchaseToken
。
及时确认交易
无论是恢复订阅还是重新订阅,开发者都需要及时响应 RTDN(实时开发者通知),并确认购买交易。特别是使用 Play Billing Library 2.0 或以上版本的开发者,如果交易未在三天内确认,Play 将自动取消该交易。
订阅有效期判断
尽管 linkedPurchaseToken
字段可以帮助您关联旧订阅,但请不要依赖此字段来判断旧订阅是否仍在有效期内。建议通过 Google Developer API 的订阅接口中的 expiryTimeMillis
字段来获取正确的订阅到期时间。
相关文档
希望通过本文,您能更清晰地理解恢复订阅与重新订阅的区别。如果您还有其他关于订阅的疑问,欢迎在评论区留言,我们将竭诚为您解答。