Einmalkaufprodukte haben einen einfacheren Lebenszyklus als Aboprodukte. Es gibt jedoch mehrere Status und Übergangsereignisse, die Ihr Backend richtig verarbeiten können muss.
Neue Einmalkaufprodukte
Nachdem der Nutzer den Abrechnungsvorgang abgeschlossen hat, kann Ihre App Informationen zum neuen Kauf auf eine der folgenden Arten abrufen:
- Richten Sie
Real-time developer notifications
ein und aktivieren SieGet all notifications for subscriptions and one-time products
, um Updates zum Status von Käufen zu erhalten. - Implementieren Sie die
PurchasesUpdatedListener
-Schnittstelle ausBillingClient
, um automatisch Kaufaktualisierungen zu erhalten. - Rufen Sie die Methode
BillingClient.queryPurchasesAsync()
auf.
Nachdem Sie den neuen Kauf erhalten haben, verwenden Sie die Methode getPurchaseState
oder purchases.productsv2.getproductpurchasev2 in Play Developer API
.
um den Zahlungsstatus des neuen Kaufs zu ermitteln.
Entwicklerbenachrichtigungen in Echtzeit
Wenn ein Nutzer ein einmaliges Produkt kauft oder den Kauf storniert, sendet Google Play eine OneTimeProductNotification
-Nachricht.
Verwenden Sie zum Aktualisieren des Kaufstatus im Backend das im OneTimeProductNotification
-Objekt bereitgestellte Kauf-Token, um die Methode purchases.productsv2.getproductpurchasev2
aufzurufen. Diese Methode liefert den aktuellen Kauf- und Nutzungsstatus für ein Kauf-Token.
Wenn eine Vorbestellung ausgeführt wird und sich der Kaufstatus in PURCHASED ändert, wird eine RTDN an Ihren Client gesendet. Nachdem Sie die RTDN erhalten haben, verarbeiten Sie den Vorbestellungskauf wie unter Einmalkäufe von Produkten in Ihrem Backend verarbeiten beschrieben.
Transaktionsbezogene RTDNs sollten in Ihrem sicheren Backend verarbeitet werden.
Abgeschlossene Transaktionen verarbeiten
Wenn ein Nutzer ein Einmalkaufprodukt kauft, sendet Google Play eine OneTimeProductNotification
-Nachricht mit dem Typ ONE_TIME_PRODUCT_PURCHASED
.
Wenn Sie diese RTDN erhalten, verarbeiten Sie den Kauf wie unter Einmalkäufe von Produkten im Backend verarbeiten beschrieben.
Abgebrochene Transaktionen verarbeiten
Wenn ein einmaliger Produktkauf storniert wird, sendet Google Play eine OneTimeProductNotification
-Nachricht mit dem Typ ONE_TIME_PRODUCT_CANCELED
, sofern Sie Entwicklerbenachrichtigungen in Echtzeit konfiguriert haben. Dies kann beispielsweise passieren, wenn der Nutzer die Zahlung nicht innerhalb des erforderlichen Zeitrahmens abschließt oder wenn der Kauf vom Entwickler oder auf Kundenanfrage hin widerrufen wird. Wenn Ihr Backend-Server diese Benachrichtigung empfängt, rufen Sie die Methode purchases.productsv2.getproductpurchasev2
auf, um den aktuellen Kaufstatus abzurufen. Aktualisieren Sie dann Ihr Backend entsprechend, einschließlich der Nutzerberechtigungen.
Wenn ein Einmalkaufprodukt im Status Purchased
erstattet wird, werden Sie auch über die Voided Purchases API benachrichtigt.
Einmalige Produktkäufe im Backend verarbeiten
Unabhängig davon, ob Sie einen neuen Kauf über eine ONE_TIME_PRODUCT_PURCHASED
RTDN
erkannt haben oder in der App über PurchasesUpdatedListener
oder manuelles Abrufen von Käufen in der onResume()
-Methode Ihrer App darauf aufmerksam gemacht wurden, müssen Sie den neuen Kauf verarbeiten. Wir empfehlen, die Kaufabwicklung in Ihrem Backend vorzunehmen, um die Sicherheit zu erhöhen.
So verarbeiten Sie einen neuen Einmalkauf:
- Fragen Sie den Endpunkt
purchases.productsv2.getproductpurchasev2
ab, um den aktuellen Status des einmaligen Produktkaufs zu erhalten. Wenn Sie diese Methode für einen Kauf aufrufen möchten, benötigen Sie die entsprechendepurchaseToken
entweder aus Ihrer App oder aus demONE_TIME_PRODUCT_PURCHASED
RTDN. - Rufen Sie
getPurchaseState()
an und prüfen Sie, ob der KaufstatusPURCHASED
lautet. - Kauf bestätigen
- Gewähren Sie dem Nutzer Zugriff auf die Inhalte. Das mit dem Kauf verknüpfte Nutzerkonto kann anhand des Felds
obfuscatedExternalAccountId
auspurchases.productsv2.getproductpurchasev2
ermittelt werden, sofern es bei der Durchführung des Kaufs mitsetObfuscatedAccountId()
festgelegt wurde.- Bei Käufen nicht verbrauchbarer Produkte bestätigen Sie die Bereitstellung der Inhalte durch Aufrufen der Methode
purchases.products.acknowledge
. Prüfen Sie im FeldacknowledgementState
, ob der Kauf bereits bestätigt wurde. - Wenn es sich bei dem Produkt um einen Verbrauchsartikel handelt, markieren 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 der Kauf auch bestätigt.
- Bei Käufen nicht verbrauchbarer Produkte bestätigen Sie die Bereitstellung der Inhalte durch Aufrufen der Methode
In der Play Billing Library sind auch Methoden zum Bestätigen und Verarbeiten von Käufen in Ihrer App verfügbar. Wir empfehlen jedoch, die Verarbeitung in Ihrem Backend vorzunehmen, falls Sie eines haben, um die Sicherheit zu erhöhen.