2013-05-04 5 views
25

Ich versuche, Google Play in-app purchase v3 zu implementieren, nachdem es erfolgreich in v2 implementiert wurde. Allerdings versuchen, jedes einzelne Mal, wenn ich eine meiner echten In-App-Produkte zu kaufen, ich erhalte die folgenden Folgefehler:Google Play In-App Purchase gibt den Fehlercode -1008 zurück: null purchaseData oder dataSignature

Dieses:

IAB null purchaseData oder dataSignature (Unbekannter Fehler Antwort -1008) zurückgegeben wird aus dem IabHelper.java class, line 452 kommen: den Entwurf #

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; 
} 

ich vergewissert haben, dass die Version meiner App passt a) meine App angemeldet ist, b) auf dem Google Play Store, und c) versucht der Benutzer den Kauf wurde als Testbenutzer hinzugefügt. Ich habe dies über 3 Testkonten und 4 In-App-Kauf-Abonnement-Typen ausprobiert.

  • Sollte ich über diesen Fehlercode besorgt sein?
  • Ist dies ein Problem, das nur auf Nicht-Produktionsfreigaben beschränkt ist?
  • Beeinflusst dies meine Kunden vor Ort, wenn ich diese Version veröffentliche?
  • Können Sie den In-App-Kauf wirklich nur Ende-zu-Ende testen, nachdem Sie ihn tatsächlich live mit IAB Version 3 veröffentlicht haben? Ich weiß, dass ich den android.test.purchased Elementtyp verwenden kann, und ich habe (es funktioniert), aber ich halte das nicht für einen gültigen Ende-zu-Ende-Test.

Antwort

63

Ich hatte dieses Problem selbst. Nach einer Weile fand ich, was ich falsch gemacht hatte. Ich habe beim IABHelper die falsche Methode angerufen.

Wenn Sie mHelper.launchPurchaseFlow(...) mit einer SKU aufrufen, die als Abonnement bei Google Developer Console registriert ist es in dem Fehler führen: IAB zurückgegeben null purchaseData oder dataSignature (Antwort -1008: Unbekannter Fehler).

Wenn Sie eine SKU haben, die als Abonnement registriert ist, müssen Sie stattdessen die Methode: mHelper.launchSubscriptionPurchaseFlow(...) verwenden.

Hoffe, das hilft.

+0

DANKE! Das war's. Der Google Play-Entwickler hat geantwortet, aber die Lösung wurde nicht zurückgegeben. Ich schulde dir einen (wörtlich)! – esilver

+0

Ich habe den gleichen Fehler, obwohl ich den richtigen Elementtyp und Methode verwenden. In-App-Käufe funktionieren, Abonnements nicht. –

+1

Die Methode launchSubscriptionPurchaseFlow() wiederum ruft launchPurchaseFlow() mit itemType als 'IabHelper.ITEM_TYPE_INAPP' auf. Wenn Sie den richtigen itemType in launchPurchaseFlow() übergeben, macht das keinen Unterschied. Ich verwende den korrekten Artikeltyp, aber immer noch den gleichen Fehler !!!! – CodeFury

0

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

, wenn Sie oben Fehlermeldung erhalten, wenn Sie launchPurchaseFlow() -Methode verwenden und erhalten diesen Fehler Produkttyp überprüfen. Ich wurde Abonnements erstellt, aber ich brauchte verwaltete Produkte zum Beispiel Non-Consumable-Produkttyp. Ich meine, seien Sie vorsichtig über den Kauf oder Abonnements