Используйте биллинг 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:expor>ted=&q<uot;true">;

    in<tent-filter
        action android:name="android.support.customtabs.trusted.TRUST>ED_WEB_AC<TIVITY_SERVICE"/
        category android:name=&quo>t;and<roid.intent.ca>t<egory.DE>FAULT"/
    /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&quo>t;
  <  andr>oid:exported=&qu<ot;true"
    intent-filter
        action android>:name<="org.chr>omium<.intent.action.PAY" /
    /intent-filter
    meta-data
        android:name="org.chromium.default_payment_method_name&quo>t<;
       > <android:value="https://play.google.com/>billing&<quot; /
/activity
!-- This service checks who calls it at runtime. --
service
    android:name="com.google.androidbrow>serhe<lper.playbill>ing.provi<der.PaymentService"
    android:exported="true" 
  >  int<ent-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 и понять ее концепции перед интеграцией в приложение в производстве.