Menggunakan Layanan Penagihan Play di Aktivitas Web Tepercaya Anda

Selain memungkinkan aplikasi Anda menjual barang dan langganan digital di Play Store, Layanan Penagihan Google Play menawarkan alat untuk mengelola katalog, harga, dan langganan, laporan yang berguna, serta alur checkout yang didukung oleh Play Store yang sudah dikenal pengguna Anda. Hal ini juga merupakan persyaratan untuk aplikasi yang dipublikasikan di Play Store yang menjual produk digital.

Chrome 88 diluncurkan dengan Uji Coba Origin di Android yang memungkinkan integrasi Trusted Web Activities dengan Payment Request API dan Digital Goods API untuk menerapkan alur pembelian melalui Layanan Penagihan Google Play. Kami berharap Uji Coba Origin ini juga tersedia untuk ChromeOS versi 89.

Untuk memudahkan integrasi ke aplikasi Android, tim Aktivitas Web Tepercaya memperkenalkan library ekstensi ke android-browser-helper. Panduan ini akan menunjukkan perubahan yang diperlukan untuk mengintegrasikan library ini ke dalam aplikasi yang ada.

Catatan: Artikel ini membahas integrasi untuk aplikasi Android. Jika menggunakan Bubblewrap untuk mem-build aplikasi, Anda dapat menggunakan alat ini untuk mengupdate aplikasi. Implementasi di Bubblewrap sedang dilacak dalam masalah ini. Panduan ini ditujukan bagi orang yang tidak menggunakan Bubblewrap untuk mengupdate aplikasi mereka.

build.gradle

Library ekstensi penagihan itu sendiri bergantung pada android-browser-helper versi 2.1.0. Pastikan aplikasi Anda menggunakan versi yang sama atau lebih tinggi dari versi tersebut.

Anda juga harus menambahkan deklarasi implementasi untuk library ekstensi penagihan:

dependencies {
    ...
    implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.1.0'
    implementation 'com.google.androidbrowserhelper:billing:1.0.0-alpha05'
}

DelegationService.java

android-browser-helper dilengkapi dengan DelegationService default yang dapat digunakan langsung oleh aplikasi. Saat menggunakan ekstensi penagihan, Anda memerlukan versi DelegationService yang sedikit disesuaikan.

Untuk melakukannya, Anda perlu membuat class DelegationService sendiri yang memperluas class asli dan mengganti onCreate(). Di dalam onCreate(), Anda harus menambahkan satu panggilan metode yang mendaftarkan aplikasi sebagai pengendali untuk 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

Pada Manifes Android, Anda harus mengubah referensi ke Library Delegasi yang merupakan implementasi Anda sendiri. Dalam deklarasi service yang sesuai, ganti com.google.androidbrowserhelper.trusted.DelegationService dengan class yang baru Anda buat.

<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>

Library penagihan juga memperkenalkan dua komponen baru yang perlu ditambahkan ke Manifes Android Anda: Layanan yang dapat dihubungkan browser dan memeriksa apakah aplikasi mendukung pembayaran, dan Aktivitas yang menangani alur pembayaran itu sendiri:

<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>

Pelajari Digital Goods API dan Layanan Penagihan Google Play lebih lanjut

Artikel ini membahas langkah-langkah yang diperlukan secara khusus di aplikasi Android yang menggunakan Aktivitas Web Tepercaya, tetapi Google Play Billing API memiliki terminologinya sendiri dan menyertakan komponen klien dan backend. Sebaiknya baca dokumentasi Layanan Penagihan Google Play dan Digital Goods API serta pahami konsepnya sebelum mengintegrasikannya ke dalam aplikasi dalam produksi.