Home / Android-Entwicklung / Android Developers Blog: Erweiterte In-App-Abrechnung: Abwicklung alternativer Kaufabläufe

Android Developers Blog: Erweiterte In-App-Abrechnung: Abwicklung alternativer Kaufabläufe

Gepostet von Oscar Rodriguez, Developer Advocate

Wenn Sie eine App oder ein Spiel entwerfen und entwickeln, fragen Sie sich möglicherweise, ob Sie es monetarisieren möchten.

Wenn Sie dazu Produkte über Google Play verkaufen, verfügen Sie höchstwahrscheinlich über einen Store-Bildschirm, auf dem verfügbare Artikel zum Verkauf angeboten werden. In der Google Play-Abrechnungsbibliothek können Sie Dialogfelder anzeigen, in denen Ihre Benutzer ihren Kauf abschließen können.

Die Dokumentation und die TrivialDrive-Beispiele der Abrechnungsbibliothek enthalten zwar eine ausführlichere Erläuterung, der allgemeine Ablauf lautet jedoch wie folgt:

  1. Rufen Sie die Methode launchBillingFlow () im UI-Thread auf, um den Google Play-Kaufdialog zu starten.
  2. Wenn der Kauf erfolgreich war, ruft Google Play die Methode onPurchasesUpdated () auf, um das Ergebnis des Kaufvorgangs zu liefern.
  3. Wenn Ihre App über einen Server verfügt, wird dringend empfohlen, den Kauf von Ihrem Server mithilfe der API für Abonnements und In-App-Käufe zu überprüfen.
  4. Bestätigen Sie den Kauf entweder mit consumeAsync () für Verbrauchsartikel oder mit cknowledgePurchase () für Nichtverbrauchsartikel.
  5. Gewähren Sie schließlich eine Berechtigung für den gekauften Artikel in der App.

Wenn Ihre App weiterhin die Google Play Billing AIDL-API verwendet, können Sie dieselbe Aufgabe auch ausführen. Beachten Sie, dass die AIDL-API jetzt veraltet ist. Wir empfehlen daher dringend, so bald wie möglich auf die Google Play-Abrechnungsbibliothek zu migrieren.

Wenn Sie die AIDL-API verwenden, ist der Ablauf sehr ähnlich:

  1. Senden Sie eine getBuyIntent () – oder getBuyIntentExtraParams () -Anforderung, um den zu kaufenden Artikel anzugeben, und rufen Sie dann startIntentSenderForResult () auf, um den Google Play-Kauf zu starten Dialog.
  2. Wenn der Kaufdialog abgeschlossen ist, sendet Google Play eine Antwort Absicht an Ihre onActivityResult () -Methode, mit der Sie überprüfen können, ob der Kauf erfolgreich war.
  3. Wenn Ihre App über einen Server verfügt, wird dringend empfohlen, den Kauf von Ihrem Server mithilfe der API für Abonnements und In-App-Käufe zu überprüfen.
  4. Wenn der Kauf erfolgreich war, rufen Sie die Methode getPurchases () auf, um eine Liste der im Besitz befindlichen Artikel abzurufen, die noch nicht verbraucht wurden. Rufen Sie für Verbrauchsartikel die Methode consumePurchase () auf, um den Artikel erneut für den Kauf verfügbar zu machen.
  5. Gewähren Sie schließlich eine Berechtigung für den gekauften Artikel in der App.

Dennoch reicht es nicht aus, nur den oben genannten Ablauf zu implementieren, um alle Arten von Einkäufen korrekt zu handhaben. Es gibt zwei Hauptfälle, in denen Einkäufe von diesem Datenfluss nicht korrekt verarbeitet werden.

Der erste Fall tritt auf, wenn der Kaufvorgang unterbrochen wird, bevor er abgeschlossen ist. Die App ist möglicherweise abgestürzt, der Benutzer hat die App möglicherweise beendet oder die Internetverbindung des Benutzers wurde unterbrochen. In jedem Fall ist es möglich, dass die App den Artikel nicht an den Nutzer ausgeliefert hat, obwohl Google Play die Zahlung bereits verarbeitet hat. In diesem Fall ist der Artikel in der Schwebe, da Google Play den erneuten Kauf eines Artikels erst nach dessen Verzehr zulässt, die App oder das Spiel den Artikel jedoch nicht außerhalb des oben genannten Ablaufs verbraucht.

Der zweite Fall tritt während alternativer Kaufabläufe auf, z. B. In-App-Werbeaktionen, kürzlich angekündigte Out-of-App-Abonnementoberflächen, Gutscheincodes für Abonnements oder andere Werbeaktionen in Zusammenarbeit mit Google. In diesen Fällen erhält ein Benutzer ein Element direkt in der Play Store-App, während die Ziel-App oder das Spiel möglicherweise angehalten, nicht ausgeführt oder sogar nicht installiert wird.

In diesen Fällen bieten die Google Play-Abrechnungsbibliothek und die Google Play-Abrechnungs-AIDL-API einen Mechanismus zum Erkennen von nicht bestätigten oder verbrauchten Käufen.

Gehen Sie bei Verwendung der Google Play-Abrechnungs-API wie folgt vor:

  1. Rufen Sie in Ihrem App-Rückruf onResume () die Methode queryPurchases () auf, um eine Liste der Elemente abzurufen, damit Sie ermitteln können, welche nicht bestätigt wurden.
  2. Wenn Ihre App über einen Server verfügt, wird dringend empfohlen, den Kauf von Ihrem Server mithilfe der API für Abonnements und In-App-Käufe zu überprüfen.
  3. Wenn es im Besitz befindliche, aber nicht bestätigte Artikel gibt, bestätigen Sie den Kauf entweder mit consumeAsync () für Verbrauchsartikel oder mit cknowledgePurchase () für Nichtverbrauchsartikel.
  4. Gewähren Sie eine Berechtigung für den gekauften Artikel in der App.

Führen Sie für die AIDL-API von Google Play Billing die folgenden Schritte aus:

  1. Rufen Sie im onResume () -Rückruf Ihrer App die getPurchases () -Methode auf, um eine Liste der im Besitz befindlichen Elemente abzurufen, die noch nicht verwendet wurden.
  2. Wenn Ihre App über einen Server verfügt, wird dringend empfohlen, den Kauf von Ihrem Server mithilfe der API für Abonnements und In-App-Käufe zu überprüfen.
  3. Rufen Sie für Verbrauchsartikel die Methode consumePurchase () auf, um den Artikel erneut zum Kauf anzubieten.
  4. Gewähren Sie schließlich eine Berechtigung für den gekauften Artikel in der App.

In beiden Fällen erwarten Benutzer, dass die App oder das Spiel darüber kommuniziert, wenn Sie ein nicht konsumiertes Element auf diese Weise erkennen und verarbeiten. Es wird empfohlen, dass Sie ein Dialogfeld, ein Meldungsfeld oder eine Benachrichtigung anzeigen, in der dem Benutzer mitgeteilt wird, dass er sein Objekt erfolgreich erhalten hat.

Beachten Sie, dass der Rückruf Ihrer App onResume () aufgerufen wird, wenn der Prozess gestartet und in den Vordergrund gerückt wird, unabhängig davon, auf welchem ​​Bildschirm sich die App oder das Spiel zuvor befunden hat es wurde angehalten. Beispielsweise kann ein Spiel mit einem Startbildschirm, einem Geschäftsbildschirm und einem Spielbildschirm von einem dieser Bildschirme aus mit onResume () aufgerufen werden. Für ein optimales Benutzererlebnis empfehlen wir, dass Ihre App oder Ihr Spiel nicht bestätigte oder nicht verwendete Elemente verarbeitet, unabhängig davon, welchen Bildschirm Sie beim Aufrufen von onResume () anzeigen. Gründliche Tests dieses Prozesses auf jedem Bildschirm sind für eine optimale Benutzererfahrung von entscheidender Bedeutung.

Schließlich gibt es noch einen weiteren Fall, den Ihre App behandeln muss: Wenn ein Benutzer ein Objekt aus der Play Store-App erwirbt und sowohl die Play Store-App als auch Ihre App gleichzeitig im Mehrfenstermodus sichtbar sind.

Führen Sie die folgenden Schritte aus, um dieses Szenario mit der Google Play-Abrechnungsbibliothek zu unterstützen:

  1. Google Play ruft die Methode onPurchasesUpdated () auf, um Ihre App zu benachrichtigen, dass ein neues ausstehendes Element vorhanden ist.
  2. Wenn Ihre App über einen Server verfügt, wird dringend empfohlen, den Kauf von Ihrem Server mithilfe der API für Abonnements und In-App-Käufe zu überprüfen.
  3. Bestätigen Sie den Kauf entweder mit consumeAsync () für Verbrauchsartikel oder mit cknowledgePurchase () für Nichtverbrauchsartikel.
  4. Gewähren Sie schließlich eine Berechtigung für den gekauften Artikel in der App.

Führen Sie für die AIDL-API von Google Play Billing die folgenden Schritte aus:

  1. Registrieren Sie in Ihrem App-Rückruf onResume () einen PurchasesUpdatedListener um die Absicht com.android.vending.billing. PURCHASES_UPDATED zu erhalten. Heben Sie außerdem im Rückruf Ihrer App onPause () die Registrierung des Listeners auf.
  2. Wenn Ihre App über einen Server verfügt, wird dringend empfohlen, den Kauf von Ihrem Server mithilfe der API für Abonnements und In-App-Käufe zu überprüfen.
  3. Google Play ruft Ihren Listener an, um Ihre App zu benachrichtigen, dass ein neues Element aussteht. Rufen Sie darin die Methode getPurchases () auf, um eine Liste der Objekte abzurufen, deren Eigentümer noch nicht verwendet wurden. Rufen Sie für Verbrauchsartikel die Methode consumePurchase () auf, um den Artikel erneut für den Kauf verfügbar zu machen.
  4. Gewähren Sie schließlich eine Berechtigung für den gekauften Artikel in der App.

Wie zuvor sollten Sie ein Dialogfeld, ein Meldungsfeld oder eine Benachrichtigung anzeigen, in der dem Benutzer mitgeteilt wird, dass er sein Objekt erfolgreich empfangen hat.

Wenn Sie diese Schritte ausführen, ist Ihre App oder Ihr Spiel besser darauf vorbereitet, Unterbrechungen des Kaufvorgangs und alternative Kaufvorgänge zuverlässig zu verarbeiten.

About AndroidWeltEditor

Check Also

15 best Android emulators for PC and Mac of 2021

There are a lot of valid reasons why someone would want to run Android emulators …

Leave a Reply

Your email address will not be published. Required fields are marked *