2011-03-14 128 views
0

由于Google存储您购买的Android应用,我想知道他们是否以某种方式提供可用于检查某个应用是否已购买的web服务。对我来说,这似乎是从我的应用程序中区分免费和付费用户的最安全的方式。Android市场采购的Webservice

它不仅可以打败盗版,还可以通过一次性检查此服务来管理合法注册用户的数据库。

你对这件事有什么解决方法?

+3

这不是他们的许可证验证库所做的那么简单吗?或者,您是否正在寻找服务器上与Google服务器进行核对的内容,然后再报告给您的应用程序? – EboMike 2011-03-14 22:18:47

+0

谢谢,我不知道LVL,会考虑这一点。就服务器方面而言,拥有带付费用户的数据库将非常好,所以我可以从应用程序中检查服务器方面的操作。在我看来,使用Google应用程序购买数据库将是最安全的。 – 2011-03-14 23:31:18

+0

基本上,我想拥有所有逻辑服务器端,而不关心正在使用哪个版本(付费/免费)。它只会发送IMEI与每个服务器的动作,然后检查应用程序是否已经支付并采取相应的行动。 – 2011-03-14 23:39:07

回答

1

Google为您提供了一个图书馆。 See here.

请注意,这在未受保护的应用程序中受到了损害,因此您应该使用类似ProGuard的内容。上面的链接包含更多信息。

最后,请记住,Android Market不是Android平台上唯一的Android应用市场。亚马逊有他们自己的DRM。

+0

但是这个概念从手机本身检查。有没有办法从服务器(通过使用web服务)做到这一点? – 2011-03-15 16:18:39

0

在这个特定时刻有一种方法来检查。

Android Market通过Google Checkout验证购买,但Google尚未实施Checkout API来同步市场购买。所以像这样的调用检查订单的状态不起作用。也许谷歌不希望开发者收到客户电子邮件?无论哪种方式,我不知道为什么它不存在,在我看来,如果谷歌只是提供这项服务,我们可以实现一个更好的安全系统,以更好地利用混淆的方法。就像现在一样,黑客可以简单地寻找像ILicenceService这样的特定类并挂钩它。

当前唯一的方法是下载当前购买清单。您可以使用经过身份验证的http调用来执行此操作。这样做的缺点是相当大的。首先,它提供的列表只能延续31天(所以你必须确保你保留所有内容)。其次,你必须至少每十分钟打一次电话和解析。实际上比这更快,大多数用户想要在购买游戏时玩他们的游戏。第三,如果您的服务或服务器停机,那么您的用户几乎可以立即请求这些宝贵的信息。

我不知道有多少开发人员正在使用这个过程,我考虑过这个过程,但我只是不断向Google抱怨一个更好的方法。

0

你可以从LVL上背下来。我刚刚实施了一个类似的系统。

  1. 执行通过LVL检查。
  2. 成功时发表的帖子中自己的Web服务器和存储的任何细节,你需要的,也就是的DeviceID等

即使LVL检查失败你也可以进行检查,以你自己的服务器,并允许的事情样试用期间等