Oltre a consentire alla tua app di vendere abbonamenti e prodotti digitali sul Play Store, la fatturazione Google Play offre strumenti per gestire il catalogo, i prezzi e gli abbonamenti, nonché report utili e un flusso di pagamento basato sul Play Store che i tuoi utenti conoscono già. È anche un requisito per le applicazioni pubblicate sul Play Store che vendono prodotti digitali.
Chrome 88 verrà lanciato con una prova dell'origine su Android che consente l'integrazione delle 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 questa prova di Origin sarà disponibile anche per ChromeOS 89.
Per facilitare l'integrazione nell'app per Android, il team di 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 Bubblewrap per creare la tua applicazione, potrai utilizzare lo strumento per aggiornarla. L'implementazione su Bubblewrap è monitorata in questo problema. Questa guida è rivolta a coloro che non utilizzano Bubblewrap per aggiornare la propria app.
build.gradle
La libreria dell'estensione di fatturazione stessa dipende dalla versione 2.1.0
di android-browser-helper
. Assicurati
che la tua applicazione utilizzi una versione uguale o successiva.
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 viene fornito con un DelegationService
predefinito che può essere utilizzato direttamente dalle app.
Quando utilizzi l'estensione di fatturazione, hai bisogno di una versione leggermente personalizzata del
DelegationService
.
A questo scopo, devi creare la tua classe DelegationService
che estendi quella originale
e sovrascriva onCreate()
. All'interno di onCreate()
, dovrai aggiungere una singola chiamata al metodo 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
In Android Manifest, dovrai modificare il riferimento alla libreria di delega della tua implementazione. Nella dichiarazione service
corrispondente, sostituisci
com.google.androidbrowserhelper.trusted.DelegationService
con la classe appena creata.
<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 di fatturazione introduce anche due nuovi componenti che devono essere aggiunti al file Android Manifest: un servizio a cui il browser può connettersi e verificare se l'applicazione supporta il pagamento e un'attività che gestisce 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 di Google Play
Questo articolo illustra i passaggi necessari specificamente nell'applicazione per Android che utilizza l'attività web attendibile, ma l'API Google Play Billing ha una propria terminologia e include componenti client e di backend. Ti consigliamo vivamente di leggere la documentazione di Fatturazione Google Play e dell'API Digital Goods e di comprendere i relativi concetti prima di integrarla in un'applicazione in produzione.