信頼できるウェブ アクティビティで Play 請求サービスを使用する

Google Play ストアでのデジタル商品や定期購入を販売できるだけでなく、 Google Play 請求サービスには、カタログ、価格、定期購入を管理するための便利なツールが備わっています。 レポート、使い慣れた Google Play ストアの購入手続きフローなどです。これは、 は、Google Play ストアで公開するデジタル商品を販売するアプリの要件でもあります。

Chrome 88 では、Android 版 Chrome 88 のオリジン トライアルで次の統合が可能になります。 Payment Request API および Digital Goods API を使用した信頼できるウェブ アクティビティ Google Play 請求サービスによる購入フローの実装このオリジン トライアルも利用できることが予想されます。 バージョン 89 以降の ChromeOS で使用できます。

Android アプリへの統合を容易にするために、Trusted Web Activity チームが android-browser-helper への拡張ライブラリ。このガイドでは、必要な変更について説明します。 を使用して、このライブラリを既存のアプリケーションに統合できます。

注: この記事では、Android アプリ向けの統合について説明します。以下を使用している場合: バブルラップでアプリを構築すると、このツールを使用してアプリをアップデートできるようになります。「 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

そのためには、Terraform 言語を拡張する独自の DelegationService クラスを onCreate() をオーバーライドします。onCreate() 内に、コマンドを 1 つ追加する必要があります。 メソッド呼び出しを使用して、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>

Billing Library には、Android に追加する必要がある 2 つの新しいコンポーネントも導入されています。 マニフェスト: ブラウザが接続し、アプリケーションが 支払い、支払いフロー自体を処理する 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 のドキュメントを作成し、そのコンセプトを理解してから、 おすすめします