Entwicklernutzlast

Die Entwicklernutzlast wurde in der Vergangenheit für verschiedene Zwecke verwendet, z. B. zur Betrugsprävention und zum Zuordnen von Käufen dem richtigen Nutzer. Mit Version 2.2 und höher der Google Play Billing Library werden Anwendungsfälle, die zuvor auf der Entwicklernutzlast basierten, jetzt in anderen Teilen der Bibliothek vollständig unterstützt.

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

Eine detaillierte Liste der Änderungen finden Sie in den Versionshinweisen zur Google Play Billing Library 2.2 und in 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 Kauftoken (erhältlich über die Methode getPurchaseToken() im Objekt Purchase) zusammen mit den Google Play Developer APIs zu verwenden, um die Authentizität von Käufen zu überprüfen. Weitere Informationen finden Sie unter Betrug und Missbrauch bekämpfen.

Attribution für Käufe

Bei vielen Apps, insbesondere bei Spielen, muss sichergestellt werden, dass ein Kauf dem In-Game-Charakter/Avatar oder dem In-App-Nutzerprofil korrekt zugeordnet wird, über das der Kauf initiiert wurde. Ab Google Play Billing Library 2.2 kann Ihre App verschleierte Konto- und Profil-IDs an Google übergeben, wenn das Kaufdialogfeld geöffnet wird, und sie beim Abrufen eines Kaufs zurückgeben.

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 müssen mit dem Kauftoken verknüpft sein, das mit der Methode getPurchaseToken im Objekt Purchase abgerufen wurde. Diese Daten können beibehalten werden, indem du das Kauftoken und die Metadaten an dein Backend übergibst, wenn deine PurchasesUpdatedListener nach einem erfolgreichen Kauf aufgerufen wird.

Damit Metadaten bei Unterbrechungen des Kaufvorgangs verknüpft werden können, empfiehlt Google, die Metadaten auf Ihrem Backend-Server zu speichern, bevor das Kaufdialogfeld geöffnet wird, und sie mit der Konto-ID des Nutzers, der gekauften SKU und dem aktuellen Zeitstempel zu verknüpfen.

Wenn der Kaufvorgang unterbrochen wird, bevor PurchasesUpdatedListener aufgerufen wird, erkennt Ihre App den Kauf, sobald die App fortgesetzt wird und BillingClient.queryPurchasesAsync() aufgerufen wird. Du kannst dann die Werte, die über die Methoden getPurchaseTime(), getSku() und getPurchaseToken() des Purchase-Objekts abgerufen wurden, an deinen Backend-Server senden, um Metadaten abzurufen, sie mit dem Kauftoken zu verknüpfen und die Kaufabwicklung fortzusetzen. Der von dir ursprünglich gespeicherte Zeitstempel stimmt nicht genau mit dem Wert von getPurchaseTime() des Purchase-Objekts überein. Du musst sie also ungefähr vergleichen. Sie können beispielsweise prüfen, ob die Werte innerhalb eines bestimmten Zeitraums liegen.