API für stornierte Käufe

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Die Google Play Voided Purchases API bietet eine Liste von Bestellungen, die mit von Nutzern stornierten Käufen verknüpft sind. Anhand dieser Informationen können Sie ein Sperrsystem implementieren, das den Nutzer daran hindert, auf Produkte aus diesen Bestellungen zuzugreifen.

Diese API gilt für einmalige In-App-Bestellungen und App-Abos.

Ein Kauf kann auf folgende Weise für ungültig erklärt werden:

  • Der Nutzer fordert eine Erstattung für seine Bestellung an.
  • Der Nutzer storniert seine Bestellung.
  • Eine Bestellung wird in Rechnung gestellt.
  • Der Entwickler storniert oder erstattet die Bestellung. Hinweis: In der Voided Purchases API werden nur widerrufene Bestellungen angezeigt. Wenn Entwickler Erstattungen ohne Festlegung einer Widerrufsoption vornehmen, werden Bestellungen nicht in der API angezeigt.
  • Google storniert oder erstattet die Bestellung.

Mit dieser API können Sie für alle Nutzer Ihrer App eine ausgewogenere und fairere Nutzung ermöglichen, insbesondere wenn es sich bei Ihrer App um ein Spiel handelt.

Zugriff erhalten

Wenn Sie die Voided Purchases API verwenden möchten, benötigen Sie die Berechtigung zum Aufrufen von Finanzinformationen. Die Autorisierung erfolgt über einen OAuth-Client oder ein Dienstkonto. Wenn Sie ein Dienstkonto verwenden, aktivieren Sie in diesem Konto die Berechtigung „Finanzberichte abrufen“.

Weitere Informationen dazu, wie Sie autorisierten Zugriff auf Google Play Developer APIs erhalten, finden Sie in den folgenden Leitfäden:

Ungültige Käufe ansehen

Verwenden Sie die Methode GET, um eine Liste der stornierten Käufe anzufordern. Gib in deiner Anfrage den voll qualifizierten Paketnamen für deine App, z. B. com.google.android.apps.maps, und das Autorisierungstoken an, das du erhalten hast, als du Zugriff auf die API erhalten hast.

GET https://www.googleapis.com/androidpublisher/v3/applications/
your_package_name/purchases/voidedpurchases?access_token=your_auth_token

Sie können in Ihrer Anfrage auch die folgenden Parameter angeben, die jeweils optional sind:

Startzeit

Die Zeit in Millisekunden seit der UNIX-Epoche für den ältesten stornierten Kauf, den Sie in der Antwort sehen möchten. Standardmäßig ist startTime auf 30 Tage festgelegt.

Die API kann nur stornierte Käufe anzeigen, die in den letzten 30 Tagen stattgefunden haben. Ältere nicht mehr gültige Käufe sind in der Antwort nicht enthalten, unabhängig vom Wert, den Sie für startTime angegeben haben.

Ende

Die Zeit in Millisekunden seit der UNIX-Epoche für den neuesten stornierten Kauf, den Sie in der Antwort sehen möchten. Standardmäßig ist endTime auf die aktuelle Zeit festgelegt.

maxResults (max. Ergebnisse)
Die maximale Anzahl an stornierten Käufen, die in jeder Antwort erscheinen. Der Standardwert ist 1.000. Der Höchstwert für diesen Parameter ist ebenfalls 1.000.
Token
Ein Fortsetzungs-Token aus einer vorherigen Antwort, mit dem Sie mehr Ergebnisse ansehen können.
Typ

Der Typ der stornierten Käufe, die in den einzelnen Antworten angezeigt werden. Wenn dieser Wert auf 0 gesetzt ist, werden nur ungültige In-App-Käufe zurückgegeben. Wenn dieser Wert auf „1“ gesetzt ist, werden sowohl stornierte In-App-Käufe als auch stornierte Abokäufe zurückgegeben. Der Standardwert ist 0.

Die Antwort ist ein JSON-String, der eine Liste von ungültigen Käufen enthält. Wenn es mehr Ergebnisse gibt als die im Anfrageparameter maxResults angegebene Zahl, enthält die Antwort einen nextPageToken-Wert, den Sie an eine nachfolgende Anfrage übergeben können, um mehr Ergebnisse zu sehen. Das erste Ergebnis in der Liste zeigt den ältesten stornierten 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 in einem beliebigen 30-Sekunden-Zeitraum

Richtlinien für erste Anfragen

Während der ersten API-Anfrage möchten Sie möglicherweise alle verfügbaren Daten für Ihre App abrufen. Obwohl dieser Vorgang unwahrscheinlich ist, kann Ihr tägliches Kontingent erschöpft sein. Beachte die folgenden Best Practices, um Daten zu ungültigem Kauf besser und einheitlicher abzurufen:

  • Verwenden Sie den Standardwert für den Parameter maxResults. Wenn Sie Ihr gesamtes Abfragekontingent für einen Tag verwenden, können Sie die Details von 6.000.000 gültigen Käufen abrufen.
  • Wenn eine Antwort einen Wert für nextPageToken enthält, weisen Sie diesen Wert bei Ihrer nächsten Anfrage dem Parameter token zu.

Best Practices

Wenn du die Verwendung dieser API in deiner App festlegst, denke daran, dass es viele Gründe gibt, einen Kauf zu stornieren, und dass es keine einzelne Lösung gibt, die in allen Fällen funktioniert. Beachte deine Nutzer beim Entwerfen deiner Widerrufsrichtlinien und -strategien. Dabei können Sie die folgenden empfohlenen Vorgehensweisen anwenden:

  • Verwenden Sie diese API als eines von vielen Elementen in einer umfassenden Strategie, um unerwünschtes Verhalten zu vermeiden. In der Regel ist der Widerruf des Zugriffs auf In-App-Produkte in Kombination mit einer App mit vernünftigen Preisen für In-App-Käufe, einem App-Design, das unerwünschtes Verhalten erschwert, und einer starken Nutzerbasis, die ein solches Verhalten ablehnt, sowie einem responsiven und effizienten Nutzersupportkanal möglich.
  • Verwalte deine Widerrufsrichtlinie einheitlich, damit alle Nutzer unterbrechungsfrei behandelt werden.
  • Bei unerwünschtem Verhalten können Sie eine gestaffelte Richtlinie erstellen. Beginne beispielsweise mit In-App-Warnungen für erste Verstöße und eskalieren Sie dann Ihre Antworten, wenn das unerwünschte Verhalten des Nutzers fortgesetzt wird. Als letzte Möglichkeit können Sie verhindern, dass ein Nutzer mit Ihrer App interagiert.
  • Wenn du eine Widerrufsrichtlinie einrichtest und sie bei jeder Aktualisierung aktualisierst, informiere deine Nutzer mithilfe der entsprechenden Kanäle deiner App über die Änderungen. Gib deinen Nutzern Zeit, um diese Änderungen genau zu verstehen, bevor sie in deiner App wirksam werden.
  • Du musst für deine Nutzer transparent sein und sie informieren, wenn du Maßnahmen triffst, z. B. um ihren Zugriff auf ein In-App-Produkt zu widerrufen. Idealerweise sollten Nutzer in der Lage sein, deine Entscheidungen anzufechten und solche Streitigkeiten fair zu behandeln.
  • Beobachten Sie Feedbackformulare und Community-Foren, um herauszufinden, warum Nutzer sich auf unerwünschte Weise verhalten und wie sie ein solches Verhalten verhalten. Nutzen Sie diese Erkenntnisse als erste Verteidigungslinie.