Mit Google Play Billing können Sie nicht nur digitale Waren und Abos in Ihrer App im Play Store verkaufen, sondern auch Ihren Katalog, Ihre Preise und Abos verwalten, nützliche Berichte abrufen und den Play Store-Bezahlvorgang nutzen, der Ihren Nutzern bereits vertraut ist. Außerdem ist es für im Play Store veröffentlichte Apps erforderlich, in denen digitale Waren verkauft werden.
Chrome 88 wird mit einem Ursprungstest unter Android eingeführt, der die Integration von Trusted Web Activity mit der Payment Request API und der Digital Goods API ermöglicht, um Kaufabläufe über Google Play Billing zu implementieren. Wir gehen davon aus, dass dieser Ursprungstest auch für ChromeOS-Version 89 verfügbar sein wird.
Um die Integration in die Android-App zu vereinfachen, führt das Trusted Web Activity-Team eine Erweiterungsbibliothek für android-browser-helper ein. In diesem Leitfaden erfahren Sie, welche Änderungen erforderlich sind, um diese Bibliothek in eine vorhandene Anwendung einzubinden.
Hinweis:In diesem Artikel wird die Integration für die Android-App behandelt. Wenn du Bubblewrap zum Erstellen deiner App verwendest, kannst du deine App mit dem Tool aktualisieren. Die Implementierung von Bubblewrap wird in diesem Problem verfolgt. Dieser Leitfaden richtet sich an Nutzer, die keine Bubblewrap-Container zum Aktualisieren ihrer App verwenden.
build.gradle
Die Bibliothek für die Abrechnungserweiterung selbst hängt von Version 2.1.0
von android-browser-helper
ab. Achten Sie darauf, dass Ihre Anwendung eine Version verwendet, die gleich oder höher ist.
Außerdem müssen Sie eine Implementierungserklärung für die Bibliothek der Abrechnungserweiterung hinzufügen:
dependencies {
...
implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.1.0'
implementation 'com.google.androidbrowserhelper:billing:1.0.0-alpha05'
}
DelegationService.java
android-browser-helper wird mit einer Standard-DelegationService
geliefert, die direkt von Apps verwendet werden kann.
Wenn Sie die Abrechnungserweiterung verwenden, benötigen Sie eine leicht angepasste Version von DelegationService
.
Dazu müssen Sie Ihre eigene DelegationService
-Klasse erstellen, die die ursprüngliche Klasse erweitert und onCreate()
überschreibt. In onCreate()
müssen Sie einen einzelnen Methodenaufruf hinzufügen, mit dem die Anwendung als Handler für die Digital Goods API registriert wird:
package com.example.yourapp;
import com.google.androidbrowserhelper.playbilling.digitalgoods.DigitalGoodsRequestHandler;
import com.google.androidbrowserhelper.trusted.DelegationService;
public class DelegationService
extends com.google.androidbrowserhelper.trusted.DelegationService {
@Override
public void onCreate() {
super.onCreate();
registerExtraCommandHandler(new DigitalGoodsRequestHandler(getApplicationContext()));
}
}
AndroidManifest.xml
Im Android-Manifest müssen Sie den Verweis auf die Delegationsbibliothek in Ihre eigene Implementierung ändern. Ersetzen Sie in der entsprechenden service
-Deklaration com.google.androidbrowserhelper.trusted.DelegationService
durch die neu erstellte Klasse.
<service
android:name=".DelegationService"
android:exported="true">
<intent-filter>
<action android:name="android.support.customtabs.trusted.TRUSTED_WEB_ACTIVITY_SERVICE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</service>
Die Abrechnungsbibliothek führt außerdem zwei neue Komponenten ein, die Ihrem Android-Manifest hinzugefügt werden müssen: einen Dienst, mit dem der Browser eine Verbindung herstellen und prüfen kann, ob die Anwendung die Zahlung unterstützt, und eine Aktivität, die den Zahlungsvorgang selbst verarbeitet:
<activity
android:name="com.google.androidbrowserhelper.playbilling.provider.PaymentActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|keyboard|orientation|screenLayout|screenSize"
android:exported="true">
<intent-filter>
<action android:name="org.chromium.intent.action.PAY" />
</intent-filter>
<meta-data
android:name="org.chromium.default_payment_method_name"
android:value="https://play.google.com/billing" />
</activity>
<!-- This service checks who calls it at runtime. -->
<service
android:name="com.google.androidbrowserhelper.playbilling.provider.PaymentService"
android:exported="true" >
<intent-filter>
<action android:name="org.chromium.intent.action.IS_READY_TO_PAY" />
</intent-filter>
</service>
Weitere Informationen zur Digital Goods API und Google Play Billing
In diesem Artikel wurden die Schritte beschrieben, die speziell für die Android-Anwendung erforderlich sind, die Trusted Web Activity verwendet. Die Google Play Billing API hat jedoch eine eigene Terminologie und umfasst Client- und Backend-Komponenten. Wir empfehlen Ihnen dringend, die Dokumentation zur Google Play Billing API und zur Digital Goods API zu lesen und sich mit den Konzepten vertraut zu machen, bevor Sie sie in eine Produktionsanwendung einbinden.