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