En plus de permettre à votre application 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, des rapports utiles et un parcours de paiement optimisé par le Play Store, qui est déjà familier à vos utilisateurs. 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 de l'origine sur Android, qui permet d'intégrer les activités Web fiables à l'API Payment Request et à l'API Digital Goods pour implémenter des flux d'achat via Google Play Billing. Nous prévoyons que cette phase de test Origin sera également disponible pour ChromeOS version 89.
Afin de faciliter l'intégration à l'application Android, l'équipe Trusted Web Activity lance une bibliothèque d'extensions pour android-browser-helper. Ce guide vous 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 utiliser cet outil pour la mettre à jour. L'implémentation sur Bubblewrap est suivie dans ce problème. Ce guide s'adresse aux utilisateurs qui n'utilisent pas Bubblewrap pour mettre à jour leur application.
build.gradle
La bibliothèque d'extension de facturation elle-même dépend de la version 2.1.0
de android-browser-helper
. Assurez-vous que votre application utilise une version égale ou supérieure à celle-ci.
Vous devez également ajouter une déclaration d'implémentation pour la bibliothèque d'extension 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 la classe d'origine et remplace onCreate()
. Dans onCreate()
, vous devez ajouter un seul appel de méthode qui enregistre l'application en tant que gestionnaire de 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 la référence à la bibliothèque de délégation par votre propre implémentation. 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 doivent être ajoutés à votre fichier manifeste Android: un service auquel le navigateur peut se connecter et vérifier si l'application est compatible avec le paiement, et une activité qui gère le flux de paiement lui-même:
<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 nécessaires spécifiquement sur l'application Android qui utilise l'activité Web sécurisée, mais l'API Google Play Billing a sa propre terminologie et inclut des composants client et backend. Nous vous recommandons vivement de lire la documentation sur Google Play Billing et sur l'API Digital Goods, et de comprendre ses concepts avant de l'intégrer à une application en production.