Android 存储应用内购买的最佳方式
在我提出这个问题之前,我已经讨论了,以及一些类似的关于StackOverflow的问题。此外,我猜这个问题可能会被关闭或否决,因为它不是一个直接的编程问题,而且本质上是主观的。但是,它还是来了 实施效果良好。我的问题是,什么是在本地存储应用内购买的好方法。在我的例子中,只有一个一次性可解锁项目可以解锁应用程序的全部功能,并且不会过期或被消费 共享偏好对于盗版来说似乎有点太容易了。尽管查询Google Play很好,而且看起来相对安全,但它是否足够可靠?由于文档建议异步调用,因此为解锁功能付费的用户可能需要等待才能访问解锁的功能,这听起来不是一个好主意。此外,当GP缓存被清除时,所需的时间比平常长(这可能是一种罕见的情况)Android 存储应用内购买的最佳方式,android,in-app-billing,Android,In App Billing,在我提出这个问题之前,我已经讨论了,以及一些类似的关于StackOverflow的问题。此外,我猜这个问题可能会被关闭或否决,因为它不是一个直接的编程问题,而且本质上是主观的。但是,它还是来了 实施效果良好。我的问题是,什么是在本地存储应用内购买的好方法。在我的例子中,只有一个一次性可解锁项目可以解锁应用程序的全部功能,并且不会过期或被消费 共享偏好对于盗版来说似乎有点太容易了。尽管查询Google Play很好,而且看起来相对安全,但它是否足够可靠?由于文档建议异步调用,因此为解锁功能付费的用
但是看到有这么多的应用程序和开发者,我想知道其他开发者是如何处理的 事实上,我认为你的问题会因为几个不同的原因而结束,但我会给你一些见解 你有一些选择,这取决于产品的性质以及其他一些方面
- 如果产品终身有效,或者取决于时间(例如Instant,一年的更新),你可以依赖google play,这可能会很好李>
- 如果产品是用户在应用程序中以不同方式消费的东西,如游戏内货币、额外生命等,则应将其保存在本地、sqlite数据库或远程数据库中(如果要使用服务器集中某些服务)李>
无论如何,在任何范围内,我都会建议跟踪用户购买的所有产品以及他自己拥有的所有特权,因为这样做速度更快,而且对于自定义统计、报告等其他事情也很有用。如果你担心盗版,你应该使用后端web服务器。谷歌有一个web api来检查购买是否合法。让设备与您的web服务器联系。让web服务器通过Google进行验证。如果有效,则让设备从服务器下载您的资产 如果应用程序中的物品不是资产,而是游戏中的可消费物品,则服务器可能会返回一个加密字符串,您的应用程序知道如何解密该字符串
如果您完全依赖本地存储的购买信息,则很容易欺骗。类似地,这里也讨论了这一点: