Płatności w Google Play pozwalają Twojej aplikacji sprzedawać produkty cyfrowe i subskrypcje nie tylko w Sklepie Play, lecz także do zarządzania katalogiem, cenami i subskrypcjami, przydatnymi raportami i procesem płatności w Sklepie Play. Jest on też wymagany w przypadku aplikacji sprzedających produkty cyfrowe, publikowane w Sklepie Play.
Wprowadzamy Chrome 88 z okresem próbnym źródła na Androidzie, który umożliwia integrację Trusted Web Activities z interfejsami Payment Request API i Digital Goods API w celu wdrożenia procesu zakupu za pomocą Płatności w Google Play. Spodziewamy się, że ta wersja próbna Origin będzie również dostępna w ChromeOS w wersji 89.
Aby ułatwić integrację z aplikacją na Androida, zespół Zaufanej aktywności w internecie wprowadza bibliotekę rozszerzeń android-browser-helper. W tym przewodniku omawiamy zmiany wymagane do integracji tej biblioteki z dotychczasową aplikacją.
Uwaga: te artykuły dotyczą integracji z aplikacją na Androida. Jeśli tworzysz aplikację, korzystając z Bubblewrap, możesz aktualizować aplikację za pomocą tego narzędzia. Implementacja bąbelkowej folii jest śledzona w ramach tego problemu. Ten przewodnik jest przeznaczony dla osób, które nie korzystają z tej funkcji do aktualizowania aplikacji.
build.gradle
Sama biblioteka rozszerzeń płatności jest zależna od wersji 2.1.0
android-browser-helper
. Upewnij się, że Twoja aplikacja korzysta z wersji o wyższej lub wyższej wersji.
Musisz też dodać deklarację implementacji dla biblioteki rozszerzeń płatności:
dependencies {
...
implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.1.0'
implementation 'com.google.androidbrowserhelper:billing:1.0.0-alpha05'
}
DelegationService.java
android-browser-helper ma domyślną wartość DelegationService
, której mogą używać bezpośrednio aplikacje.
Jeśli korzystasz z rozszerzenia płatności, potrzebujesz nieco dostosowanej wersji komponentu DelegationService
.
Aby to zrobić, musisz utworzyć własną klasę DelegationService
, która rozszerza dotychczasową i zastępuje onCreate()
. W pliku onCreate()
należy dodać jedno wywołanie metody, które rejestruje aplikację jako moduł obsługi interfejsu 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
W pliku manifestu Androida musisz zmienić odniesienie do Biblioteki delegacji we własnej implementacji. W odpowiedniej deklaracji service
zastąp com.google.androidbrowserhelper.trusted.DelegationService
nowo utworzoną klasą.
<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>
W bibliotece płatności pojawiły się też 2 nowe komponenty, które należy dodać do pliku manifestu Androida: usługę, z którą przeglądarka może się połączyć, aby sprawdzić, czy aplikacja obsługuje płatność, oraz aktywność, która sama obsługuje proces płatności:
<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>
Więcej informacji o interfejsie Digital Goods API i Płatnościach w Google Play
W tym artykule omówiliśmy czynności wymagane w przypadku aplikacji na Androida, która korzysta z zaufanej aktywności internetowej, ale interfejs Google Play Billing API ma własną terminologię i obejmuje klientów oraz komponenty backendu. Zdecydowanie zalecamy zapoznanie się z dokumentacją Płatności w Google Play i interfejsu Digital Goods API oraz zrozumieniem pojęć przed zintegrowaniem ich z aplikacją w środowisku produkcyjnym.