使用 Java Google Play Developer API(版本 3)并请求有效购买令牌的购买信息时,出现以下异常。API 调用返回 400 Bad Request 响应以及以下消息。
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Invalid Value",
"reason" : "invalid"
} ],
"message" : "Invalid Value"
}
Run Code Online (Sandbox Code Playgroud)
遗憾的是没有进一步的信息。我不知道什么值是无效的。
首先,我们已就此事联系了 Google 支持人员。不幸的是,我们与 Google 支持人员来回沟通了近 2 个月,但他们仍然没有表明他们正确理解了我们的问题所在。每次他们回复时,他们都会给我们提供与 Google Play Developer API 实际上无关的建议,即使在多次彻底解释问题之后也是如此。这是我 20 年来最令人沮丧的支持经历。谷歌的支持显然不会有任何帮助。
其次,我们已经成功链接了 Google Play 帐户和后端。所有必要的配置均已完成并且可以正常工作。在我们的后端,每当进行 Android 应用内购买时,我们都会收到来自 Google Play 的通知,这些通知包含购买令牌。这需要付出一些巨大的努力,但我相信现在一切都是正确的,我们的服务帐户配置正确,并且所有权限等都很好。
我能够成功调用返回可用应用内购买产品列表的 API。我获得了我们在 Google Play 中配置的产品的完整且正确的列表,供用户在我们的应用程序中购买。为了进行此调用,我们必须提供凭据,并且我假设当我们进行此调用时服务器正在验证这些凭据。由于我可以成功拨打此电话,因此我假设“无效值”与我们的凭据无关。我们正在使用为特定服务帐户创建的 Google 生成的 JSON 文件(不使用 p12 文件)。
我搜索了 StackOverflow 以及互联网的其余部分来寻找有关此问题的信息。我发现许多页面都指出了相同或类似的问题,但使用的是旧版本的 Google Play Developer API,这显然会导致不同的情况。提供的解决方案似乎不适用于 v3 …
java android in-app-purchase google-play-developer-api android-inapp-purchase