Entwicklernutzlast

Die Entwickler-Payload wurde in der Vergangenheit für verschiedene Zwecke verwendet, darunter Betrugsprävention und Zuordnung von Käufen zum richtigen Nutzer. In Version 2.2 und höher der Google Play Billing Library werden Anwendungsfälle, die zuvor auf die Entwickler-Payload angewiesen waren, jetzt vollständig in anderen Teilen der Bibliothek unterstützt.

Da diese Unterstützung vorhanden ist, haben wir die Entwickler-Payload eingestellt. Das gilt ab Version 2.2 der Google Play Billing Library. Methoden, die mit der Entwickler-Payload verknüpft sind, wurden in Version 2.2 verworfen und in Version 3.0 entfernt. Ihre App kann weiterhin die Entwickler-Payload für Käufe abrufen, die mit früheren Versionen der Bibliothek oder mit AIDL getätigt wurden.

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

Bestätigung von Käufen

Damit Käufe authentisch sind und nicht gefälscht oder wiederholt werden, empfiehlt Google, das Kauf-Token (das über die Methode getPurchaseToken() im Objekt Purchase abgerufen wird) zusammen mit den Google Play Developer APIs zu verwenden, um zu überprüfen, ob Käufe authentisch sind. Weitere Informationen finden Sie unter Betrug und Missbrauch bekämpfen.

Attribution von Käufen

Bei vielen Apps, insbesondere Spielen, muss sichergestellt werden, dass ein Kauf dem In-Game-Charakter/Avatar oder dem In-App-Nutzerprofil zugeordnet wird, von dem der Kauf initiiert wurde. Ab Google Play Billing Library 2.2 kann Ihre App verschleierte Konto- und Profil-IDs an Google übergeben, wenn der Kaufdialog gestartet wird. Diese werden dann beim Abrufen eines Kaufs zurückgegeben.

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 Backend-Server zu speichern, den Sie verwalten. Diese Kaufmetadaten sollten mit dem Kauf-Token verknüpft werden, das mit der Methode getPurchaseToken im Objekt Purchase abgerufen wurde. Diese Daten können beibehalten werden, indem Sie das Kauf-Token und die Metadaten an Ihr Backend übergeben, wenn PurchasesUpdatedListener nach einem erfolgreichen Kauf aufgerufen wird.

Damit Metadaten im Falle von Unterbrechungen des Kaufvorgangs zugeordnet werden, empfiehlt Google, die Metadaten auf Ihrem Backend-Server zu speichern, bevor Sie den Kaufdialog starten, und sie der Konto-ID des Nutzers, der gekauften Artikelnummer und dem aktuellen Zeitstempel zuzuordnen.

Wenn der Kaufvorgang unterbrochen wird, bevor PurchasesUpdatedListener aufgerufen wird, erkennt Ihre App den Kauf, sobald sie fortgesetzt wird und BillingClient.queryPurchasesAsync() aufruft. Anschließend können Sie die Werte, die Sie mit den Methoden getPurchaseTime(), getSku() und getPurchaseToken() des Purchase-Objekts abgerufen haben, an Ihren Backend-Server senden, um Metadaten abzurufen, die Metadaten mit dem Kauf-Token zu verknüpfen und den Kauf weiter zu verarbeiten. Der Zeitstempel, den Sie ursprünglich gespeichert haben, stimmt nicht genau mit dem Wert aus dem Purchase-Objekt getPurchaseTime() überein. Sie müssen die Werte also ungefähr vergleichen. Sie können beispielsweise prüfen, ob die Werte innerhalb eines bestimmten Zeitraums liegen.