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

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

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

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

หมายเหตุ: บทความนี้ครอบคลุมการผสานรวมสำหรับแอป Android หากคุณใช้ Bubblewrap เพื่อสร้างแอปพลิเคชัน คุณจะใช้เครื่องมือเพื่ออัปเดตแอปได้ เรากำลังติดตามการติดตั้งใช้งานใน Bubblewrap ในปัญหานี้ คำแนะนำนี้มีไว้สำหรับผู้ที่ไม่ได้ใช้ Bubblewrap ในการอัปเดตแอป

build.gradle

ไลบรารีส่วนขยายการเรียกเก็บเงินเองจะขึ้นอยู่กับเวอร์ชัน 2.1.0 ของ android-browser-helper ตรวจสอบว่าแอปพลิเคชันใช้เวอร์ชันที่เท่ากับหรือมากกว่าเวอร์ชันนั้น

คุณยังต้องเพิ่มการประกาศการติดตั้งใช้งานสําหรับไลบรารีส่วนขยายการเรียกเก็บเงินด้วย โดยทำดังนี้

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

DelegationService.java

ผู้ช่วยเบราว์เซอร์ android มาพร้อมกับ 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 Manifest คุณจะต้องเปลี่ยนการอ้างอิงไปยังไลบรารีการมอบสิทธิ์ด้วยตนเอง ในการประกาศ 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 รายการที่คุณจะต้องเพิ่มลงในไฟล์ Manifest ของ 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 Billing

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