在我提出这个问题之前,我已经浏览了Android In-App billing documentation,以及像this这样的StackOverflow上的一些类似问题。此外,我猜这个问题可能会被关闭或者投票,因为它不是一个直接的编程问题,而且本质上是主观的。但是,它仍然存在。
实施工作正常。我的问题是在本地存储应用内购买的好方法。在我的情况下,只有一个一次性可解锁项目可以解锁应用程序的全部功能,并且不会过期或被消耗。
共享偏好设置对于盗版来说似乎有点太容易了。即使查询Google Play工作正常并且看起来相对安全,它还可以依靠吗?由于文档建议异步拨打电话,因此支付解锁功能的用户可能不得不等待才能访问未锁定的功能,这听起来并不是一个好主意。此外,当清除GP缓存时,它需要比平时更长的时间(这可能是一种罕见的情况)。
但是看到有这么多的应用程序和开发人员,我想知道其他开发人员如何处理它?
答案 0 :(得分:5)
其实我认为你的问题会因为几个不同的原因而被关闭,但我会给你一些见解。
您可以选择一些选项,具体取决于产品的性质以及其他一些选项。
如果你看一下指南purchase iab products的“消费购买”部分,你可以阅读:
购买商品后,它被视为“拥有”而不能 在该州,可以从Google Play再次购买。你必须发送 Google Play之前对该项目的消费请求 可以再次购买。所有托管的应用内商品都是 耗材。如何在您的应用中使用消费机制取决于 您。通常,您将实施产品的消费 用户可能想多次购买的临时利益(for 例如,游戏中的货币或可补充的游戏代币)。你会 通常不想为那些产品实现消费 购买一次并提供永久性效果(例如,溢价 升级)。
对于消费品:
您有责任控制和跟踪应用内商品的效果 被提供给用户。例如,如果用户在游戏中购买 货币,你应该用金额来更新玩家的库存 货币购买。
安全建议:您必须先发送消费请求 提供消费者应用程序内购买的好处 用户。确保您已成功消费 在您配置项目之前,Google Play的回复。
无论如何,在任何范围内,我都会建议跟踪用户购买的所有产品以及他自己拥有的所有权限,因为它更快,而且它可能对其他一些事情有用,例如自定义统计信息,报告等。
答案 1 :(得分:2)
如果您担心盗版,则应使用后端网络服务器。谷歌有一个网络API,用于检查购买是否合法。让设备联系您的Web服务器。让网络服务器通过Google验证。如果有效,请让设备从服务器下载资产。
如果in app项目不是资产,但游戏中的消耗品可能让您的服务器返回加密字符串,您的应用知道如何解密。
如果您完全依赖本地存储的购买信息,则很容易欺骗。