ใช้ Play Billing ในกิจกรรมบนเว็บและเว็บที่เชื่อถือได้

นอกจากจะอนุญาตให้แอปขายสินค้าดิจิทัลและการสมัครใช้บริการใน Play Store แล้ว Google Play Billing ยังมีเครื่องมือสำหรับจัดการแคตตาล็อก ราคาและการสมัครใช้บริการ รายงานที่มีประโยชน์ และขั้นตอนการชำระเงินที่ขับเคลื่อนโดย Play Store ที่ผู้ใช้คุ้นเคยอยู่แล้ว นอกจากนี้ ยังเป็นข้อกำหนดสำหรับแอปพลิเคชันที่เผยแพร่ใน Play Store ซึ่งขายสินค้าดิจิทัลด้วย

Chrome 88 จะเปิดตัวพร้อมกับการทดลองใช้เวอร์ชันต้นทางใน Android ซึ่งจะเปิดใช้การผสานรวม Trusted Web Activities กับ Payment Request API และ Digital Goods API เพื่อใช้ขั้นตอนการซื้อผ่าน Google Play Billing เราคาดว่าช่วงทดลองใช้ Origin นี้จะพร้อมให้บริการใน ChromeOS เวอร์ชัน 89 ด้วย

เพื่อให้การผสานรวมกับแอป Android ง่ายขึ้น ทีมกิจกรรมบนเว็บที่เชื่อถือได้จะเปิดตัวไลบรารีส่วนขยายสำหรับโปรแกรมช่วยเหลือเบราว์เซอร์ Android คู่มือนี้จะแสดงการเปลี่ยนแปลงที่จําเป็นเพื่อผสานรวมไลบรารีนี้เข้ากับแอปพลิเคชันที่มีอยู่

หมายเหตุ: บทความนี้ครอบคลุมการผสานรวมสําหรับแอป 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

ในไฟล์ Manifest ของ 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>

นอกจากนี้ ไลบรารีการเรียกเก็บเงินยังมีองค์ประกอบใหม่ 2 อย่างที่จะต้องเพิ่มลงในไฟล์ 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>

ดูข้อมูลเพิ่มเติมเกี่ยวกับ Digital Goods API และ Google Play Billing

บทความนี้กล่าวถึงขั้นตอนที่จำเป็นในแอปพลิเคชัน Android ที่ใช้ Trusted Web Activity โดยเฉพาะ แต่ Google Play Billing API มีคำศัพท์เฉพาะของตนเอง รวมถึงคอมโพเนนต์ไคลเอ็นต์และแบ็กเอนด์ เราขอแนะนําอย่างยิ่งให้อ่านเอกสารประกอบของ Google Play Billing และ Digital Goods API รวมถึงทําความเข้าใจแนวคิดก่อนผสานรวมเข้ากับแอปพลิเคชันในเวอร์ชันที่ใช้งานจริง