Oprócz umożliwienia sprzedaży produktów cyfrowych i subskrypcji w aplikacji w Sklepie Play płatności w Google Play zapewniają też narzędzia do zarządzania katalogiem, cenami i subskrypcjami, przydatne raporty oraz proces płatności w Sklepie Play, który jest już znany użytkownikom. Jest to również wymagane w przypadku aplikacji opublikowanych w Sklepie Play, które sprzedają produkty cyfrowe.
Chrome 88 jest dostępny w wersji Origin Trial na Androida, która umożliwia integrację Trusted Web Activities z Payment Request API i Digital Goods API w celu wdrożenia procesów zakupu za pomocą Rozliczeń w Google Play. Spodziewamy się, że ta wersja próbna będzie dostępna również na ChromeOS w wersji 89.
Aby ułatwić integrację z aplikacją na Androida, zespół zaufanej aktywności w internecie wprowadza bibliotekę rozszerzeń android-browser-helper. Z tego przewodnika dowiesz się, jakie zmiany musisz wprowadzić, aby zintegrować tę bibliotekę z dotychczasową aplikacją.
Uwaga: ten artykuł dotyczy integracji z aplikacją na Androida. Jeśli do kompilowania aplikacji używasz Bubblewrap, możesz zaktualizować aplikację za pomocą tego narzędzia. Wdrożenie Bubblewrap jest śledzone w tym zgłoszeniu. Ten przewodnik jest przeznaczony dla osób, które nie używają Bubblewrap do aktualizowania aplikacji.
build.gradle
Biblioteka rozszerzenia do rozliczeń zależy od wersji 2.1.0
biblioteki android-browser-helper
. Upewnij się, że aplikacja używa wersji co najmniej tej wersji.
Musisz też dodać deklarację implementacji dla biblioteki rozszerzenia 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 jest dostarczany z domyślnym DelegationService
, którego aplikacje mogą używać bezpośrednio.
Jeśli korzystasz z rozszerzenia do rozliczeń, musisz użyć nieco zmodyfikowanej wersji DelegationService
.
Aby to zrobić, musisz utworzyć własną klasę DelegationService
, która rozszerza oryginalną klasę i zastępuje funkcję onCreate()
. W funkcji onCreate()
musisz 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ć odwołanie do biblioteki delegowania, którą sam zaimplementujesz. 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>
Biblioteka płatności wprowadza 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ć i sprawdzić, czy aplikacja obsługuje płatności, oraz aktywność, która obsługuje sam 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 opisaliśmy czynności, które należy wykonać w przypadku aplikacji na Androida korzystającej z działania Trusted Web Activity, ale interfejs Google Play Billing API ma własną terminologię i obsługuje komponenty klienta i back-endu. Przed zintegrowaniem interfejsu API z aplikacją w wersji produkcyjnej zdecydowanie zalecamy zapoznanie się z dokumentacją dotyczącą Płatności w Google Play i interfejsu API cyfrowych towarów oraz z ich koncepcjami.