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