【问题标题】:Is it possible to semi-verify a Google Play IAP purchaseToken before sending the real verification request?是否可以在发送真实验证请求之前对 Google Play IAP purchaseToken 进行半验证?
【发布时间】:2015-03-19 21:32:18
【问题描述】:

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

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

如果这是我需要自己实现的东西,那很好,只是想知道是否有替代方案,因为我认为我已经阅读了有关此主题的内容。

谢谢!

【问题讨论】:

    标签: android in-app-purchase google-play token in-app-billing


    【解决方案1】:

    如您所知,真正验证购买令牌是否合法的唯一方法是通过in-app billing API 从后端进行验证。据我所知,没有办法 100% 准确地预先验证令牌。但是,如果您愿意接受一些误差范围...

    令牌格式

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

    另一方面,

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

    扎根

    尝试进行欺诈性购买的用户占所有结帐尝试的很大比例。此外,他们经常尝试多次结帐。 几乎所有这些尝试都来自有根设备。 我坚信拥有 Root 设备是每个人的权利,拥有 Root 设备是有正当理由的。但是,似乎拥有 root 也是尝试欺诈性购买的必要条件。我使用this (imperfect) method 来确定设备是否已root。

    结论

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

    • root设备也为我生成了有效令牌
    • 无根设备为我生成了无效令牌
    • 最重要的是,我相信“格式错误”的令牌只是在模仿过时的令牌格式。随着谷歌更改令牌格式,黑客应用程序的作者也将更改他们的假令牌以匹配该格式。您将必须掌握这些发展动态,并接受一定程度的误报误报。

    有关此问题的更多详细信息,请参阅my other answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多