Lebenszyklus einmaliger Kauf

Einmalkaufprodukte haben einen einfacheren Lebenszyklus als Abo-Produkte. Es gibt aber dennoch mehrere Status und Übergangsereignisse, die Ihr Backend ordnungsgemäß verarbeiten muss.

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

Neue Einmalkaufprodukte

Nachdem der Nutzer den Abrechnungsablauf abgeschlossen hat, kann Ihre App auf eine der folgenden Arten Informationen zum neuen Kauf abrufen:

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:

  1. Fragen Sie den purchases.productsv2.getproductpurchasev2 Endpunkt ab, um den aktuellen Status des Einmalkaufprodukts zu erhalten. Um diese Methode für einen Kauf aufzurufen, benötigen Sie das entsprechende purchaseToken entweder aus Ihrer App oder aus der Entwicklerbenachrichtigung in Echtzeit vom Typ ONE_TIME_PRODUCT_PURCHASED.
  2. Rufen Sie getPurchaseState() auf und prüfen Sie, ob der Kaufstatus PURCHASED ist.
  3. Bestätigen Sie den Kauf.
  4. Gewähren Sie dem Nutzer Zugriff auf die Inhalte. Das mit dem Kauf verknüpfte Nutzerkonto kann über das obfuscatedExternalAccountId Feld aus purchases.productsv2.getproductpurchasev2 identifiziert werden, sofern es bei der Kaufabwicklung mit setObfuscatedAccountId() festgelegt wurde.
    1. Bei Käufen von nicht verbrauchbaren Produkten bestätigen Sie die Lieferung der Inhalte mit der purchases.products.acknowledge Methode. Prüfen Sie im Feld acknowledgementState, ob der Kauf bereits bestätigt wurde.
    2. Wenn das Produkt verbrauchbar ist, markieren Sie es mit der purchases.products.consume Methode als verbraucht, damit der Nutzer es nach dem Verbrauch noch einmal kaufen kann. Mit dieser Methode wird auch der Kauf bestätigt.

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.