2013-05-04 16 views
25

在第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項目類型,我有(它的工作原理),但我不認爲這是一個有效的端到端測試。

回答

63

我自己有這個問題。過了一段時間,我發現我做錯了什麼。我在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

0

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

如果你得到上面的錯誤,當您使用launchPurchaseFlow()方法,並得到這個錯誤檢查您的產品類型。我創建了訂閱,但我需要託管產品,例如非消耗品類型。我的意思是小心購買或訂閱