Ich entwickle eine Android-App, die die neue Abonnementfunktion von Google Play verwendet. Ein Teil meiner App besteht aus einem Webserver, der regelmäßig den Status dieser Abonnements über einen API-Aufruf überprüft. Außerdem werden einige dieser Abonnements storniert.
Google stellt dazu zwei REST-APIs zur Verfügung:
Ich kann die erste mit OAuth großartig arbeiten lassen. Wenn ich jedoch versuche, bestimmte Abonnements abzubrechen, erhalte ich einen Fehler von 500 ohne Details. Hat jemand anderes das erlebt? Benutze ich es falsch? Ich bin mir sicher, dass das OAuth funktioniert, weil ich die erste API treffen kann. Hier ist meine Curl-Ausgabe, mit einigen meiner Account-Daten verborgen:
%Vor%Ich kann bestätigen, genau das gleiche Problem zu haben. Die Details funktionieren perfekt, aber das Abbrechen schlägt fehl. Ich benutze die Google API für Java-Klassen, also denke ich, dass dies ein generelles Problem ist, das wir als Fehler bei Google veröffentlichen sollten.
Hier ist die Antwort, die ich vom Google-Server erhalte:
%Vor%Ich stoße auch auf diesen Fehler. Meine App wird nur im Beta-Testmodus veröffentlicht. Könnte das das Problem sein, frage ich mich?
Falls es relevant ist, verwende ich eine modifizierte Version von googlesamples / android-play-publisher-api , wo ich basic_list_apks
geändert habe, um als Subscription-Revoker zu fungieren, indem ich die Service-Call-definierende Zeile folgendermaßen ändere:
Ich kann das gleiche Problem bestätigen. Dies ist die Antwort, die ich erhielt:
%Vor%Ich denke, der Grund für diese peinliche Fehlermeldung ist, dass das Abonnement nicht mehr gültig ist, aber wir haben versucht, es abzubrechen. Stattdessen sollten wir zuerst prüfen, ob das Abonnement gültig ist: Ablaufdatum, Abbruchgrund, automatische Verlängerung.
In meinem speziellen Fall ist das Abonnement abgelaufen und cancelReason
ist 1
, was bedeutet, dass es vom System abgebrochen wurde.
Tags und Links android api in-app-purchase google-play