Utiliser Play Billing dans votre activité Web fiable

En plus de vous permettre de vendre des produits numériques et des abonnements sur le Play Store, Google Play Billing propose des outils pour gérer votre catalogue, vos prix et vos abonnements. et un processus de paiement déjà connu de vos utilisateurs, optimisé par le Play Store. Il est également obligatoire pour les applications publiées sur le Play Store qui vendent des produits numériques.

Chrome 88 est lancé avec une phase d'évaluation sur Android qui permet d'intégrer Activités Web fiables avec l'API Payment Request et l'API Digital Goods pour implémenter des parcours d'achat via Google Play Billing. Cette phase d'évaluation devrait également être disponible pour ChromeOS sur la version 89.

Afin de faciliter l'intégration dans l'application Android, l'équipe chargée de l'activité Web fiable lance une bibliothèque d'extensions vers android-browser-helper. Ce guide présente les modifications requises pour intégrer cette bibliothèque à une application existante.

Remarque:Cet article concerne l'intégration de l'application Android. Si vous utilisez Bubblewrap pour créer votre application. Vous pourrez la mettre à jour à l'aide de l'outil. La l'implémentation de Bubblewrap fait l'objet d'un suivi dans ce problème. Ce guide est destiné aux Ceux qui n'utilisent pas Bubblewrap pour mettre à jour leur application.

build.gradle

La bibliothèque d'extensions de facturation dépend de la version 2.1.0 de android-browser-helper. Assurez-vous que votre application utilise une version égale ou supérieure à cette version.

Vous devez également ajouter une déclaration d'implémentation pour la bibliothèque d'extensions de facturation:

dependencies {
    ...
    implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.1.0'
    implementation 'com.google.androidbrowserhelper:billing:1.0.0-alpha05'
}

DelegationService.java

android-browser-helper est fourni avec un DelegationService par défaut qui peut être utilisé directement par les applications. Lorsque vous utilisez l'extension de facturation, vous avez besoin d'une version légèrement personnalisée de DelegationService

Pour ce faire, vous devez créer votre propre classe DelegationService qui étend le celle d'origine et remplace onCreate(). Dans onCreate(), vous devez ajouter un seul qui enregistre l'application en tant que gestionnaire pour l'API Digital Goods:

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

Dans le fichier manifeste Android, vous devez modifier vous-même la référence à la bibliothèque de délégation. la mise en œuvre. Dans la déclaration service correspondante, remplacez com.google.androidbrowserhelper.trusted.DelegationService par la classe que vous venez de créer.

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

La bibliothèque de facturation introduit également deux nouveaux composants qui devront être ajoutés à votre Fichier manifeste: un service auquel le navigateur peut se connecter et qui vérifie si l'application est compatible avec paiement, et une Activity qui gère lui-même le flux de paiement:

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

En savoir plus sur l'API Digital Goods et Google Play Billing

Cet article décrit les étapes à suivre spécifiquement pour l'application Android qui utilise le Web de confiance. Activité, mais l'API Google Play Billing possède sa propre terminologie et inclut le client et le backend composants. Nous vous recommandons vivement de lire les documents Google Play Billing et les la documentation de l'API Digital Goods et la compréhension de ses concepts avant de l'intégrer dans un l'application en production.