Usa Fatturazione Play nell'attività web attendibile

Oltre a consentire alla tua app di vendere abbonamenti e prodotti digitali sul Play Store, Fatturazione Google Play offre strumenti per la gestione del catalogo, dei prezzi e degli abbonamenti, e un flusso di pagamento basato sul Play Store che i tuoi utenti conoscono già. it è inoltre un requisito per le applicazioni pubblicate sul Play Store che vendono prodotti digitali.

Viene lanciato Chrome 88 con una prova dell'origine su Android che consente l'integrazione di Attività web attendibili con l'API Payment Request e l'API Digital Goods per implementare i flussi di acquisto tramite Fatturazione Google Play. Prevediamo che sia disponibile anche questa prova dell'origine per ChromeOS versione 89.

Per facilitare l'integrazione nell'app per Android, il team delle attività web attendibili sta introducendo una libreria di estensioni per android-browser-helper. Questa guida illustra le modifiche necessarie per integrare questa libreria in un'applicazione esistente.

Nota: questo articolo riguarda l'integrazione per l'app per Android. Se utilizzi Bubble wrap per creare la tua applicazione potrai utilizzare lo strumento per aggiornarla. La L'implementazione su Bubblewrap è in fase di monitoraggio in questo problema. Questa guida è destinata a quelli che non utilizzano Bubblewrap per aggiornare l'app.

build.gradle

La libreria delle estensioni di fatturazione dipende dalla versione 2.1.0 di android-browser-helper. Assicurati la tua applicazione sta usando una versione uguale o superiore a quella.

Dovrai anche aggiungere una dichiarazione di implementazione per la libreria delle estensioni di fatturazione:

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

DelegationService.java

android-browser-helper include un DelegationService predefinito che può essere utilizzato direttamente dalle app. Quando utilizzi l'estensione di fatturazione, è necessaria una versione leggermente personalizzata della DelegationService.

Per farlo, dovrai creare la tua classe DelegationService che estendi le quella originale e sostituisce onCreate(). All'interno di onCreate(), dovrai aggiungere una singola che registra l'applicazione come gestore per 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

Nel file manifest Android devi modificare manualmente il riferimento alla libreria delle deleghe implementazione. Nella dichiarazione service corrispondente, sostituisci com.google.androidbrowserhelper.trusted.DelegationService con il corso che hai appena creato.

<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 Libreria Fatturazione introduce anche due nuovi componenti che dovranno essere aggiunti al tuo Android Manifest: un servizio a cui il browser può connettersi e che verifica se l'applicazione supporta pagamento e un'attività che gestisca il flusso di pagamento stesso:

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

Scopri di più sull'API Digital Goods e sulla Fatturazione Google Play

In questo articolo sono stati illustrati i passaggi necessari per l'applicazione per Android che utilizza Trusted Web Attività, ma l'API Fatturazione Google Play ha una propria terminologia e include client e backend componenti. Ti consigliamo vivamente di leggere il documento Fatturazione Google Play e dell'API Digital Goods e comprenderne i concetti prima di integrarla in un un'applicazione in produzione.