将付费Android应用转为订阅模式,如何识别过往付费用户?
解决方案:验证过往付费用户 & LVL可用性
一、Google License Verification Library(LVL)在转免费后仍可正常使用
LVL 是 Google 专为一次性付费应用设计的授权验证工具,哪怕你把应用转为免费上架,Google Play 后台仍会保留所有过往付费用户的购买记录,LVL 依然能依托这些记录完成授权验证。
具体实现步骤:
- 保留原有的 LVL 依赖(不要移除),继续使用你之前付费应用的
LICENSE_KEY - 调用 LVL 的
checkLicense()方法发起验证请求,在回调中处理结果:- 返回
LICENSED状态时,判定该用户为过往付费用户,直接解锁高级功能 - 返回
NOT_LICENSED则引导用户订阅或使用免费功能
- 返回
- 注意处理离线场景:LVL 会自动缓存授权结果,用户离线时可直接读取缓存判断权限
二、额外补充验证方案(可选)
如果你的应用之前有自建服务器,可以:
- 转免费前,批量导出所有付费用户的购买凭证(Purchase Token)存储到服务器
- 转免费后,让用户登录账号,通过服务器对比凭证来验证身份
- 这种方式适合需要跨设备同步权限的场景,但如果没有服务器,LVL 完全能满足需求
三、关于 Google Billing Library 的说明
你提到的 Billing Library 确实只负责内购和订阅的交易管理,不追踪一次性付费应用的历史购买记录,所以无法通过它验证老用户,LVL 是当前唯一官方支持的解决方案。
注意事项
- 测试时请使用 Google Play 内部测试渠道,用已购买过原付费应用的测试账号验证逻辑
- 不要在转免费后修改或删除原应用的包名,否则会导致 LVL 无法关联到历史购买记录
内容的提问来源于stack exchange,提问作者Codegenic
相关产品推荐
相关产品推荐

