安卓应用内购买错误:无法购买此物品。(错误代码:IAB-DPTL)

6
我刚开始使用Android应用内购买系统。我测试了Dungeons应用程序示例,没有任何问题。
所以我正在尝试将应用内购买集成到我的应用程序中,但是当我使用声明的产品ID或静态测试ID时,我会收到相同的错误消息:
无法购买此物品。(错误代码:IAB-DPTL)
这个应用程序已经上市了。我上传了一个签名版本,也将其推送到手机上(因此两端的版本是相同的)。我添加了在手机上使用的电子邮件作为测试帐户。我应该激活我的应用程序吗?(冒着删除当前发布的应用程序的风险吗?)
我不知道我错在哪里,也找不到关于这个错误代码的任何信息。
我做错了什么?

不清楚,但我也遇到了这个问题。您可以尝试使用其他测试账户,不确定是否有帮助。 - Nikolay Elenkov
更换设备和/或帐户似乎没有帮助。仍然出现相同的错误。可能是谷歌的故障。 - Nikolay Elenkov
好的,谢谢您的评论!我不是一个人!我会尝试从应用程序接收到的回调中进行调查。我会让您知道的。 - rdgilead
只是一个提醒:我已经使用IAB一年了,这曾经可以正常工作(偶尔会出现小问题)。 - Nikolay Elenkov
1个回答

15

好的,我找到了解决方案!!!

这个bug直接由于在购买请求期间我将"payloadContent"与productId关联所导致。

我过去常常将可以购买的物品转换为JSON格式并将其作为开发人员负载内容放置。 (尽管在恢复阶段会有用...)

我测试了删除此payloadContent,然后就没有问题了。

我认为在不同交易期间使用的数据格式是JSON,因此JSON负载内容字段应该会干扰某些等待的字段..(例如"title"或"link")

更新:

正如Nikolay Elenkov所说,错误很可能是由于负载长度引起的,并且JSON似乎有效。 因此,在开发者负载大小方面存在限制:256个字符。

我们认为错误代码:“IAB-DPTL” 直接意味着:“In App Billing - Developer Payload Too Long”

感谢Nikolay!


2
我可以确认,删除开发者负载可以解决这个问题。我需要测试一下,但你确定没有达到256个字符的限制吗?同时接受你的答案,以便将问题标记为已回答。 - Nikolay Elenkov
1
发送 JSON 绝对有效,错误很可能是由负载长度引起的。在我的测试中,270 个字符会导致错误,而 230 个字符则正常工作。 - Nikolay Elenkov
1
您也可以尝试在此处抱怨晦涩的错误消息:http://code.google.com/p/marketbilling/issues/list。现在我们知道原因,虽然似乎很明显:开发者有效负载过长(DPTL)。 - Nikolay Elenkov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接