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

Bên cạnh 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 cung cấp các công cụ hữu ích giúp bạn quản lý danh mục, giá và gói thuê bao báo cáo và quy trình thanh toán do Cửa hàng Play hỗ trợ vốn đã quen thuộc với người dùng của bạn. Nó cũng là một yêu cầu đối với các ứng dụng được xuất bản trên Cửa hàng Play có bán hàng hoá kỹ thuật số.

Chrome 88 sắp ra mắt kèm theo 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 hóa kỹ thuật số để triển khai quy trình mua hàng qua Google Play Billing. Chúng tôi dự kiến cũng sẽ có Bản dùng thử theo nguyên gốc này cho ChromeOS phiên bản 89.

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

Lưu ý: Bài viết này đề cập đến việc tích hợp cho ứng dụng Android. Nếu bạn đang sử dụng Bubblewrap để tạo ứng dụng, bạn sẽ có thể sử dụng công cụ này để cập nhật ứng dụng của mình. Chiến lược phát hành đĩa đơn Việc 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 tiện ích thanh toán này phụ thuộc vào phiên bản 2.1.0 của android-browser-helper. Đảm bảo ứng dụng của bạn đang sử dụng 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 phần khai báo về hoạt động triển khai cho thư viện phần mở rộng 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 cung cấp 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 tiện ích thanh toán, bạn cần có phiên bản của DelegationService.

Để làm được việc đó, bạn cần tạo lớp DelegationService của riêng mình, lớp này mở rộng ban đầu 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 (API Hàng hoá kỹ thuật số):

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ẽ phải thay đổi tệp tham chiếu đến Thư viện uỷ quyền của riêng bạn trong quá trình 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 học 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 Billing cũng giới thiệu 2 thành phần mới mà bạn cần thêm vào Android Tệp kê khai: một 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ợ khoản thanh toán 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ề API Hàng hoá kỹ thuật số và Google Play Billing

Bài viết này đề cập các bước cần thiết cụ thể trên ứng dụng Android sử dụng nền tảng web đáng tin cậy Hoạt động, nhưng API Google Play Billing có thuật ngữ riêng, đồng thời bao gồm cả ứng dụng và phần phụ trợ thành phần. Bạn nên đọc tài liệu Google Play Billing và Tài liệu về API Hàng hoá kỹ thuật số và tìm hiểu các khái niệm về API này trước khi tích hợp vào một ứng dụng của bạn vào phiên bản chính thức.