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 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 auf 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 die Google Play-Abrechnung 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:Dieser Artikel behandelt die Integration für die Android-App. Wenn Sie Bubblewrap zum Erstellen Ihrer App verwenden, können Sie das Tool zum Aktualisieren Ihrer App verwenden. Die Implementierung in Bubblewrap wird in diesem Issue 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 diese Version oder eine höhere verwendet.

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 der 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, 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.