2012-12-13 7 views
22

Ich habe das Training über "In-App Billing v3" von Google verfolgt. Ich kann einen Gegenstand kaufen, aber ich habe ein Problem.In-App-Abrechnung v3 - Keine Rückerstattung feststellen

https://developer.android.com/training/in-app-billing/index.html

Ich habe storniert und erstattet den Kauf, aber die App erkennt das als wahr kaufen. Ich kann meine App nicht weiter testen, da ich immer den Artikel als gekauft erhalte.

Der einzige Fehler, den ich in Logcat gefunden habe, ist die nächste:

[3687] InAppBillingService.logResponseBundle: Bundle enthält keinen Antwortcode

Erscheint nach mHelper.queryInventoryAsync (mGotInventoryListener) starten.

Irgendeine Idee?

+0

Gute Frage. Hast du die Antwort bisher gefunden? – lstipakov

+0

Nichts gefunden und ich weiß nicht wo ich mehr suchen soll. – JMPergar

+2

Ich bin im selben Boot mit diesem - zurückerstattet (ein Testbenutzer) Kauf und das System weiterhin zu glauben, der Benutzer ist lizenziert. v3 API hat fast nichts auf Rückerstattungen überhaupt - die Beispiel-App adressiert sie nicht - eine andere Google API veröffentlicht für uns zum Meerschweinchen Test halbbacken - wir sollten beginnen, sie für diese Rechnung ... – shrewdlogarithm

Antwort

17

p.s. - dies legt nahe, es braucht nur Zeit für die Erstattung

http://code.google.com/p/marketbilling/issues/detail?id=88#makechanges

aktualisiert werden aber ich bin nicht überzeugt - ich erkennen, dass sie Kaufdaten auf dem Gerät sind das Caching aber 24h ist eine lange Zeit ...

Aktualisiert, um hinzuzufügen, dass mehr als 24 Stunden, nachdem ich 'Test' Transaktionen abgebrochen habe, diese Konten noch lizenziert sind !!

Aktualisiert wieder - nach 36 Stunden war die App noch lizenziert. Ich deinstalliert und neu installiert und es war noch lizenziert !!

Aktualisiert WIEDER! - Ich habe das Gerät zurückgesetzt, angemeldet, die App installiert und es wurde nicht lizenziert ...

UND ein weiteres Update - eine Antwort von Google schlägt vor, dass Erstattungen "automatisch" verarbeitet werden, aber bis zu 72 Stunden dauern können. um auf dem Gerät aufgefrischt zu werden - es gibt keinen anderen Weg, eine Rückerstattung zu finden, also erhalten die Spieler bis zu 3 Tage Zeug "kostenlos", wenn sie erstattet - ähm, OK, das ist In-App und nicht App-Kauf, aber trotzdem scheint das so ein BIT übermäßig?

+3

Ich hatte das auch mit mir passieren, aber ich habe nicht t eile, um einen Werksreset durchzuführen. Nach ein paar Tagen wurde es nicht lizenziert. Nicht sicher, ob es 3 oder mehr Tage war ... – grebulon

+0

Ich rechne damit, dass es "irgendwann" unlizensiert wird - aber ihr schaut euch bestimmt Tage an. Ich bin mir nicht sicher, welche Erstattungsrichtlinien von Google für In-Apps gelten - wenn sie einfache Rückerstattungen aushändigen und die Kunden dies verstehen (ein 1-3 Tage Freilauf), dann haben wir ein Problem hier ... – shrewdlogarithm

+1

Das ist gut zu wissen! Die drei Tage interessieren mich nicht so sehr, wie es schließlich geschieht. Was die Rückerstattungsrichtlinien von Google anbelangt, bin ich der Meinung, dass bei In-App-Käufen * keine * Rückerstattung über Google möglich ist. Der Kunde hat nur die Möglichkeit, eine E-Mail an den Entwickler zu senden, um eine Rückerstattung zu beantragen nach eigenem Ermessen. – Carl

0

Die Art, wie ich daran arbeite, ist mit einem Block von Code, der die spezifischen Käufe ignoriert, die ich gemacht habe. Ich habe eine Log-Anweisung im Code, der die Kaufinformationen ausgibt, dann schreibe ich eine Liste in meine App von purchaseTimes, um sie zu ignorieren. Es ist ein Durcheinander und ich muss jedes Mal neu kompilieren, wenn ich testen will, aber ich habe noch keinen besseren Weg gefunden.

0

Nachdem ich ungefähr 12 Stunden gewartet habe und alles, was hier und auf ähnlichen Threads vorgeschlagen wurde, versucht habe, stand ich immer noch vor dem gleichen Problem. Was der Trick für mich tat, war der folgende Befehl adb:

adb shell pm klar com.android.vending

0

Sie können ganz einfach den Kauf zu Testzwecken negieren durch das Element raubend.

Mit Trivial Antriebs Probe habe ich den folgenden Code in MainActivity.java, die die Premium-Upgrade „verbrauchen“, wenn die Anwendung gestartet wird:

Als Bonus erhalten Sie einen freien Quartal Tank von Gas erhalten, wenn Sie konsumieren Sie das Upgrade, nur weil die Probe alle Verbrauch als Benzin anderswo behandelt. Suchen Sie MainActivity nach "Provisioning", um wo zu finden.