Produkte mit einmaligem Kauf haben einen einfacheren Lebenszyklus als Aboprodukte. Es gibt jedoch weiterhin mehrere Status und Übergangsereignisse, die Ihr Backend richtig verarbeiten muss.
Neue Käufe von Einmalkaufprodukten
Nachdem der Nutzer den Abrechnungsvorgang abgeschlossen hat, kann Ihre App Informationen zum neuen Kauf auf folgende Arten abrufen:
- Richte
Real-time developer notifications
ein und aktiviereGet all notifications for subscriptions and one-time products
, damit es Updates zum Status von Käufen erhält. - Implementiere die
PurchasesUpdatedListener
-Benutzeroberfläche vonBillingClient
, um automatisch Kaufupdates zu erhalten. - Rufen Sie die Methode
BillingClient.queryPurchasesAsync()
auf.
Verwende nach Erhalt des neuen Artikels die Methode getPurchaseState
oder purchases.products.get in Play Developer API
, um den Zahlungsstatus des neuen Artikels zu ermitteln.
Entwicklerbenachrichtigungen in Echtzeit
Wenn ein Nutzer ein einmaliges Produkt kauft oder den Kauf storniert, sendet Google Play eine OneTimeProductNotification
-Nachricht. Wenn du den Kaufstatus im Backend aktualisieren möchtest, verwende das im OneTimeProductNotification
-Objekt bereitgestellte Kauftoken, um die Methode purchases.products.get
aufzurufen. Diese Methode liefert den aktuellen Kauf- und Nutzungsstatus unter Angabe eines Kauftokens.
Wenn eine Vorbestellung ausgeführt wird und der Kaufstatus zu „GEKAUFT“ wechselt, wird eine RTDN an deinen Kunden gesendet. Verarbeite den Vorbestellungskauf nach Erhalt der RTDN wie unter Einmalkaufprodukte in deinem Backend verarbeiten beschrieben.
Sie sollten transaktionsbezogene RTDNs in Ihrem sicheren Backend verarbeiten.
Abgeschlossene Transaktionen verarbeiten
Wenn ein Nutzer ein Produkt einmalig kauft, sendet Google Play eine OneTimeProductNotification
-Nachricht vom Typ ONE_TIME_PRODUCT_PURCHASED
.
Wenn du diese RTDN erhältst, bearbeite den Kauf wie unter Einmalige Käufe von Produkten in deinem Backend verarbeiten beschrieben.
Umgang mit stornierten Transaktionen
Wenn ein einmaliger Produktkauf storniert wird, sendet Google Play eine OneTimeProductNotification
-Nachricht vom Typ ONE_TIME_PRODUCT_CANCELED
, wenn Sie konfiguriert haben, dass Sie Entwicklerbenachrichtigungen in Echtzeit erhalten.
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 Kundenanfrage widerrufen wird. Wenn dein Backend-Server diese Benachrichtigung erhält, rufe die Methode purchases.products.get
auf, um den aktuellen Kaufstatus abzurufen, und aktualisiere dein Backend entsprechend, einschließlich der Berechtigungen der Nutzer.
Wenn ein Einmalkauf im Status Purchased
erstattet wird, werden Sie auch über die Voided Purchases API benachrichtigt.
Einmalige Produktkäufe in Ihrem Backend verarbeiten
Unabhängig davon, ob Sie einen neuen Kauf über eine ONE_TIME_PRODUCT_PURCHASED
-Entwicklerbenachrichtigung in Echtzeit erkannt haben, ob Sie in der App über PurchasesUpdatedListener
benachrichtigt wurden oder ob Sie Käufe manuell über die onResume()
-Methode Ihrer App abgerufen haben, müssen Sie den neuen Kauf verarbeiten. Wir empfehlen, die Kaufabwicklung in Ihrem Backend zu verarbeiten, um die Sicherheit zu erhöhen.
So bearbeitest du einen neuen einmaligen Kauf:
- Rufe den Endpunkt
purchases.products.get
auf, um den aktuellen Status des einmaligen Produktkaufs abzurufen. Wenn Sie diese Methode für einen Kauf aufrufen möchten, benötigen Sie den entsprechendenpurchaseToken
entweder aus Ihrer App oder aus demONE_TIME_PRODUCT_PURCHASED
RTDN. - Rufe
getPurchaseState()
an und prüfe, ob der KaufstatusPURCHASED
lautet. - Bestätige den Kauf.
- Gewähren Sie dem Nutzer Zugriff auf die Inhalte. Das mit dem Kauf verknüpfte Nutzerkonto kann über das Feld
obfuscatedExternalAccountId
auspurchases.products.get
identifiziert werden, sofern es beim Kauf mitsetObfuscatedAccountId()
festgelegt wurde.- Bestätige bei Käufen von nicht verbrauchbaren Produkten die Zustellung der Inhalte, indem du die Methode
purchases.products.acknowledge
aufrufst. Prüfe im FeldacknowledgementState
, ob der Kauf bereits bestätigt wurde. - Wenn es sich um ein Verbrauchsprodukt handelt, kennzeichnen Sie den Artikel als verbraucht, indem Sie die Methode
purchases.products.consume
aufrufen. So kann der Nutzer den Artikel nach dem Verbrauch noch einmal kaufen. Mit dieser Methode wird auch der Kauf bestätigt.
- Bestätige bei Käufen von nicht verbrauchbaren Produkten die Zustellung der Inhalte, indem du die Methode
In der Play Billing Library sind auch Methoden zur Bestätigung und zum Verbrauch von Käufen verfügbar, mit denen Sie Käufe in Ihrer App verarbeiten können. Wir empfehlen jedoch, die Verarbeitung in Ihrem Backend zu übernehmen, falls Sie eines haben, um eine sicherere Implementierung zu ermöglichen.