Produkte mit einmaligem Kauf haben einen einfacheren Lebenszyklus als Aboprodukte. Es gibt aber immer noch mehrere Status und Übergangsereignisse, die dein Back-End ordnungsgemäß verarbeiten können muss.
Neue einmalige Produktkäufe
Nachdem der Nutzer den Abrechnungsvorgang abgeschlossen hat, kann deine App Informationen zum neuen Kauf auf eine der folgenden Arten abrufen:
- Richte
Real-time developer notifications
ein und aktiviereGet all notifications for subscriptions and one-time products
, um Benachrichtigungen zum Status von Käufen zu erhalten. - Implementiere die
PurchasesUpdatedListener
-Schnittstelle vonBillingClient
, um automatisch Updates zu Käufen zu erhalten. - Rufen Sie die Methode
BillingClient.queryPurchasesAsync()
auf.
Nachdem du den neuen Kauf erhalten hast, verwende die Methode getPurchaseState
oder purchases.products.get in Play Developer API
, um den Zahlungsstatus des neuen Kaufs zu ermitteln.
Entwicklerbenachrichtigungen in Echtzeit
Wenn ein Nutzer den Kauf eines Einmalprodukts kauft oder storniert, sendet Google Play eine OneTimeProductNotification
-Nachricht. Verwende zum Aktualisieren des Back-End-Kaufstatus das im OneTimeProductNotification
-Objekt enthaltene Kauftoken, um die Methode purchases.products.get
aufzurufen. Diese Methode stellt den letzten Kauf- und Verbrauchsstatus anhand eines Kauftokens bereit.
Transaktionsbezogene RTDNs sollten in Ihrem sicheren Backend verarbeitet werden.
Abgeschlossene Transaktionen verarbeiten
Wenn ein Nutzer einen einmaligen Produktkauf abschließt, sendet Google Play eine OneTimeProductNotification
-Nachricht vom Typ ONE_TIME_PRODUCT_PURCHASED
.
Wenn du diese RTDN erhältst, verarbeite den Kauf wie unter Einmalige Produktkäufe im Backend verarbeiten beschrieben.
Stornierte Transaktionen verarbeiten
Wenn ein einmaliger Produktkauf storniert wird, sendet Google Play eine OneTimeProductNotification
-Nachricht vom Typ ONE_TIME_PRODUCT_CANCELED
, wenn du für den Empfang von Entwicklerbenachrichtigungen in Echtzeit konfiguriert hast.
Das kann beispielsweise der Fall sein, wenn der Nutzer die Zahlung nicht innerhalb des erforderlichen Zeitraums abschließt oder der Kauf vom Entwickler oder auf Anfrage des Kunden widerrufen wird. Wenn dein Backend-Server diese Benachrichtigung erhält, rufe die Methode purchases.products.get
auf, um den aktuellen Kaufstatus abzurufen. Aktualisiere dann dein Backend einschließlich der Nutzerberechtigungen entsprechend.
Wenn ein einmaliger Produktkauf im Status Purchased
erstattet wird, wirst du ebenfalls über die Voided Purchases API darüber informiert.
Einmalige Produktkäufe im Backend verarbeiten
Der neue Kauf muss unabhängig davon verarbeitet werden, ob du über eine ONE_TIME_PRODUCT_PURCHASED
-RTDN einen neuen Kauf erkannt hast oder über PurchasesUpdatedListener
auf einen In-App-Kauf aufmerksam gemacht hast oder über die Methode onResume()
deiner App Käufe manuell abgerufen hast. Aus Sicherheitsgründen empfehlen wir, die Kaufabwicklung in deinem Back-End vorzunehmen.
So verarbeiten Sie einen neuen einmaligen Kauf:
- Fragen Sie den Endpunkt
purchases.products.get
ab, um den aktuellen Status des einmaligen Kaufs eines Produkts zu erhalten. Wenn du diese Methode für einen Kauf aufrufen möchtest, benötigst du die entsprechendepurchaseToken
entweder aus deiner App oder aus derONE_TIME_PRODUCT_PURCHASED
RTDN. - Rufe
getPurchaseState()
auf und achte darauf, dass der KaufstatusPURCHASED
lautet. - Bestätigen Sie den Kauf.
- Gewähren Sie dem Nutzer Zugriff auf die Inhalte. Das mit dem Kauf verknüpfte Nutzerkonto kann anhand des Felds
obfuscatedExternalAccountId
vonpurchases.products.get
identifiziert werden, wenn eines mitsetObfuscatedAccountId()
beim Kauf festgelegt wurde.- Bestätige bei Kauf von nicht konsumierbaren Produkten die Übermittlung des Inhalts durch Aufrufen der Methode
purchases.products.acknowledge
. Prüfen Sie im FeldacknowledgementState
, ob der Kauf bereits bestätigt wurde. - Wenn das Produkt Verbrauchsgüter ist, markiere den Artikel durch Aufrufen der Methode
purchases.products.consume
als Verbrauch, damit der Nutzer den Artikel wieder kaufen kann, nachdem er ihn verbraucht hat. Mit dieser Methode wird auch der Kauf bestätigt.
- Bestätige bei Kauf von nicht konsumierbaren Produkten die Übermittlung des Inhalts durch Aufrufen der Methode
In der Play Billing Library gibt es auch Methoden zur Bestätigung und Nutzung von Käufen, mit denen du Käufe in deiner App verarbeiten kannst. Wir empfehlen jedoch, die Verarbeitung in deinem Backend abzuwickeln, wenn du eines für eine sicherere Implementierung hast.