在受信任的網路活動中使用 Play 帳款服務

除了允許應用程式在 Play 商店中販售數位商品和訂閱項目外, Google Play 帳款服務提供實用工具,協助您管理目錄、價格和訂閱項目, 以及採用 Play 商店技術支援的結帳流程。這項服務 在 Play 商店上發布販售數位商品的應用程式,也必須遵循這項規定。

Chrome 88 將推出 Android 上的來源試用,藉此整合 使用 Payment Request APIDigital Goods APITrusted Web 活動, 導入購買流程我們希望這項來源試用方案也能提供 。

為簡化 Android 應用程式的整合作業,「信任的網路活動」團隊即將推出 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 的新元件 資訊清單:瀏覽器可連線的服務,並檢查應用程式是否支援 付款,以及處理付款流程本身的 活動

<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 的說明文件和概念,再整合至 應用程式。