Sử dụng Play Billing trong Hoạt động đáng tin cậy trên web

André Cipriani Bandarra
André Cipriani Bandarra

Ngoài việc cho phép ứng dụng của bạn bán hàng hoá kỹ thuật số và gói thuê bao trên Cửa hàng Play, Google Play Billing còn cung cấp các công cụ để quản lý danh mục, giá và gói thuê bao, các báo cáo hữu ích cũng như quy trình thanh toán đã quen thuộc với người dùng của bạn. API này cũng là một yêu cầu cho các ứng dụng được phát hành trên Cửa hàng Play để bán hàng hoá kỹ thuật số.

Chrome 88 sẽ ra mắt với Bản dùng thử theo nguyên gốc trên Android, cho phép tích hợp Hoạt động đáng tin cậy trên web với API Yêu cầu thanh toánAPI hàng hoá kỹ thuật số để triển khai quy trình mua qua Google Play Billing. Chúng tôi dự kiến tính năng Bản dùng thử theo nguyên gốc này cũng sẽ có trên ChromeOS phiên bản 89.

Để dễ dàng tích hợp vào ứng dụng Android, nhóm Hoạt động đáng tin cậy trên web sẽ ra mắt một thư viện tiện ích cho android-browser-helper. Hướng dẫn này sẽ cho bạn biết những thay đổi cần thiết để tích hợp thư viện này vào một ứng dụng hiện có.

Lưu ý: Bài viết này đề cập đến cách tích hợp cho ứng dụng Android. Nếu đang sử dụng Bubblewrap để xây dựng ứng dụng, bạn có thể sử dụng công cụ này để cập nhật ứng dụng. Quá trình triển khai trên Bubblewrap đang được theo dõi trong vấn đề này. Hướng dẫn này dành cho những người không sử dụng Bubblewrap để cập nhật ứng dụng.

build.gradle

Thư viện phần mở rộng về thanh toán sẽ phụ thuộc vào phiên bản 2.1.0 của android-browser-helper. Hãy đảm bảo ứng dụng của bạn đang dùng một phiên bản bằng hoặc lớn hơn phiên bản đó.

Bạn cũng sẽ cần thêm nội dung khai báo triển khai cho thư viện phần mở rộng về thanh toán:

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

DelegationService.java

android-browser-helper gửi kèm một DelegationService mặc định mà các ứng dụng có thể sử dụng trực tiếp. Khi sử dụng phần mở rộng thanh toán, bạn cần một phiên bản DelegationService được tuỳ chỉnh một chút.

Để làm điều đó, bạn cần tạo lớp DelegationService riêng, lớp này mở rộng lớp gốc và ghi đè onCreate(). Bên trong onCreate(), bạn sẽ cần thêm một lệnh gọi phương thức đăng ký ứng dụng làm trình xử lý cho Digital Merchandise 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

Trên Tệp kê khai Android, bạn sẽ cần thay đổi tham chiếu đến Thư viện uỷ quyền mà bạn triển khai. Trong phần khai báo service tương ứng, hãy thay thế com.google.androidbrowserhelper.trusted.DelegationService bằng lớp mà bạn mới tạo.

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

Thư viện thanh toán cũng giới thiệu 2 thành phần mới cần được thêm vào tệp kê khai Android: Dịch vụ mà trình duyệt có thể kết nối và kiểm tra xem ứng dụng có hỗ trợ tính năng thanh toán hay không, và một Hoạt động tự xử lý quy trình thanh toán:

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

Tìm hiểu thêm về Digital Merchandise API và Google Play Billing

Bài viết này đề cập đến các bước cụ thể cần thực hiện trên ứng dụng Android sử dụng Hoạt động đáng tin cậy trên web. Tuy nhiên, API Google Play Billing có thuật ngữ riêng và bao gồm các thành phần ứng dụng và phụ trợ. Bạn nên đọc tài liệu về Google Play BillingDigital Merchandise API cũng như tìm hiểu các khái niệm của API này trước khi tích hợp vào một ứng dụng trong quá trình sản xuất.