Android 应用内购买 - RESULT_ITEM_UNAVAILABLE

Android in-app purchase - RESULT_ITEM_UNAVAILABLE

提问人:RichW 提问时间:5/26/2011 更新时间:7/18/2019 访问量:6149

问:

我正在尝试将 Android Market 应用内购买集成到我的应用程序中,但不幸的是,每次尝试购买测试产品时都会遇到一个烦人的错误。

我已经获取了示例应用程序(Dungeons)并将其添加到我的应用程序中。我更新了公钥,并将产品列表更新为以下内容:

/** An array of product list entries for the products that can be purchased. */
private static final CatalogEntry[] CATALOG = new CatalogEntry[] {
    new CatalogEntry("lemonstorm.huru.full", "Full v", Managed.MANAGED),
    new CatalogEntry("android.test.purchased", "purchased",Managed.UNMANAGED),
    new CatalogEntry("android.test.canceled", "cancelled",Managed.UNMANAGED),
    new CatalogEntry("android.test.refunded", "Refunded",Managed.UNMANAGED),
    new CatalogEntry("android.test.item_unavailable", "unavailable",Managed.UNMANAGED)
};

我使用 Eclipse 导出了应用程序,并将其安装在我的手机上,并将其上传到 Android Market 网站。同样在 Android Market 网站上,我添加了 lemonstorm.huru.full 作为应用内购买并发布了它。

我还将我的 googlemail 帐户添加为测试帐户(即我在手机上登录的帐户)。

当我在手机上运行该应用程序时,每当我尝试购买 lemonstorm.huru.full 时,我都会收到一条RESULT_ITEM_UNAVAILABLE消息,但如果我尝试例如android.test.purchased,它绝对可以正常工作。

RESULT_ITEM_UNAVAILABLE文档说明如下:

表示 Android Market 在应用程序的产品列表中找不到请求的项目。如果产品 ID 在REQUEST_PURCHASE请求中拼写错误,或者某个项目未在应用程序的产品列表中发布,则可能会发生这种情况。

产品 ID 绝对相同,它肯定是发布的,请求必须正常通过,因为它是示例应用程序并且适用于 android.test.purchased

任何想法将不胜感激!

人造人

评论

0赞 beetstra 5/27/2011
我有同样的问题,但我确实发现其他人的 googlemail 帐户有问题。不确定这是否对您有所帮助。友情链接: osdir.com/ml/Android-Developers/2011-03/msg05455.html
0赞 RichW 5/28/2011
我尝试将 [email protected] 和 [email protected] 添加到测试列表中,但似乎什么也没做!
1赞 Anoop Chandrika HarisudhanNair 6/1/2011
阅读常见问题解答...这仅适用于 gmail.com 帐户。这是一个已知的错误。他们正试图修复它......只有测试部分...实际实现在所有邮件提供商中都有效。
0赞 RichW 6/2/2011
您正在查看哪个常见问题解答?如果你把这当作一个答案,我会接受的。谢谢!
0赞 Anoop Chandrika HarisudhanNair 6/3/2011
已在市场帐户中添加了您的“待售物品”。在应用下,需要添加每个应用内项目。看看这个...developer.android.com/guide/market/billing/billing_admin.html

答:

8赞 beetstra 5/30/2011 #1

我也有同样的问题。在我发布应用程序后,产品被发现。看起来像 Google 测试帐户中的错误(?

评论

0赞 RichW 5/30/2011
有趣。你认为这仅仅是因为我使用 googlemail 帐户登录手机,还是其他原因?
4赞 beetstra 5/30/2011
我不认为这只是googlemail帐户,但我不确定究竟是什么原因造成的。根据 android 文档,它应该按照您在问题中描述的方式工作,但不知何故,testaccounts 列表似乎被忽略了。
1赞 Simon Pan 8/19/2011 #2

据我所知:

  1. 版本代码是否与应用程序发布网站中未发布的草稿应用程序相同?
  2. 您是否触摸了恢复出厂设置以测试帐户?
  3. 您是否在发布网站中设置了 lemonstorm.huru.full 的托管产品?

评论

0赞 RichW 8/19/2011
对不起,我从几个月前开始继续前进,因为我没有解决它 - 我最终集成了 PayPal 库并在 Android Market 之外出售它。
6赞 Denys Nikolayenko 9/22/2011 #3

我遇到了同样的问题。我正在玩地下城样本,错过了sword_001和potion_001产品必须“发布”。对我来说,问题是他们只是保存了并保持“未发布”。

为了解决这个问题,我刚刚编辑了产品并按下了两者的发布按钮。现在,我可以从示例应用中购买两者。

1赞 Saboosh 2/14/2012 #4

以下是有关如何测试应用内结算的简要说明,它包括一个图表,用于显示应用已发布与未发布以及使用测试用户、开发人员或其他用户的情况时,您可以从市场应用中看到的内容:

http://developer.android.com/guide/market/billing/billing_testing.html

1赞 Stefano Mondino 4/11/2012 #5

此外,请记住在导出应用程序时对其进行签名。

3赞 arekolek 3/21/2018 #6

我收到了来自 Play 结算库的回复和以下消息:BillingClient.BillingResponse#ITEM_UNAVAILABLE

ProxyBillingActivity:获取购买更新结果,resultCode 为 0,计费的 responseCode:4

事实证明,我忘了访问选择加入链接进行测试(我只将测试人员添加到 alpha 测试人员列表和具有许可证测试访问权限的用户列表中)。