Lebenszyklus einmaliger Kauf

Produkte mit einmaligem Kauf haben einen einfacheren Lebenszyklus als Aboprodukte. Es gibt jedoch weiterhin mehrere Status und Übergangsereignisse, die Ihr Backend richtig verarbeiten muss.

Abbildung 1: Lebenszyklusstatus und Übergangsereignisse für einmalige Käufe.

Neue Käufe von Einmalkaufprodukten

Nachdem der Nutzer den Abrechnungsvorgang abgeschlossen hat, kann Ihre App Informationen zum neuen Kauf auf folgende Arten abrufen:

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:

  1. 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 entsprechenden purchaseToken entweder aus Ihrer App oder aus dem ONE_TIME_PRODUCT_PURCHASED RTDN.
  2. Rufe getPurchaseState() an und prüfe, ob der Kaufstatus PURCHASED lautet.
  3. Bestätige den Kauf.
  4. Gewähren Sie dem Nutzer Zugriff auf die Inhalte. Das mit dem Kauf verknüpfte Nutzerkonto kann über das Feld obfuscatedExternalAccountId aus purchases.products.get identifiziert werden, sofern es beim Kauf mit setObfuscatedAccountId() festgelegt wurde.
    1. Bestätige bei Käufen von nicht verbrauchbaren Produkten die Zustellung der Inhalte, indem du die Methode purchases.products.acknowledge aufrufst. Prüfe im Feld acknowledgementState, ob der Kauf bereits bestätigt wurde.
    2. 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.

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.