Einmalkaufprodukte haben einen einfacheren Lebenszyklus als Abo-Produkte. Es gibt aber dennoch mehrere Status und Übergangsereignisse, die Ihr Backend ordnungsgemäß verarbeiten muss.
Neue Einmalkaufprodukte
Nachdem der Nutzer den Abrechnungsablauf abgeschlossen hat, kann Ihre App auf eine der folgenden Arten Informationen zum neuen Kauf abrufen:
- Richten Sie
Real-time developer notificationsein und aktivieren SieGet all notifications for subscriptions and one-time products, um Updates zum Status von Käufen zu erhalten. - Implementieren Sie die
PurchasesUpdatedListenerSchnittstelle ausBillingClient, um automatisch Kauf-Updates zu erhalten. - Rufen Sie die
BillingClient.queryPurchasesAsync()Methode auf.
Nachdem Sie den neuen Kauf erhalten haben, verwenden Sie 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.
Um den Kaufstatus Ihres Backends zu aktualisieren, rufen Sie mit dem im
OneTimeProductNotification Objekt angegebenen Kauf-Token die
purchases.productsv2.getproductpurchasev2
Methode auf. Diese Methode liefert den aktuellen Kauf- und Verbrauchsstatus für ein bestimmtes Kauf-Token.
Wenn eine Vorbestellung ausgeführt wird und sich der Kaufstatus in „PURCHASED“ ändert, wird eine Entwicklerbenachrichtigung in Echtzeit an Ihren Client gesendet. Nachdem Sie die Entwicklerbenachrichtigung in Echtzeit erhalten haben, verarbeiten Sie den Kauf der Vorbestellung wie unter Einmalkaufprodukte in Ihrem Backend verarbeiten beschrieben.
Transaktionsbezogene Entwicklerbenachrichtigungen in Echtzeit 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 Entwicklerbenachrichtigung in Echtzeit erhalten, verarbeiten Sie den Kauf wie unter Einmalkaufprodukte
in Ihrem 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 Sie Entwicklerbenachrichtigungen in Echtzeit konfiguriert haben. Das kann beispielsweise passieren, wenn der Nutzer die Zahlung nicht innerhalb des erforderlichen Zeitraums abschließt oder wenn der Kauf vom Entwickler oder auf Anfrage des Kunden widerrufen wird. Wenn Ihr Backend-Server diese Benachrichtigung erhält, rufen Sie die
purchases.productsv2.getproductpurchasev2
Methode auf, um den aktuellen Kaufstatus abzurufen, und aktualisieren Sie dann Ihr Backend entsprechend,
einschließlich der Nutzerberechtigungen.
Wenn ein Einmalkaufprodukt mit dem Status Purchased erstattet wird, werden Sie auch
über die Voided Purchases API informiert.
Einmalkaufprodukte in Ihrem Backend verarbeiten
Unabhängig davon, ob Sie einen neuen Kauf über eine ONE_TIME_PRODUCT_PURCHASED
Echtzeit-Entwicklerbenachrichtigung
erkannt haben oder in der App über
PurchasesUpdatedListener oder Käufe manuell
abgerufen in der Methode onResume() Ihrer App, 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 einmaligen Kauf:
- Fragen Sie den
purchases.productsv2.getproductpurchasev2Endpunkt ab, um den aktuellen Status des Einmalkaufprodukts zu erhalten. Um diese Methode für einen Kauf aufzurufen, benötigen Sie das entsprechendepurchaseTokenentweder aus Ihrer App oder aus der Entwicklerbenachrichtigung in Echtzeit vom TypONE_TIME_PRODUCT_PURCHASED. - Rufen Sie
getPurchaseState()auf und prüfen Sie, ob der KaufstatusPURCHASEDist. - Bestätigen Sie den Kauf.
- Gewähren Sie dem Nutzer Zugriff auf die Inhalte. Das mit dem
Kauf verknüpfte Nutzerkonto kann über das
obfuscatedExternalAccountIdFeld auspurchases.productsv2.getproductpurchasev2identifiziert werden, sofern es bei der Kaufabwicklung mitsetObfuscatedAccountId()festgelegt wurde.- Bei Käufen von nicht verbrauchbaren Produkten bestätigen Sie die Lieferung der
Inhalte mit der
purchases.products.acknowledgeMethode. Prüfen Sie im FeldacknowledgementState, ob der Kauf bereits bestätigt wurde. - Wenn das Produkt verbrauchbar ist, markieren Sie es mit der
purchases.products.consumeMethode als verbraucht, damit der Nutzer es nach dem Verbrauch noch einmal kaufen kann. Mit dieser Methode wird auch der Kauf bestätigt.
- Bei Käufen von nicht verbrauchbaren Produkten bestätigen Sie die Lieferung der
Inhalte mit der
In der Play Billing Library sind auch Methoden zur Kaufbestätigung und zum Verbrauch verfügbar, mit denen Sie Käufe aus Ihrer App verarbeiten können. Wir empfehlen jedoch, die Verarbeitung in Ihrem Backend vorzunehmen, falls Sie eines haben, um die Sicherheit zu erhöhen.