除了允许您的应用在 Play 商店中销售数字商品和订阅内容外, Google Play 结算服务提供了用于管理目录、价格和订阅的工具, 报告,以及由用户熟悉的 Play 商店提供支持的结账流程。它 在 Play 商店中发布并销售数字商品的应用也需遵守这一要求。
Chrome 88 将在 Android 上推出源试用,支持集成 Trusted Web Activity 与 Payment Request API 和 Digital Goods API 搭配使用 通过 Google Play 结算服务实现购买流程。我们预计此源试用也会发布 适用于 ChromeOS 89 版本。
为了简化与 Android 应用的集成,Trusted Web Activity 团队推出了 android-browser-helper 的扩展库。本指南将为您介绍所需更改 将此库集成到现有应用中。
注意:本文将介绍 Android 应用的集成。如果您使用的是 Bubblewrap 构建应用后,即可使用该工具更新您的应用。通过 已在此问题中跟踪 Bubblewrap 的实现。本指南适用于 未使用 Bubblewrap 更新应用的用户。
build.gradle
结算扩展程序库本身依赖于 android-browser-helper
的版本 2.1.0
。确保
您的应用当前使用的版本等于或高于该版本。
您还需要为结算扩展程序库添加实现声明:
dependencies {
...
implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.1.0'
implementation 'com.google.androidbrowserhelper:billing:1.0.0-alpha05'
}
DelegationService.java
android-browser-helper 随附可直接由应用使用的默认 DelegationService
。
使用结算附加信息时,您需要稍微自定义
DelegationService
。
为此,您需要创建自己的 DelegationService
类,用于扩展
原始政策并替换 onCreate()
。在 onCreate()
中,您需要添加一个
方法调用,用于将应用注册为 Digital Goods 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 的新组件 Manifest:一项 Service,浏览器可连接到该 Service 并检查应用是否支持 付款,以及用于处理付款流程本身的 Activity:
<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>
详细了解 Digital Goods API 和 Google Play 结算服务
本文介绍了使用可信网络的 Android 应用专门需要执行的步骤。 活动,但 Google Play Billing API 有自己的术语,包括客户端和后端 组件。我们强烈建议您阅读 Google Play 结算服务和 Digital Goods API 文档并理解其概念,然后再将其集成到 部署应用