Помимо того, что ваше приложение позволяет вашему приложению продавать цифровые товары и подписки в 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 цифровых товаров и понять их концепции, прежде чем интегрировать их в рабочее приложение.