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

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

Chrome 88 запускается с пробной версией Origin на Android, которая позволяет интегрировать Trusted Web Activities с API Payment Request и API Digital Goods для реализации потоков покупок через Google Play Billing. Мы ожидаем, что эта пробная версия Origin также будет доступна для ChromeOS версии 89.

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

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

сборка.градл

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

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

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

ДелегированиеСервис.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 Manifest вам нужно будет изменить ссылку на библиотеку delegate вашей собственной реализации. В соответствующем объявлении 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 Manifest: Службу , к которой браузер может подключиться и проверить, поддерживает ли приложение платеж, и Действие , которое обрабатывает сам поток платежей:

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

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