Ionic无后端应用重装后如何验证用户去除广告的内购支付状态?
Ionic无后端内购恢复方案
核心问题解答
- 你提到的本地存储方案确实不可行,卸载、重置设备都会丢失数据,无需考虑
- 苹果App Store、谷歌Play官方计费系统会永久留存非消耗型内购产品(你做的「付费去广告」就属于这类)的交易记录,记录和用户的Apple ID/谷歌账号绑定,只要用户重装后登录的是购买时用的同一账号,就可以直接从官方渠道拉取到历史购买状态,不需要你自行搭建后端服务。
cordova-plugin-purchase插件调用说明
你提到的store.refresh()就是对应卸载重装后恢复购买场景的正确API,建议按以下逻辑配置:
- 应用初始化、完成内购产品注册配置后,第一时间调用
store.refresh(),主动触发插件向苹果/谷歌官方拉取当前登录账号的所有历史购买记录 - 监听对应去广告产品的
owned状态更新,只要状态返回为true,直接执行关闭广告的逻辑即可 - 你需要在应用的付费页面增加恢复购买按钮(苹果App Store审核强制要求非消耗型产品必须提供该入口),用户点击该按钮时也触发
store.refresh()调用
注意事项
- 优先以每次
store.refresh()拉取到的官方购买状态为准,不需要额外做本地持久化兜底,避免缓存异常导致判断出错 - 安卓端需要用户设备安装、登录了谷歌Play服务才能正常拉取购买记录,无谷歌服务的环境无法走该流程
- 用户更换新设备后,只要登录的是购买时使用的同一Apple ID/谷歌账号,同样可以正常恢复购买权限
内容的提问来源于stack exchange,提问作者The MW
相关产品推荐
相关产品推荐

