Naast het feit dat je app digitale producten en abonnementen kan verkopen via de Play Store, biedt Google Play Billing tools voor het beheren van je catalogus, prijzen en abonnementen, handige rapporten en een betaalproces dat wordt aangestuurd door de Play Store en dat al bekend is bij je gebruikers. Het is ook een vereiste voor apps die in de Play Store worden gepubliceerd en digitale producten verkopen.
Chrome 88 wordt gelanceerd met een Origin-proefversie voor Android, waarmee Trusted Web Activities kan worden geïntegreerd met de Payment Request API en de Digital Goods API om aankoopstromen via Google Play Billing te implementeren. We verwachten dat deze Origin-proefversie ook beschikbaar zal zijn voor ChromeOS vanaf versie 89.
Om de integratie met de Android-app te vergemakkelijken, introduceert het Trusted Web Activity-team een extensiebibliotheek voor android-browser-helper . Deze handleiding laat zien welke wijzigingen nodig zijn om deze bibliotheek in een bestaande app te integreren.
Let op: Dit artikel behandelt de integratie voor de Android-app. Als je Bubblewrap gebruikt om je app te bouwen, kun je de tool gebruiken om je app bij te werken. De implementatie op Bubblewrap wordt in deze uitgave bijgehouden. Deze handleiding is bedoeld voor gebruikers die Bubblewrap niet gebruiken om hun app bij te werken.
build.gradle
De factureringsextensiebibliotheek zelf is afhankelijk van versie 2.1.0
van android-browser-helper
. Zorg ervoor dat uw applicatie een versie gebruikt die gelijk is aan of hoger is dan die versie.
U moet ook een implementatieverklaring toevoegen voor de factureringsextensiebibliotheek:
dependencies {
...
implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.1.0'
implementation 'com.google.androidbrowserhelper:billing:1.0.0-alpha05'
}
DelegatieService.java
android-browser-helper wordt geleverd met een standaard DelegationService
die direct door apps kan worden gebruikt. Wanneer u de factureringsextensie gebruikt, hebt u een licht aangepaste versie van de DelegationService
nodig.
Om dat te doen, moet u uw eigen DelegationService
-klasse maken die de originele klasse uitbreidt en onCreate()
overschrijft. Binnen onCreate()
moet u een enkele methodeaanroep toevoegen die de applicatie registreert als handler voor de Digital Goods API:
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 het Android-manifest moet u de verwijzing naar de Delegation Library aanpassen naar uw eigen implementatie. Vervang in de bijbehorende service
com.google.androidbrowserhelper.trusted.DelegationService
door uw nieuwe klasse.
<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>
De factureringsbibliotheek introduceert ook twee nieuwe componenten die aan uw Android-manifest moeten worden toegevoegd: een service waarmee de browser verbinding kan maken en kan controleren of de applicatie de betaling ondersteunt, en een activiteit die de betalingsstroom zelf afhandelt:
<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>
Meer informatie over de Digital Goods API en Google Play-facturering
Dit artikel behandelt de stappen die specifiek nodig zijn voor de Android-app die Trusted Web Activity gebruikt, maar de Google Play Billing API heeft zijn eigen terminologie en omvat client- en backendcomponenten. We raden u ten zeerste aan de documentatie van Google Play Billing en de Digital Goods API te lezen en de concepten ervan te begrijpen voordat u deze in een applicatie in productie integreert.