Google Play应用内购买返回错误代码-1008:null puchaseData或dataSignature

问题描述:

在第2版中成功实施后,我试图实施Google Play in-app purchase v3。然而,每一次我试图购买我真正的应用内产品之一,我收到下面的后续错误:Google Play应用内购买返回错误代码-1008:null puchaseData或dataSignature

IAB返回null购买数据或dataSignature(响应-1008:未知错误)

这从IabHelper.java class, line 452未来:

if (purchaseData == null || dataSignature == null) { 
    logError("BUG: either purchaseData or dataSignature is null."); 
    logDebug("Extras: " + data.getExtras().toString()); 
    result = new IabResult(IABHELPER_UNKNOWN_ERROR, "IAB returned null purchaseData or dataSignature"); 
    if (mPurchaseListener != null) mPurchaseListener.onIabPurchaseFinished(result, null); 
    return true; 
} 

我已经验证了一个)我的应用程序进行签名,b)我的应用程序的版本的草案版本#匹配在谷歌Play商店,以及c)用户尝试购买已被添加为测试用户。我已经在3个测试帐户和4个应用内购买订阅类型中尝试了这一点。

  • 我应该关心这个错误代码吗?
  • 这是一个仅限于非生产版本的问题吗?
  • 如果/当我发布此版本时,这会影响我在现场的客户吗?
  • 一旦您真正使用IAB版本3进行实际发布,您是否真的只能测试应用内购买的端到端?我意识到我可以使用android.test.purchased项目类型,我有(它的工作原理),但我不认为这是一个有效的端到端测试。

我自己有这个问题。过了一段时间,我发现我做错了什么。我在IABHelper上调用了错误的方法。

如果您将mHelper.launchPurchaseFlow(...)与在Google Developer Console中注册为订阅的SKU进行通话,将导致错误: IAB返回null purchaseData或dataSignature(响应-1008:未知错误)。

如果您有一个已注册为订阅的SKU,则必须使用方法:mHelper.launchSubscriptionPurchaseFlow(...)

希望这会有所帮助。

+0

谢谢!就是这样。 Google Play开发者做了回复,但从未回复过我的解决方案。我欠你一个(字面上)! – esilver 2013-05-26 23:59:30

+0

虽然我使用了正确的项目类型和方法,但得到了同样的错误。应用内购买的作品,不是订阅。 – 2013-07-22 11:15:24

+1

launchSubscriptionPurchaseFlow()方法依次调用launchPurchaseFlow()与itemType作为'IabHelper.ITEM_TYPE_INAPP'。因此,如果您在launchPurchaseFlow()中传递正确的itemType,则没有区别。我正在使用正确的项目类型,但仍然得到相同的错误! – CodeFury 2013-08-05 07:02:47

error purchasing: iabResult: IAB returned null purchase Data or data Signature (response: -1008 unknown error)

如果你得到上面的错误,当您使用launchPurchaseFlow()方法,并得到这个错误检查您的产品类型。我创建了订阅,但我需要托管产品,例如非消耗品类型。我的意思是小心购买或订阅