Используйте биллинг Play в своей доверенной активности в Интернете

Помимо того, что ваше приложение позволяет вашему приложению продавать цифровые товары и подписки в Play Store, Google Play Billing предлагает инструменты для управления вашим каталогом, ценами и подписками, полезные отчеты и процесс оформления заказа на базе Play Store, который уже знаком вашим пользователям. Это также требование для приложений, опубликованных в Play Store и продающих цифровые товары.

Chrome 88 запускается с пробной версией Origin для Android, которая позволяет интегрировать доверенные веб-действия с API запросов платежей и API цифровых товаров для реализации потоков покупок через выставление счетов в Google Play. Мы ожидаем, что пробная версия Origin также будет доступна для ChromeOS версии 89.

Чтобы упростить интеграцию с приложением Android, команда Trusted Web Activity представляет библиотеку расширений для android-browser-helper . Это руководство покажет вам изменения, необходимые для интеграции этой библиотеки в существующее приложение.

Примечание. В этой статье рассматривается интеграция приложения Android. Если вы используете Bubblewrap для создания своего приложения, вы сможете использовать этот инструмент для обновления своего приложения. Реализация на Bubblewrap отслеживается в этом выпуске . Это руководство предназначено для тех, кто не использует Bubblewrap для обновления своего приложения.

build.gradle

Сама библиотека расширений для выставления счетов зависит от версии 2.1.0 android-browser-helper . Убедитесь, что ваше приложение использует версию, равную или более позднюю.

Вам также потребуется добавить декларацию реализации для библиотеки расширений для выставления счетов:

dependencies {
    ...
    implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.1.0'
    implementation 'com.google.androidbrowserhelper:billing:1.0.0-alpha05'
}

ДелегацияService.java

android-browser-helper поставляется с DelegationService по умолчанию, который может использоваться приложениями напрямую. При использовании расширения для выставления счетов вам потребуется немного модифицированная версия DelegationService .

Для этого вам нужно будет создать свой собственный класс DelegationService , который расширяет исходный и переопределяет onCreate() . Внутри onCreate() вам нужно будет добавить один вызов метода, который регистрирует приложение в качестве обработчика 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

В манифесте Android вам нужно будет изменить ссылку на библиотеку делегирования на собственную реализацию. В соответствующем объявлении service замените com.google.androidbrowserhelper.trusted.DelegationService новым созданным классом.

<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>

Библиотека выставления счетов также представляет два новых компонента, которые необходимо будет добавить в ваш манифест Android: службу , к которой браузер может подключиться и проверить, поддерживает ли приложение платеж, и действие , которое обрабатывает сам поток платежей:

<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>

Узнайте больше об API цифровых товаров и выставлении счетов в Google Play.

В этой статье описаны действия, необходимые конкретно для приложения Android, которое использует доверенную веб-активность, но API биллинга Google Play имеет собственную терминологию и включает клиентские и серверные компоненты. Мы настоятельно рекомендуем прочитать документацию по Google Play Billing и API цифровых товаров и понять их концепции, прежде чем интегрировать их в рабочее приложение.