Einmalige Käufe haben einen einfacheren Lebenszyklus als Abos. Es gibt aber trotzdem mehrere Status und Übergangsereignisse, die dein Backend richtig verarbeiten muss.
Neue Einmalkaufprodukte
Nachdem der Nutzer den Abrechnungsvorgang abgeschlossen hat, kann deine App auf eine der folgenden Arten Informationen zum neuen Kauf abrufen:
- Richte
Real-time developer notificationsein und aktiviereGet all notifications for subscriptions and one-time products, um Updates zum Status von Käufen zu erhalten. - Implementiere die
PurchasesUpdatedListenerSchnittstelle vonBillingClient, um automatisch Kauf-Updates zu erhalten. - Rufe die
BillingClient.queryPurchasesAsync()Methode auf.
Verwende nach Erhalt des neuen Kaufs die
getPurchaseState Methode oder
purchases.productsv2.getproductpurchasev2 in Play Developer API
, um den Zahlungsstatus des neuen Kaufs zu ermitteln.
Entwicklerbenachrichtigungen in Echtzeit
Wenn ein Nutzer ein Einmalkaufprodukt kauft oder den Kauf storniert, sendet Google Play eine OneTimeProductNotification Nachricht.
Verwende das im
OneTimeProductNotification Objekt bereitgestellte Kauf-Token, um den Kaufstatus in deinem Backend zu aktualisieren. Rufe dazu die
purchases.productsv2.getproductpurchasev2
Methode auf. Diese Methode liefert den aktuellen Kauf- und Nutzungsstatus für ein bestimmtes Kauf-Token.
Wenn eine Vorbestellung ausgeführt wird und sich der Kaufstatus in „GEKAUFT“ ändert, wird eine Entwicklerbenachrichtigung in Echtzeit an deinen Client gesendet. Verarbeite nach Erhalt der RTDN den Kauf des Einmalkaufprodukts der Vorbestellung wie unter Einmalige Produktkäufe in deinem Backend verarbeiten beschrieben.
Transaktionsbezogene Entwicklerbenachrichtigungen in Echtzeit sollten in deinem sicheren Backend verarbeitet werden.
Abgeschlossene Transaktionen verarbeiten
Wenn ein Nutzer einen Einmalkaufprodukt abschließt, sendet Google Play eine OneTimeProductNotification-Nachricht mit dem Typ ONE_TIME_PRODUCT_PURCHASED.
Verarbeite den Kauf nach Erhalt dieser RTDN wie unter Einmalkaufprodukte in deinem Backend verarbeiten beschrieben.
Stornierte Transaktionen verarbeiten
Wenn ein Einmalkaufprodukt storniert wird, sendet Google Play eine OneTimeProductNotification-Nachricht mit dem Typ ONE_TIME_PRODUCT_CANCELED, sofern du Entwicklerbenachrichtigungen in Echtzeit konfiguriert hast. Das kann beispielsweise passieren, wenn der Nutzer die Zahlung nicht innerhalb des erforderlichen Zeitraums abschließt oder wenn der Kauf auf Anfrage des Entwicklers oder des Kunden widerrufen wird. Wenn dein Backend-Server diese Benachrichtigung erhält, rufe die
purchases.productsv2.getproductpurchasev2
Methode auf, um den aktuellen Kaufstatus abzurufen. Aktualisiere dann dein Backend entsprechend,
einschließlich der Nutzerberechtigungen.
Wenn ein einmaliger Produktkauf mit dem Status Purchased erstattet wird, wirst du auch
über die API für stornierte Käufe benachrichtigt.
Einmalkaufprodukte in deinem Backend verarbeiten
Unabhängig davon, ob du einen neuen Kauf über eine ONE_TIME_PRODUCT_PURCHASED
Entwicklerbenachrichtigung in Echtzeit
erkannt hast oder in der App über
PurchasesUpdatedListener oder durch manuelles Abrufen
von Käufen in der onResume()-Methode deiner App benachrichtigt wurdest, musst du
den neuen Kauf verarbeiten. Wir empfehlen, die Kaufabwicklung in deinem Backend durchzuführen, um die Sicherheit zu erhöhen.
So verarbeitest du einen neuen einmaligen Kauf:
- Rufe den
purchases.productsv2.getproductpurchasev2Endpunkt ab, um den aktuellen Status des Einmalkaufprodukts zu erhalten. Um diese Methode für einen Kauf aufzurufen, benötigst du das entsprechendepurchaseTokenentweder aus deiner App oder aus derONE_TIME_PRODUCT_PURCHASED-Entwicklerbenachrichtigung in Echtzeit. - Rufe
getPurchaseState()auf und prüfe, ob der KaufstatusPURCHASEDist. - Bestätige den Kauf.
- Gewähre dem Nutzer Zugriff auf die Inhalte. Das mit dem
Kauf verknüpfte Nutzerkonto kann über das
obfuscatedExternalAccountIdFeld vonpurchases.productsv2.getproductpurchasev2identifiziert werden, sofern beim Kauf mitsetObfuscatedAccountId()ein Konto festgelegt wurde.- Bestätige bei Käufen von nicht verbrauchbaren Produkten die Lieferung der
Inhalte, indem du die
purchases.products.acknowledgeMethode aufrufst. Prüfe im FeldacknowledgementState, ob der Kauf bereits bestätigt wurde. - Wenn das Produkt verbrauchbar ist, markiere es mit der
purchases.products.consumeMethode als verbraucht, damit der Nutzer es nach dem Verbrauch wieder kaufen kann. Mit dieser Methode wird auch der Kauf bestätigt.
- Bestätige bei Käufen von nicht verbrauchbaren Produkten die Lieferung der
Inhalte, indem du die
In der Play Billing Library sind auch Methoden zur Kaufbestätigung und zum Verbrauch verfügbar, mit denen du Käufe aus deiner App verarbeiten kannst. Wir empfehlen jedoch, die Verarbeitung in deinem Backend durchzuführen, falls du eines hast, um die Sicherheit zu erhöhen.