繁体   English   中英

应用内结算 - 无法购买请求的项目

[英]In-app Billing - Item requested not available for purchase

我正在学习应用内结算,但我对谷歌的应用内结算示例 Dungeon 有疑问。

我已经设置了应用程序,添加了我的公钥,并在 makeRequestBundle() 中将 API_VERSION 更改为 1。

我已经导出并签署了应用程序并将其上传到 Google Play 并将其保存为带有几张图片的草稿并激活了 apk。 我还添加了 sword_001 和 potion_001 作为已发布的应用内购买!

接下来,我将签名的应用程序安装到我的手机上,但是当我尝试购买剑或药水时,出现了“物品不可用”错误

您请求的项目无法购买。

我什至在不同的设备上试过以确保这不是因为开发人员无法购买他们自己的产品,而且我在两台设备上都收到了相同的消息。

我错过了什么?

检查您的versionCode 它不能高于您的任何分发渠道(产品/测试版/阿尔法)中最后发布/未发布的版本。

应用内计费似乎充满了陷阱,但我发现这会影响购买物品的可用性以及应用程序的适用性:

  1. 我的代码价值很大程度上基于 Google Android 演示,但我去除了很多复杂性。 我有一种感觉,如果让它工作起来,从头开始重新编写它会产生更好的结果。
  2. 我首先获得了静态测试产品 ID。
  3. 尽管文档说了什么,但在我看来,即使使用测试帐户,也必须发布购买项目。 无论如何,当它们不工作时,我的也不工作,我等了很长时间,看看它们是否会像其他人建议的那样开始工作 - 他们仍然没有。
  4. 你(我无论如何)不能在不发布应用程序的情况下发布购买项目,所以我所做的是上传和发布应用程序,创建购买项目,发布它们(页面底部的大按钮),然后取消发布应用程序再次。 这似乎使项目得以发布。
  5. 应用程序必须在上传之前以通常的方式签名(我通过从 Eclipse 导出),但不是那么明显的是,您加载到移动设备的应用程序也必须以相同的方式签名 - 即(调试由 Eclipse 加载到设备的已签名)版本 - 运行或调试 - 将无法正常工作。
  6. 我认为它们也需要相同的版本号。 不是 100% 确定。 如果是这样,不幸的是,这意味着安装了旧版本的客户无法在不升级的情况下购买任何东西。
  7. 将应用上传到 Google 后,可能需要几个小时才能使用它,并且您会收到应用内结算的所有正确响应。 我发现通常 1-2 小时。
  8. 我怀疑关于这个主题的其他评论关于你是使用 gmail 还是 googlemail 测试帐户可能是红鲱鱼,但就其价值而言,我的测试帐户是 gmail。
  9. 我确实在互联网上的某处看到了一个有用的小笔记,内容是关于如何在移动设备上更改您的主要帐户而不必进行硬重置(因此会丢失所有内容),但不幸的是我没有再次找到它。
  10. 但我确实发现一个人可以在手机上拥有多个谷歌帐户,然后选择一个供 Google Play 使用的帐户。

希望这可以帮助某人。 我不得不说这是一个相当复杂的系统,没有多少答案,我几乎放弃了。

如果您的应用正在进行封闭式 Alpha 测试,您必须使用您的测试帐户登录到 Opt-in URL; https://play.google.com/apps/testing/{your.app.namespace}

我对这个错误的经验是:

  1. 确保将签名的 APK 上传到开发者控制台。

  2. 确保在您的设备上安装已签名的 APK,而不是在调试器中启动应用程序。

  3. 确保在您的开发者控制台中创建一个测试帐户。

  4. 确保使用您的测试帐户登录您的设备。

  5. 确保在您的开发者控制台中创建 in app billing 并最终从控制台激活该项目!!! (这是在完全遵循谷歌的教程后让我得到的)

仅仅上传一个未发布的草稿 apk 来测试应用内计费是不够的。 您需要做的是将 apk 上传到开发人员控制台上的 alpha 或 beta apk 部分。 然后,您需要发布它。 如果您在 Production APK 部分也有草稿 apk,请务必在发布前将其删除。 否则它将对每个人都可用。

发布 alpha 或 beta apk 使该 apk 仅可用于您指定/允许的那些测试人员。

这是谷歌的文档:

https://support.google.com/googleplay/android-developer/answer/6062777?rd=1

好吧,我找到了解决我的问题的方法。 我无法让 Google 的应用内购买示例发挥作用,但我能够使用我在原始帖子中提到的步骤使这个应用内结算教程起作用。

如果没有别的,这可能有助于某人查看测试应用内计费示例之一所需的所有步骤。

发布应用程序对我有用(并让它发布(!))。 我不得不等待 Google 更新他们的数据库,正如其他地方提到的,Google Play 上的变化不会立即发生。

也有这个问题几天并搜索了很多。 我发现这个人说删除应用程序然后重新上传解决了他的问题,这实际上对我也有用。

尝试一下,从开发者控制台中完全删除您的应用程序。 并重新上传一个新签名的 apk 并重新设置

轶事补充:如果您在门户中已经有一个现有的应用程序,并且您想要测试签名版本,但不想将其上传到门户进行分发。 执行正常步骤来构建签名版本,但使用上传到门户的最新版本代码。 您将能够对购买进行快速而肮脏的测试(您无法在 Google Play 门户上上传此版本,但它是结束本地化测试的一种手段(或者甚至作为一种允许侧面加载分布式的方式)使用 Google Play 进行合法计费的版本/风格。)

3:)

检查您的设备是否有多个帐户然后删除其他帐户并保留您在游戏机中输入的帐户然后它就会解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM