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 字段来获取正确的订阅到期时间。
相关文档
希望通过本文,您能更清晰地理解恢复订阅与重新订阅的区别。如果您还有其他关于订阅的疑问,欢迎在评论区留言,我们将竭诚为您解答。