Die Google Play Voided Purchases API stellt eine Liste der Bestellungen bereit, mit Käufen verknüpft sind, die ein Nutzer storniert hat. Sie können Informationen verwenden, aus dieser Liste, um ein Widerrufssystem zu implementieren, das verhindert, dass der Nutzer auf Produkte aus diesen Bestellungen zugreifen.
Diese API gilt für einmalige In-App-Bestellungen und App-Abonnements.
Ein Kauf kann auf folgende Weise ungültig werden:
- Der Nutzer beantragt eine Erstattung für seine Bestellung.
- Der Nutzer storniert seine Bestellung.
- Eine Bestellung wird rückgebucht.
Der Entwickler storniert oder erstattet die Bestellung.
Google storniert oder erstattet die Bestellung.
Durch die Verwendung dieser API tragen Sie zu einer ausgewogeneren und faireren Nutzung für alle bei. Ihrer App zu verstehen, vor allem, wenn es sich bei Ihrer App um ein Spiel handelt.
Zugriff erhalten
Um mit der Voided Purchases API zu arbeiten, benötigst du die Berechtigung zum Ansehen. Finanzinformationen. Die Autorisierung erfolgt über einen OAuth-Client oder Dienstkonto. Wenn Sie ein Dienstkonto verwenden, aktivieren Sie die Option „Finanzdaten einsehen“ Berichte“ Berechtigung für dieses Konto.
Weitere Informationen zum autorisierten Zugriff auf Google Play Developer APIs finden Sie unter folgenden Anleitungen:
Stornierte Käufe ansehen
Verwende die Methode GET
, um eine Liste der ungültigen Käufe anzufordern. In Ihrer Anfrage
den voll qualifizierten Paketnamen für Ihre App, z. B.
com.google.android.apps.maps
und das Autorisierungstoken, das Sie
erhalten, wenn Sie Zugriff auf die API erhalten.
GET https://www.googleapis.com/androidpublisher/v3/applications/ your_package_name/purchases/voidedpurchases?access_token=your_auth_token
Sie können auch die folgenden Parameter in Ihre Anfrage aufnehmen, von denen jeder optional:
- startTime
Die Zeit in Millisekunden seit der Unixzeit der ältesten Zeit Kauf, den Sie in der Antwort sehen möchten. Standardmäßig
startTime
wurde auf vor 30 Tagen gesetzt.Die API kann nur ungültige Käufe anzeigen, die in der Vergangenheit stattgefunden haben 30 Tage. Ältere ungültige Käufe sind nicht in der Antwort enthalten, unabhängig davon, des Werts, den Sie für
<ph type="x-smartling-placeholder">startTime
angegeben haben.- endTime
Die Zeit in Millisekunden seit der Unixzeit der neuesten den Sie in der Antwort sehen möchten. Standardmäßig
endTime
ist auf die aktuelle Uhrzeit eingestellt.- maxResults
- Die maximale Anzahl ungültiger Käufe, die in jeder Antwort angezeigt werden. Von lautet der Wert 1.000. Der Maximalwert für diesen Parameter ist ebenfalls 1000.
- Token
- Ein Fortsetzungs-Token aus einer vorherigen Antwort, mit dem du weitere Inhalte ansehen kannst Ergebnisse.
- Typ
Die Art der ungültigen Käufe, die in jeder Antwort angezeigt werden. Wenn dieser Wert auf 0 gesetzt ist, werden nur ungültige In-App-Käufe zurückgegeben. Wenn du diesen Wert auf 1 setzt, werden beide in der App ungültig gemacht Käufe und ungültige Abonnementkäufe werden zurückgegeben. Standardwert ist 0.
- includeQuantityBasedPartialRefund
ob ungültige Käufe bei mengenbasierten teilweisen Erstattungen berücksichtigt werden sollen, die nur für Käufe in variabler Stückzahl gelten. Wenn
true
, weitere ungültige Käufe können mitvoidedQuantity
zurückgegeben werden. , der die Erstattungsmenge einer mengenbasierten teilweisen Erstattung angibt. Der Standardwert istfalse
.
Die Antwort ist ein JSON-String, der eine Liste ungültiger Käufe enthält. Wenn es
mehr Ergebnisse als im Anfrageparameter maxResults
angegeben sind
enthält, enthält die Antwort einen nextPageToken
-Wert, den Sie an einen
nachfolgende Anfrage, um weitere Ergebnisse anzuzeigen. Das erste Ergebnis in der Liste
ältester ungültiger Kauf.
{ "tokenPagination": { "nextPageToken": "next_page_token" }, "voidedPurchases": [ { "kind": "androidpublisher#voidedPurchase", "purchaseToken": "some_purchase_token", "purchaseTimeMillis": "1468825200000", "voidedTimeMillis": "1469430000000", "orderId": "some_order_id", "voidedSource": "0", "voidedReason": "4" }, { "kind": "androidpublisher#voidedPurchase", "purchaseToken": "some_other_purchase_token", "purchaseTimeMillis": "1468825100000", "voidedTimeMillis": "1470034800000", "orderId": "some_other_order_id", "voidedSource": "2", "voidedReason": "5" }, ] }
Kontingente
Die Voided Purchases API legt die folgenden Kontingente pro Paket fest:
- 6.000 Abfragen pro Tag. Der Tag beginnt und endet um Mitternacht (Pacific Time).
- 30 Abfragen innerhalb von 30 Sekunden
Richtlinien für erste Anträge
Während der ersten API-Anfrage möchten Sie möglicherweise alle verfügbaren Daten für für Ihre App. Obwohl es unwahrscheinlich ist, könnte dieser Prozess Ihr Tageskontingent erschöpfen. Bis Daten zu ungültigen Käufen sicherer und einheitlicher zu erhalten, Best Practices:
- Verwenden Sie für den Parameter
maxResults
den Standardwert. Wenn Sie dann Ihres gesamten Abfragekontingents für einen Tag, können Sie die Details von 6.000.000 ungültige Käufe an. - Wenn eine Antwort einen Wert für
nextPageToken
enthält, weisen Sie diesen Wert demtoken
-Parameter bei der nächsten Anfrage.
Best Practices
Wenn Sie diese API in Ihrer App verwenden, denken Sie daran, dass es viele Gründe für die Stornierung eines Kaufs und dass es keine alle Fälle. Berücksichtigen Sie bei der Gestaltung Ihres Widerrufs die Nutzer im Hinterkopf Richtlinien und Strategien. Dazu können Sie die folgenden empfohlenen Vorgehensweisen anwenden:
- Nutzen Sie diese API als eines von vielen Elementen in einer umfassenden Strategie, um unerwünschtes Verhalten. In der Regel ist es effektiver, den Zugriff auf In-App-Produkte zu widerrufen in Kombination mit einer App mit vernünftigen Preisen für In-App-Käufe, App-Design, das unerwünschtes Verhalten abschreckt, eine starke Nutzerbasis hat, die Kultur dieses Verhaltens ablehnt, und der schnellen und effizienten Support Kanäle.
- Verwalten Sie Ihre Widerrufsrichtlinie einheitlich, um Fairness für alle Nutzer zu gewährleisten.
- Erwägen Sie die Erstellung einer gestaffelten Richtlinie, wenn Sie gegen unerwünschtes Verhalten vorgehen. Für beginnen Sie mit In-App-Warnungen bei frühzeitigen Verstößen und eskalieren Sie wenn das unerwünschte Verhalten des Nutzers fortbesteht. Als letzte Option können Sie verhindern, dass ein Nutzer mit Ihrer App interagiert.
- Wenn Sie eine Widerrufsrichtlinie einführen, verwenden Sie bei jeder Aktualisierung Ihre nutzen, um Ihre Nutzer über die Änderungen zu informieren. Geben Sie Ihren Nutzern Zeit, diese Änderungen klar zu verstehen, bevor sie in Ihrer App wirksam werden.
- Seien Sie Ihren Nutzern gegenüber transparent und informieren Sie sie, wenn Sie Maßnahmen ergreifen, z. B. Widerrufen des Zugriffs auf ein In-App-Produkt Idealerweise sollten Nutzende Ihre Entscheidungen anfechten. Solche Einsprüche sollten fair behandelt werden.
- Überwachen Sie Feedbackformulare und Community-Foren, um zu verstehen, was Nutzer motiviert. sich auf unerwünschte Weise verhalten und wie sie ein solches Verhalten ausführen. Maßnahmen ergreifen als erste Abwehrlinie.