Play Billing in deinen vertrauenswürdigen Webaktivitäten verwenden

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 Ihre Abos verwalten. Außerdem erhalten Sie nützliche Berichte und einen von Play Store unterstützten Checkout-Ablauf, der Ihren Nutzern bereits vertraut ist. Es ist auch eine Voraussetzung für Anwendungen, die im Play Store veröffentlicht werden und digitale Waren verkaufen.

In Chrome 88 wird ein Ursprungstest für Android eingeführt, der die Integration von Trusted Web Activities mit der Payment Request API und der Digital Goods API ermöglicht, um Kaufvorgänge über Google Play Billing zu implementieren. Wir gehen davon aus, dass dieser Ursprungstest auch für ChromeOS in 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 zu integrieren.

Hinweis:In diesem Artikel wird die Integration für die Android-App beschrieben. Wenn Sie Bubblewrap zum Erstellen Ihrer Anwendung verwenden, können Sie das Tool zum Aktualisieren Ihrer App nutzen. Die Implementierung in Bubblewrap wird in diesem Problem verfolgt. Dieser Leitfaden richtet sich an Nutzer, die ihre App nicht mit Bubblewrap aktualisieren.

build.gradle

Die Abrechnungserweiterungsbibliothek 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 Implementierungsdeklaration für die Abrechnungserweiterungsbibliothek 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 ausgeliefert, 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 eine eigene DelegationService-Klasse erstellen, die die ursprüngliche Klasse erweitert und onCreate() überschreibt. In onCreate() müssen Sie einen einzelnen Methodenaufruf hinzufügen, der die Anwendung als Handler für die Digital Goods API registriert:

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 Delegierungsbibliothek 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 Zahlungsablauf selbst abwickelt:

<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 zu 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 dringend, die Dokumentation zu Google Play Billing und zur Digital Goods API zu lesen und die Konzepte zu verstehen, bevor Sie sie in eine Produktionsanwendung einbinden.