在发送真正的验证请求之前,是否可以对Google Play IAP purchaseToken进行半验证



我的应用程序正在进行应用内购买,然后将相关数据发送到服务器后端,通过服务帐户进行验证并存储以备日后使用。我注意到后端收到了很多带有无效令牌的垃圾邮件购买收据,这些收据都没有通过验证请求。我最终提出的大多数请求都注定会失败。

在我提出请求之前,有没有一种方法可以验证购买代币至少可能是合法的?它是否以某种可以检查的方式由谷歌签名?我发誓,我在实施它的时候读过一些关于这个主题的东西,但现在什么都找不到。

如果这是我需要自己实现的事情,那就好了,我只是想知道是否有其他选择,就像我读到的关于这个主题的文章一样。

谢谢!

如您所知,真正验证购买代币合法性的唯一方法是通过应用内账单API从后端进行验证。据我所知,没有办法100%准确地预先验证代币。但如果你愿意接受一些误差。。。

令牌格式

根据我的经验,截至2016年2月,无效购买代币有三种格式:

  • 短标记:15位,例如781871156762279
  • 短标记:24个字母字符,例如korpimulxmslxissnschtkdb
  • 由两部分组成的长令牌:24个字母字符、点(.)和格式错误的第二部分,例如xdavcuvdnniwwrhwemleqjdz.rSQozm...

另一方面,格式正确的标记是由两部分组成的长标记:24个字母字符,点(.),以及以AO-J1O...开头的第二部分,例如olcgkklnpigiceancikanedj.AO-J1O...

扎根

试图进行欺诈性购买的用户占所有结账尝试的很大比例。此外,他们经常尝试多次结账几乎所有的尝试都来自根设备我坚信拥有根设备是每个人的权利,拥有根设备有正当理由。然而,拥有root用户似乎也是试图进行欺诈性购买的必要条件。我使用这种(不完美的)方法来确定设备是否有根。

结论

我不建议您将所有根用户视为欺诈黑客。但根据我有限的经验,生成格式错误令牌的根设备可能会收到"无效令牌"错误。这绝不是一个完美的方法,因为

  • 设备也为我生成了有效令牌
  • 无根设备为我生成了无效令牌
  • 最重要的是,我认为"格式错误"的令牌只是在模仿一种过时的令牌格式。随着谷歌改变代币格式,黑客应用程序的作者也将改变他们的假代币以匹配该格式。你必须掌握这些发展,并接受一定程度的假阳性假阴性

有关这个问题的更多详细信息,请参阅我的另一个答案。

相关内容

最新更新