Google Play In-App Purchase возвращает код ошибки -1008: null puchaseData или dataSignature

Я пытаюсь реализовать покупку Google Play в приложении v3 после успешного внедрения в v2. Однако каждый раз, когда я пытаюсь приобрести один из моих реальных продуктов в приложении, я получаю следующую последующую ошибку:

IAB вернул null purchaseData или dataSignature (ответ -1008: неизвестная ошибка)

Это происходит из класса IabHelper.java, строка 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; } 

Я подтвердил, что: а) мое приложение подписано, б) версия моего приложения соответствует черновику версии # в магазине Google Play, а в) пользователь, пытающийся совершить покупку, был добавлен в качестве тестового пользователя. Я пробовал это через 3 тестовых аккаунта и 4 типа подписки на покупку в приложении.

  • Должен ли я быть обеспокоен этим кодом ошибки?
  • Является ли это проблемой только для выпусков, не связанных с производством?
  • Это повлияет на моих клиентов в поле, если / когда я выпущу эту версию?
  • Можете ли вы действительно протестировать только приложение внутри приложения, когда вы действительно опубликовали его в прямом эфире с IAB-версией 3? Я понимаю, что могу использовать тип android.test.purchased, и у меня есть (он работает), но я не считаю это действительным сквозным тестом.

У меня была эта проблема. Через некоторое время я обнаружил, что я сделал не так. Я вызывал неправильный метод на IABHelper.

Если вы вызываете mHelper.launchPurchaseFlow(...) с SKU, зарегистрированным в качестве подписки на Google Developer Console, это приведет к ошибке: IAB вернул null purchaseData или dataSignature (ответ -1008: Неизвестная ошибка).

Если у вас есть SKU, зарегистрированный как подписка, вы должны использовать метод: mHelper.launchSubscriptionPurchaseFlow(...) .

Надеюсь это поможет.