我有一个Android应用程序,我还提供1个inapp购买解锁此类应用程序到专业版。
我知道如何使用inapp购买API等,但我发现了如何检查应用程序应该以Free还是Pro启动的不一致方式。
许多人建议,在成功购买后,应用应将Google Play收据或其他信息存储在本地数据库中,并让应用在启动时检查该信息是否存在(以便以Free或Pro的形式正常启动)< / p>
我的问题是,为什么不调用恢复购买API RestorePurchases()
,而不是费心保存购买信息并从本地数据库中检索它,如果InApp项目存在,请查看返回的对象并解锁相应的应用?
据我所知,这个电话不需要互联网连接,只是本地电话给当地的Google Play权限......我错过了什么?
答案 0 :(得分:1)
让我解释一下我们如何在QuitNow!管理它,这是一个与你的行为相同的应用。
我们只有一个名为unlock_all_pro_features
的SKU。如果用户拥有它,则意味着用户之前购买了PRO功能。
因此,在Android方面,每次启动应用时,我们都会尝试连接到IInAppBillingService
。调用onServiceConnected()
时,我们会询问所有用户拥有的SKU。如果它有我们可爱的SKU,我们存储在SharedPreference
,用户是PRO。然后,如果在完成所有这些魔术之前它不是PRO,我们会更新屏幕以显示全新的功能。
那里的坏事:用户可以退回SKU!
要面对这种情况,当我们认为用户是PRO用户时,我们也会询问用户是否具有所需的SKU。如果该检查失败20次,我们将功能重置为免费版本。
为什么要检查20次而不是一次?有时,我们发现服务说用户有任何SKU,而他实际上有PRO。为什么?不知道。因此,检查它20次是一种简单的方法,可以确保我们在不需要时不会激活PRO用户。