Además de permitir que la app venda artículos digitales y suscripciones en Play Store, La Facturación Google Play ofrece herramientas útiles para administrar el catálogo, los precios y las suscripciones, y un flujo de confirmación de la compra con la tecnología de Play Store que los usuarios ya conocen. Integra también es un requisito para las aplicaciones publicadas en Play Store que venden artículos digitales.
Chrome 88 se lanzará con una prueba de origen en Android que permite la integración de Trusted Web Activities con la Payment Request API y la Digital Goods API para implementar flujos de compra a través de la Facturación Google Play Esperamos que esta prueba de origen también esté disponible para ChromeOS en la versión 89.
Para facilitar la integración en la aplicación para Android, el equipo de Trusted Web Activity presenta Una biblioteca de extensiones para android-browser-helper. En esta guía, se indican los cambios necesarios para integrar esta biblioteca en una aplicación existente.
Nota: En este artículo, se describe la integración de la app para Android. Si utilizas Bubblewrap para compilar tu aplicación, podrás usar la herramienta para actualizar tu app. El implementación en Bubblewrap con este problema. Esta guía está pensada para aquellos que no usan Bubblewrap para actualizar su app.
build.gradle
La biblioteca de extensiones de facturación depende de la versión 2.1.0
de android-browser-helper
. Asegúrate de que
si tu aplicación usa una versión igual o superior a esta.
También deberás agregar una declaración de implementación para la biblioteca de extensiones de facturación:
dependencies {
...
implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.1.0'
implementation 'com.google.androidbrowserhelper:billing:1.0.0-alpha05'
}
DelegationService.java
android-browser-helper se envía con un DelegationService
predeterminado que las apps pueden usar directamente.
Si desea utilizar la extensión de facturación, necesita una versión ligeramente personalizada de la
DelegationService
Para ello, deberás crear tu propia clase DelegationService
que extienda el
original y anula onCreate()
. Dentro de onCreate()
, deberás agregar un solo
llamada de método que registre la aplicación como un controlador para la API de 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
En el manifiesto de Android, deberás cambiar la referencia a la biblioteca de delegación que quieras
para implementarlos. En la declaración service
correspondiente, reemplaza
com.google.androidbrowserhelper.trusted.DelegationService
por la clase que acabas de crear.
<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 biblioteca de facturación también presenta dos componentes nuevos que deberás agregar a tu dispositivo Android Manifiesto: Es un servicio al que se puede conectar el navegador y verificar si la aplicación es compatible con pago, y una actividad que administre el flujo de pago:
<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>
Más información sobre la API de Digital Goods y la Facturación Google Play
En este artículo, se describen los pasos necesarios específicamente en la aplicación para Android que utiliza Trusted Web Actividad, pero la API de Facturación Google Play tiene su propia terminología e incluye cliente y backend o los componentes de la solución. Te recomendamos que leas el artículo sobre Facturación Google Play y el Digital Goods API y la comprensión de sus conceptos antes de integrarla en una aplicación en producción.