Korzystanie z Płatności w Google Play w zaufanej aktywności w internecie

Oprócz umożliwienia w aplikacji sprzedaży produktów cyfrowych i subskrypcji w Sklepie Play Płatności w Google Play to narzędzia do zarządzania katalogiem, cenami i subskrypcjami. i dotychczasowy proces płatności oparty na Sklepie Play. it są też wymagane w przypadku aplikacji opublikowanych w Sklepie Play, które służą do sprzedaży produktów cyfrowych.

wprowadzamy Chrome 88 w ramach wersji próbnej origin na Androida, która umożliwia integrację Trusted Web Activities przy użyciu interfejsów Payment Request API oraz Digital Goods API, aby implementować procesy zakupów za pomocą Płatności w Google Play. Ta wersja próbna origin powinna być również dostępna dla ChromeOS w wersji 89.

Aby ułatwić integrację z aplikacją na Androida, zespół Zaufanej aktywności internetowej z biblioteki rozszerzeń do android-browser-helper. Z tego przewodnika dowiesz się, jakie zmiany są wymagane do zintegrowania tej biblioteki z istniejącą aplikacją.

Uwaga: ten artykuł dotyczy integracji z aplikacją na Androida. Jeśli używasz Bubblewrap pozwoli Ci skompilować aplikację i umożliwić jej aktualizację przy użyciu tego narzędzia. implementacja w aplikacji Bubblewrap jest śledzona w tym problemie. Ten przewodnik jest przeznaczony dla: użytkowników, którzy nie używają aplikacji Bubblewrap.

build.gradle

Sama biblioteka rozszerzenia płatności zależy od wersji 2.1.0 android-browser-helper. Sprawdź, czy aplikacja korzysta z wersji co najmniej takiej samej.

Musisz też dodać deklarację implementacji 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

Dodatek android-browser-helper ma domyślny zasób DelegationService, który może być używany bezpośrednio przez aplikacje. Jeśli używasz rozszerzenia płatności, potrzebujesz dostosowanej wersji DelegationService

Aby to zrobić, musisz utworzyć własne zajęcia w usłudze DelegationService, które rozszerzają pierwotnym i zastępuje wartość onCreate(). W aplikacji onCreate() musisz dodać jeden które powoduje zarejestrowanie aplikacji jako modułu 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 samodzielnie zmienić odniesienie do biblioteki przekazywania dostępu. implementacji. W odpowiedniej deklaracji service zastąp com.google.androidbrowserhelper.trusted.DelegationService z nowo utworzonymi zajęciami.

<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 znajdziesz też 2 nowe komponenty, które musisz dodać do Androida. Plik manifestu: usługa, z którą przeglądarka może się połączyć, aby sprawdzić, czy aplikacja obsługuje płatność oraz działanie, które samo zajmuje się procesem 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>

Dowiedz się więcej o interfejsie Digital Goods API i Płatnościach w Google Play

W tym artykule omówiliśmy czynności, które należy wykonać w aplikacji na Androida, która korzysta z Trusted Web związane z aktywnością, ale interfejs Google Play Billing API ma własną terminologię oraz zawiera klienta i backend Zdecydowanie zalecamy zapoznanie się z Płatnościami w Google Play oraz Dokumentacja Digital Goods API i jej koncepcje przed zintegrowaniem go z i aplikacjami w środowisku produkcyjnym.