Entwicklernutzlast

Die Entwicklernutzlast wurde in der Vergangenheit für verschiedene Zwecke verwendet, einschließlich der Betrugsprävention und der Zuordnung von Käufen dem richtigen Nutzer. Ab Version 2.2 der Google Play Billing Library werden vorgesehene Anwendungsfälle, die zuvor auf Entwicklernutzlast basieren, jetzt in anderen Teilen der Bibliothek vollständig unterstützt.

Mit dieser Unterstützung haben wir die Entwicklernutzlast eingestellt, beginnend mit Version 2.2 der Google Play Billing Library. Methoden, die mit der Entwicklernutzlast verknüpft sind, wurden in Version 2.2 eingestellt und in Version 3.0 entfernt. Ihre App kann Entwicklernutzlasten für Käufe, die entweder mit früheren Versionen der Bibliothek oder mit AIDL getätigt wurden, weiterhin abrufen.

Eine detaillierte Liste der Änderungen finden Sie in den Versionshinweisen zu Google Play Billing Library 2.2 und in den Versionshinweisen zu Google Play Billing Library 3.0.

Bestätigung von Käufen

Damit Käufe authentisch und nicht gefälscht oder wiederholt werden, empfiehlt Google die Verwendung des Kauftokens (über die Methode getPurchaseToken() im Objekt Purchase) zusammen mit den Google Play Developer APIs, um zu prüfen, ob Käufe authentisch sind. Weitere Informationen finden Sie unter Betrug und Missbrauch bekämpfen.

Kaufzuordnung

In vielen Apps, insbesondere Spielen, muss ein Kauf korrekt dem In-Game-Charakter, dem In-Game-Avatar oder dem In-App-Nutzerprofil zugeordnet werden, mit dem der Kauf begonnen hat. Ab Google Play Billing Library 2.2 kann deine App verschleierte Konto- und Profil-IDs an Google übergeben, wenn der Kaufdialog geöffnet wird, und sie können beim Abrufen eines Kaufs zurückgegeben werden.

Verwenden Sie die Parameter setObfuscatedAccountId() und setObfuscatedProfileId() in BillingFlowParams und rufen Sie sie mit der Methode getAccountIdentifiers() im Objekt Purchase ab.

Metadaten mit einem Kauf verknüpfen

Google empfiehlt, Metadaten zu einem Kauf auf einem sicheren Back-End-Server zu speichern. Diese Kaufmetadaten sollten mit dem Kauftoken verknüpft werden, das mit der Methode getPurchaseToken im Objekt Purchase abgerufen wurde. Sie können diese Daten beibehalten, indem Sie das Kauftoken und die Metadaten an Ihr Back-End übergeben, wenn Ihr PurchasesUpdatedListener nach einem erfolgreichen Kauf aufgerufen wird.

Damit Metadaten auch bei Unterbrechungen des Kaufvorgangs zugeordnet werden können, empfiehlt Google, die Metadaten auf deinem Back-End-Server zu speichern, bevor du das Kaufdialogfeld aufrufst, und sie mit der Konto-ID des Nutzers, der gekauften Artikelnummer und dem aktuellen Zeitstempel zu verknüpfen.

Wenn der Kaufvorgang unterbrochen wird, bevor PurchasesUpdatedListener aufgerufen wird, erkennt deine App den Kauf, sobald deine App fortgesetzt wird und BillingClient.queryPurchasesAsync() aufruft. Anschließend können Sie die aus den Methoden getPurchaseTime(), getSku() und getPurchaseToken() des Purchase-Objekts abgerufenen Werte an Ihren Backend-Server senden, um Metadaten abzurufen, die Metadaten mit dem Kauftoken zu verknüpfen und die Verarbeitung des Kaufs fortzusetzen. Der ursprünglich gespeicherte Zeitstempel stimmt nicht genau mit dem Wert aus getPurchaseTime() des Purchase-Objekts überein. Sie müssen die Werte deshalb näher vergleichen. Sie können beispielsweise prüfen, ob sich die Werte in einem bestimmten Zeitraum voneinander befinden.