1. Giới thiệu
Trong lớp học lập trình này, bạn sẽ tập trung vào việc tạo một sản phẩm tính phí một lần, xác định lựa chọn mua sản phẩm đó, đặt giá theo khu vực và kiểm thử quy trình mua sản phẩm tính phí một lần.
Đối tượng người xem
Lớp học lập trình này nhắm đến các nhà phát triển ứng dụng Android muốn sử dụng Play Console để quản lý danh mục sản phẩm tính phí một lần.
Những điều bạn sẽ học được...
- Mô hình đối tượng sản phẩm tính phí một lần .
- Cách di chuyển và sử dụng Google Play Console để quản lý danh mục sản phẩm tính phí một lần.
- Cách dịch chi tiết sản phẩm tính phí một lần sang nhiều ngôn ngữ mà không tốn chi phí.
- Cách thiết lập tình trạng còn hàng và giá theo khu vực cho các sản phẩm tính phí một lần.
- Cách sử dụng API Thư viện Play Billing để truy vấn chi tiết sản phẩm tính phí một lần.
- Cách kiểm thử sản phẩm tính phí một lần bằng Play Billing Lab.
Những điều bạn cần...
- Quyền truy cập vào Google Play Console bằng tài khoản nhà phát triển. Nếu chưa có tài khoản nhà phát triển, bạn cần tạo một tài khoản.
- Một ứng dụng mẫu cho lớp học lập trình này mà bạn có thể tải xuống từ GitHub.
- Android Studio.
2. Sản phẩm tính phí một lần
Mô hình đối tượng sản phẩm tính phí một lần giúp bạn linh hoạt hơn trong cách bán sản phẩm và giảm mức độ phức tạp khi quản lý sản phẩm. Mô hình đối tượng tách biệt những gì đang được bán với cách thức bán, cho phép cùng một quyền có nhiều điểm giá và nhiều cách tiếp thị cho người dùng. Mô hình đối tượng có 3 cấp phân cấp:
- Sản phẩm tính phí một lần – Đối tượng sản phẩm xác định mặt hàng mà người dùng đang mua.
- Lựa chọn mua – Lựa chọn mua xác định cách cấp quyền sử dụng sản phẩm cho người dùng, mức giá và vị trí (khu vực) mà sản phẩm được phân phối. Một sản phẩm có thể có nhiều lựa chọn mua, kèm theo là các mức giá khác nhau ở những vùng khác nhau.
- Ưu đãi – Ưu đãi có thể ảnh hưởng đến giá của lựa chọn mua được liên kết, đồng thời có thể được dùng để lập mô hình ưu đãi giảm giá hoặc đơn đặt hàng trước. Một lựa chọn mua có thể có nhiều ưu đãi.
Sơ đồ sau đây cho thấy mô hình đối tượng sản phẩm tính phí một lần.
Hình 1: Mô hình đối tượng tính phí một lần.
Để biết thêm thông tin, hãy xem bài viết tổng quan về sản phẩm tính phí một lần.
3. Tạo ứng dụng mẫu
Lớp học lập trình này sử dụng một ứng dụng Android mẫu để hướng dẫn bạn cách quản lý sản phẩm tính phí một lần. Ứng dụng mẫu được thiết kế để trở thành một ứng dụng Android hoạt động đầy đủ chức năng, có mã nguồn hoàn chỉnh cho thấy các khía cạnh sau:
- Tích hợp ứng dụng với PBL
- Tìm nạp sản phẩm tính phí một lần và các lựa chọn mua liên quan
- Chạy quy trình mua với giá theo khu vực
Video minh hoạ sau đây cho thấy giao diện và hành vi của ứng dụng mẫu sau khi được triển khai và chạy.
Nếu đã quen thuộc với sản phẩm tính phí một lần và Thư viện Play Billing (PBL), bạn có thể tải ứng dụng mẫu xuống và dùng thử.
Điều kiện tiên quyết
Trước khi tạo và triển khai ứng dụng mẫu, hãy làm như sau:
- Tạo tài khoản nhà phát triển trên Google Play Console. Nếu bạn đã có tài khoản nhà phát triển, hãy bỏ qua bước này.
- Tạo một ứng dụng mới trong Play Console. Khi tạo ứng dụng, bạn có thể chỉ định tên ứng dụng bất kỳ cho ứng dụng mẫu.
- Cài đặt Android Studio.
Tạo
Mục tiêu của bước tạo bản dựng này là tạo một tệp gói ứng dụng Android đã ký của ứng dụng mẫu.
Để tạo gói ứng dụng Android, hãy làm theo các bước sau:
- Tải ứng dụng mẫu xuống từ GitHub.
- Tạo ứng dụng mẫu. Trước khi tạo, hãy thay đổi tên gói của ứng dụng mẫu rồi tạo. Nếu bạn có các gói của ứng dụng khác trong Play Console, hãy đảm bảo tên gói mà bạn cung cấp cho ứng dụng mẫu là duy nhất.
Lưu ý: Việc tạo ứng dụng mẫu chỉ tạo một tệp APK mà bạn có thể dùng để kiểm thử cục bộ. Tuy nhiên, việc chạy ứng dụng không tìm nạp sản phẩm và giá vì các sản phẩm chưa được định cấu hình trong Play Console. - Tạo gói ứng dụng Android đã ký.
Bước tiếp theo là tải gói ứng dụng Android lên Google Play Console.
4. Tạo sản phẩm tính phí một lần trong Play Console
Để tạo sản phẩm tính phí một lần trong Google Play Console, bạn cần có một ứng dụng trong Play Console. Tạo một ứng dụng trong Play Console, sau đó tải gói ứng dụng đã ký mà bạn đã tạo trước đó lên.
Tạo ứng dụng
Cách tạo ứng dụng:
- Đăng nhập vào Google Play Console bằng tài khoản nhà phát triển.
- Nhấp vào Create app (Tạo ứng dụng). Thao tác này sẽ mở trang Create app (Tạo ứng dụng).
- Nhập tên ứng dụng, chọn ngôn ngữ mặc định và các thông tin khác liên quan đến ứng dụng.
- Nhấp vào Create app (Tạo ứng dụng). Thao tác này sẽ tạo một ứng dụng trong Google Play Console.
Bây giờ, bạn có thể tải gói ứng dụng đã ký của ứng dụng mẫu lên.
Tải gói ứng dụng đã ký lên
- Tải gói ứng dụng đã ký lên kênh thử nghiệm nội bộ của Google Play Console. Chỉ sau khi tải lên, bạn mới có thể định cấu hình các tính năng liên quan đến việc kiếm tiền trong Play Console.
- Nhấp vào Test and release > Testing > Internal release > Create new release (Kiểm thử và phát hành > Kiểm thử > Bản phát hành nội bộ > Tạo bản phát hành mới).
- Nhập tên bản phát hành và tải tệp APK đã ký lên.
- Nhấp vào Next (Tiếp theo), rồi nhấp vào Save and publish (Lưu và phát hành).
Bây giờ, bạn có thể tạo sản phẩm tính phí một lần.
Tạo sản phẩm tính phí một lần
Cách tạo sản phẩm tính phí một lần:
- Trong Google Play Console, trên trình đơn điều hướng bên trái, hãy chuyển đến Kiếm tiền qua Play > Sản phẩm > Sản phẩm tính phí một lần.
- Nhấp vào Create one-time product (Tạo sản phẩm tính phí một lần).
- Nhập thông tin chi tiết về sản phẩm sau:
- Mã sản phẩm: Nhập một mã duy nhất. Ví dụ:
trending_movie_1. - (Không bắt buộc) Thẻ: Thêm các thẻ có liên quan.
- Tên: Nhập tên sản phẩm. Ví dụ:
Product Movie. - Nội dung mô tả: Nhập nội dung mô tả sản phẩm. Ví dụ:
Product Description.
Theo mặc định, tên và nội dung mô tả sản phẩm được viết bằng ngôn ngữ Tiếng Anh (Hoa Kỳ) – en-US. Bạn cũng có thể nhập tên và nội dung mô tả theo cách thủ công bằng các ngôn ngữ khác. Để nhập thông tin chi tiết, hãy nhấp vào Manage translations (Quản lý bản dịch), chọn ngôn ngữ mà bạn muốn nhập văn bản đã dịch, sau đó nhấp vào Apply (Áp dụng). Hình ảnh sau đây cho thấy lựa chọn Manage translations (Quản lý bản dịch):
Hình 2: Quản lý bản dịch.
Các ngôn ngữ bạn đã chọn sẽ xuất hiện trong trình đơn thả xuống ngôn ngữ. Chọn từng ngôn ngữ rồi nhập tên và nội dung mô tả tương ứng bằng ngôn ngữ đã chọn. Bạn cũng có thể dịch tên sản phẩm và nội dung mô tả một cách tự động mà không tốn chi phí. Để biết thêm thông tin, hãy xem phần Dịch sản phẩm tính phí một lần trong lớp học lập trình này.
Lưu ý: Để phục vụ mục đích của lớp học lập trình này, bạn có thể bỏ qua việc định cấu hình trường Biểu tượng và phần Thuế, tuân thủ và chương trình. - Mã sản phẩm: Nhập một mã duy nhất. Ví dụ:
- Nhấp vào Tiếp theo.
- Thêm lựa chọn mua và định cấu hình phạm vi cung cấp theo khu vực. Một sản phẩm tính phí một lần cần có ít nhất một lựa chọn mua, xác định cách cấp quyền sử dụng, giá và phạm vi cung cấp theo khu vực. Đối với lớp học lập trình này, chúng ta sẽ thêm lựa chọn Mua tiêu chuẩn cho sản phẩm.
Trong phần Lựa chọn mua, hãy nhập các thông tin sau:- Mã lựa chọn mua: Nhập một mã duy nhất. Ví dụ:
buy-movie. - Loại giao dịch mua: Chọn Mua.
- (Không bắt buộc) Thẻ: Thêm các thẻ dành riêng cho lựa chọn mua này.
- (Không bắt buộc) Nhấp vào Tuỳ chọn nâng cao để định cấu hình các tuỳ chọn nâng cao. Để phục vụ mục đích của lớp học lập trình này, bạn có thể bỏ qua việc định cấu hình các tuỳ chọn nâng cao.
- Mã lựa chọn mua: Nhập một mã duy nhất. Ví dụ:
- Tiếp theo, bạn phải định cấu hình phạm vi cung cấp theo khu vực và giá cho lựa chọn mua. Trong phạm vi cung cấp theo khu vực, bạn sẽ chỉ định các khu vực có sản phẩm của mình, bao gồm cả những khu vực mà ứng dụng của bạn chưa được phát hành. Theo mặc định, lựa chọn mua sẽ có ở tất cả các khu vực.
Trong phần Phạm vi cung cấp và giá, hãy nhấp vào Chỉnh sửa phạm vi cung cấp và quyền truy cập > Đặt thành không có sẵn. Xin lưu ý rằng theo mặc định, tất cả các khu vực đều được đặt thành Có sẵn.- Chọn tất cả các quốc gia ngoại trừ
France,SpainvàUnited States, sau đó nhấp vào Set to unavailable (Đặt thành không có sẵn). - Trong trình đơn thả xuống All regions (Tất cả khu vực), hãy chọn Available countries and regions (Các quốc gia và khu vực có sẵn). Thao tác này chỉ hiển thị những quốc gia mà bạn đã chọn ở bước trước.
- Đối với mỗi quốc gia có sẵn, hãy nhấp vào biểu tượng chỉnh sửa trong cột Price (Giá). Thao tác này sẽ hiển thị một hộp thoại để chỉnh sửa giá. Nhập và lưu các mức giá sau:
- Đối với
France, hãy nhập 10 EUR - Đối với
Spain, hãy nhập 8 EUR - Đối với
United States, hãy nhập 13 USD
- Đối với
- Chọn tất cả các quốc gia ngoại trừ
- Nhấp vào Kích hoạt. Thao tác này sẽ cung cấp sản phẩm tính phí một lần của bạn với lựa chọn mua Mua.
Lưu ý: Đơn vị tiền tệ của giá theo khu vực sẽ hiển thị dựa trên chế độ cài đặt quốc gia trên Play của người dùng. Ví dụ: nếu quốc gia trên Play của người dùng được đặt thành Pháp, thì giá sản phẩm tính phí một lần sẽ hiển thị bằng Euro.
Video về cách tạo sản phẩm tính phí một lần
Video sau đây cho thấy các bước tạo sản phẩm tính phí một lần đã được mô tả trước đó.
Thêm lựa chọn mua theo hình thức thuê
Bây giờ, hãy thêm lựa chọn mua theo hình thức thuê vào sản phẩm tính phí một lần mà bạn đã tạo trước đó.
- Trong Google Play Console, trên trình đơn điều hướng bên trái, hãy chuyển đến Kiếm tiền qua Play > Sản phẩm > Sản phẩm tính phí một lần.
- Nhấp vào mũi tên bên phải sản phẩm có mã sản phẩm
trending_movie_1mà bạn đã tạo ở bước trước. - Nhấp vào Thêm lựa chọn mua.
- Trong phần Lựa chọn mua, hãy nhập các thông tin sau:
- Mã lựa chọn mua: Nhập
rent-movie. - Loại giao dịch mua: Chọn Thuê.
- Thời hạn thuê: Chọn 48 giờ.
- Thời hạn bắt đầu thuê: Chọn 24 giờ.
- (Không bắt buộc) Thẻ: Thêm các thẻ dành riêng cho lựa chọn mua này.
- (Không bắt buộc) Nhấp vào Tuỳ chọn nâng cao để định cấu hình các tuỳ chọn nâng cao. Để phục vụ mục đích của lớp học lập trình này, bạn có thể bỏ qua việc định cấu hình các tuỳ chọn nâng cao.
- Mã lựa chọn mua: Nhập
- Tiếp theo, tương tự như lựa chọn mua, hãy định cấu hình phạm vi cung cấp theo khu vực cho lựa chọn mua theo hình thức thuê. Xem bước 6 và 7 trong phần trước. Khi đặt giá theo khu vực, hãy đặt một mức giá khác cho việc thuê. Ví dụ:
France– 5 EURSpain– 4 EURUnited States– 7 USD.
5. Dịch thông tin chi tiết về sản phẩm tính phí một lần
Bạn có thể dịch tên sản phẩm và nội dung mô tả mà không tốn thêm chi phí bằng cách sử dụng tính năng bản dịch máy có trong Google Play Console.
Để dịch tiêu đề và nội dung mô tả, hãy làm như sau:
- Trong Google Play Console, trên trình đơn điều hướng bên trái, hãy chuyển đến Phát triển người dùng > Bản dịch > Sản phẩm trên Cửa hàng Play và trong ứng dụng.
- Nhấp vào Tạo đơn đặt hàng.
- Chọn tuỳ chọn Machine translation at no cost (Dịch máy miễn phí), sau đó nhấp vào Next (Tiếp theo).
- Trong các ngôn ngữ Translate to (Dịch sang), hãy chọn French – fr-FR (Tiếng Pháp – fr-FR) và Spanish – es-ES (Tiếng Tây Ban Nha – es-ES), sau đó nhấp vào Next (Tiếp theo).
- Chọn One-time products and subscriptions (Sản phẩm tính phí một lần và gói thuê bao), sau đó nhấp vào Translate and view translations (Dịch và xem bản dịch). Thao tác này sẽ hiển thị một biểu ngữ tuyên bố từ chối trách nhiệm. Xác nhận tuyên bố từ chối trách nhiệm.
- Bây giờ, bạn sẽ thấy danh sách các ngôn ngữ đã dịch. Nhấp vào Review and apply (Xem xét và áp dụng) cho một ngôn ngữ. Xem lại văn bản rồi nhấp vào Apply all translations (Áp dụng tất cả bản dịch). Lặp lại bước này cho tất cả các ngôn ngữ mà bạn đã chọn để dịch.
Sau khi dịch, bạn có thể chỉnh sửa văn bản đã dịch trong Play Console. Cách chỉnh sửa văn bản đã dịch:
- Mở trang One-time products > [your one-time product] > Edit one-time product > Edit one-time product details (Sản phẩm tính phí một lần > [sản phẩm tính phí một lần] > Chỉnh sửa sản phẩm tính phí một lần > Chỉnh sửa chi tiết sản phẩm tính phí một lần).
- Chọn ngôn ngữ bắt buộc trong trình đơn thả xuống ngôn ngữ. Thao tác này sẽ hiển thị văn bản bằng ngôn ngữ đã chọn. Hình ảnh sau đây cho thấy cách chọn một ngôn ngữ để chỉnh sửa văn bản đã dịch:
Hình 3: Chỉnh sửa văn bản đã dịch. - Chỉnh sửa văn bản theo yêu cầu, sau đó nhấp vào Save changes (Lưu thay đổi).
Người dùng có thể nhìn thấy văn bản đã dịch dựa trên lựa chọn ưu tiên về ngôn ngữ trên điện thoại của người dùng. Ví dụ: nếu ngôn ngữ trên điện thoại của người dùng được đặt thành tiếng Pháp, thì tiêu đề và nội dung mô tả sản phẩm tính phí một lần sẽ hiển thị bằng tiếng Pháp. Hình ảnh mẫu sau đây cho thấy cách và vị trí văn bản đã dịch sẽ xuất hiện bằng nhiều ngôn ngữ.
Hình 4: Văn bản đã dịch trong ứng dụng của bạn.
Video về cách định cấu hình bản dịch
Video sau đây cho thấy các bước định cấu hình bản dịch đã được mô tả trước đó.
6. Tích hợp với PBL
Để tích hợp ứng dụng của bạn với Thư viện Play Billing (PBL), hãy làm theo các bước sau:
- Thêm phần phụ thuộc Thư viện Play Billing vào ứng dụng mẫu.
dependencies { val billing_version = "8.0.0" implementation("com.android.billingclient:billing-ktx:$billing_version") } - Khởi chạy BillingClient. BillingClient là SDK ứng dụng nằm trên ứng dụng của bạn và giao tiếp với Thư viện Play Billing. Đoạn mã sau đây cho thấy cách khởi chạy ứng dụng thanh toán.
private BillingClient createBillingClient() { return BillingClient.newBuilder(activity) .enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()) // For one-time products, add a listener to process and acknowledge the purchases. This will notify // Google the purchase was processed. // For client-only apps, use billingClient.acknowledgePurchase(). // If you have a secure backend, you must acknowledge purchases on your server using the // server-side API. // See https://developer.android.com/google/play/billing/security#acknowledge // In this sample snippet purchases aren't processed. You must // implement your business logic to process and acknowledge the purchases. .setListener((billingResult, purchases) -> {}) .enableAutoServiceReconnection() .build(); } - Kết nối với Google Play.Đoạn mã sau đây cho thấy cách kết nối với Google Play.
/** * Starts the billing connection with Google Play. This method should be called exactly once * before any other methods in this class. * * @param productList The list of products to query for after the connection is established. */ public void startBillingConnection(List<Product> productList) { billingClient.startConnection( new BillingClientStateListener() { @Override public void onBillingSetupFinished(BillingResult billingResult) { if (billingResult.getResponseCode() == BillingResponseCode.OK) { Log.d(TAG, "Billing Client Connection Successful"); queryProductDetails(productList); } else { Log.e(TAG, "Billing Client Connection Failed: " + billingResult.getDebugMessage()); listener.onBillingSetupFailed(billingResult); // Propagate the error to the listener to show a message to the user. } } @Override public void onBillingServiceDisconnected() { Log.e(TAG, "Billing Client Connection Lost"); listener.onBillingError("Billing Connection Lost"); } }); } - Tìm nạp chi tiết sản phẩm tính phí một lần.Sau khi tích hợp ứng dụng với PBL, bạn phải tìm nạp chi tiết sản phẩm tính phí một lần vào ứng dụng của mình. Đoạn mã sau đây cho thấy cách tìm nạp chi tiết sản phẩm tính phí một lần trong ứng dụng của bạn.
Việc tìm nạp sản phẩm tính phí một lần (private void queryProductDetails(List<Product> productList) { QueryProductDetailsParams queryProductDetailsParams = QueryProductDetailsParams.newBuilder().setProductList(productList).build(); billingClient.queryProductDetailsAsync( queryProductDetailsParams, new ProductDetailsResponseListener() { @Override public void onProductDetailsResponse( BillingResult billingResult, QueryProductDetailsResult productDetailsResponse) { if (billingResult.getResponseCode() == BillingResponseCode.OK) { List<ProductDetails> productDetailsList = productDetailsResponse.getProductDetailsList(); listener.onProductDetailsResponse(productDetailsList); } else { Log.e(TAG, "QueryProductDetailsAsync Failed: " + billingResult.getDebugMessage()); listener.onBillingError("Query Products Failed: " + billingResult.getResponseCode()); } } }); }trending_movie_1trong ví dụ này) trongProductDetailssẽ cung cấp cho bạn một phản hồi tương tự như sau: Xin lưu ý rằng các lựa chọn mua và thuê có trong{ "productId": "trending_movie_1", "type": "inapp", "title": "Purrfect Mayhem: The Rewind Protocol (Movies All Day | Play Samples)", "name": "Purrfect Mayhem: The Rewind Protocol", "description": "Dr. Arid Thorne and a smart tiger named Yolo find a mysterious tape. It's a \"Rewind Protocol\" to fix time. A shadowy group, the Clockinator, hunts them to seize the tape's power.", "skuDetailsToken": "<---skuDetailsToken--->", "oneTimePurchaseOfferDetails": {}, "oneTimePurchaseOfferDetailsList": [ { "priceAmountMicros": 13000000, "priceCurrencyCode": "USD", "formattedPrice": "$13.00", "offerIdToken": "<---buy offerIdToken --->", "purchaseOptionId": "buy-option", "offerTags": [ "adventure", "mystery" ] }, { "priceAmountMicros": 7000000, "priceCurrencyCode": "USD", "formattedPrice": "$7.00", "offerIdToken": "<---rent offerIdToken--->", "purchaseOptionId": "rent-option", "offerTags": [ "adventure", "mystery" ], "rentalDetails": { "rentalPeriod": "P30D", "rentalExpirationPeriod": "PT24H" } } ] }oneTimePurchaseOfferDetailsList. Danh sách này có 2 lựa chọn mua (buy-option và rent-option) đã được định cấu hình trong Play Console. Bạn có thể xác định riêng từng lựa chọn mua bằng offerIdToken. - Tìm nạp mã thông báo ưu đãi cho các ưu đãi Thuê và Mua. Bạn cần có mã thông báo ưu đãi để khởi chạy quy trình thanh toán ở bước 6.
@Override public void onProductDetailsResponse(List<ProductDetails> productDetailsList) { if (productDetailsList != null && !productDetailsList.isEmpty()) { // Iterate over all details of the queried product in step 4. for (ProductDetails productDetails : productDetailsList) { // Get the list of all the offers associated with the product. List<ProductDetails.OneTimePurchaseOfferDetails> offerDetailsList = productDetails.getOneTimePurchaseOfferDetailsList(); // Iterate over the offer details for (ProductDetails.OneTimePurchaseOfferDetails offerDetails : offerDetailsList) { // For a Rent purchase option, the // offerDetails.getRentalDetails() method returns // the rent information. If this information is present, // the offer corresponds to a Rent purchsae option. if (offerDetails.getRentalDetails() != null) { rentFormattedPrice = offerDetails.getFormattedPrice(); // Get the offerIdToken for the Rent purchase option rentOfferToken = offerDetails.getOfferToken(); rentMovieTags = offerDetails.getOfferTags(); } // If the offerDetails.getRentalDetails() returns // null, the offer corresponds to a Buy purchsae option. else { buyFormattedPrice = offerDetails.getFormattedPrice(); // Get the offerIdToken for the Buy purchase option buyOfferToken = offerDetails.getOfferToken(); buyMovieTags = offerDetails.getOfferTags(); } } updateUIButtons(); return; } } else { Log.e(TAG, "No product details found for " + productId); } } - Khởi chạy quy trình thanh toán.
/** * Launches the billing flow for the product with the given offer token. * * @param activity The activity instance from which the billing flow will be launched. * @param productDetails The product details of the product to purchase. * @param offerToken The offer token of the product to purchase. * @return The result of the billing flow. */ public void launchPurchase(Activity activity, ProductDetails productDetails, String offerToken) { ImmutableList<BillingFlowParams.ProductDetailsParams> productDetailsParamsList = ImmutableList.of( BillingFlowParams.ProductDetailsParams.newBuilder() .setProductDetails(productDetails) .setOfferToken(offerToken) .build()); BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder() .setProductDetailsParamsList(productDetailsParamsList) .build(); billingClient.launchBillingFlow(activity, billingFlowParams); }
Mẹo: Bạn cũng có thể thiết lập thông báo theo thời gian thực dành cho nhà phát triển (RTDN) để triển khai các chiến dịch thu hút lại và các chiến lược quản lý vòng đời giao dịch mua khác. Để hiểu cách thiết lập RTDN và xử lý thông báo bằng tính năng theo dõi và quyền chính xác, bạn nên xem lớp học lập trình Tối đa hoá khả năng tích hợp Play Billing
7. Kiểm thử lựa chọn mua
Trước khi cung cấp sản phẩm tính phí một lần trong ứng dụng thực, bạn có thể kiểm thử quá trình tích hợp PBL bằng người kiểm thử được cấp phép và Play Billing Lab.
Bạn sẽ tìm hiểu cách kiểm thử khả năng bản địa hoá giá và phạm vi cung cấp, trong đó ứng dụng chỉ có ở một số khu vực với mức giá khác nhau cho từng khu vực.
Điều kiện tiên quyết
- Thêm người kiểm thử được cấp phép trong Google Play Console, sau đó bật người kiểm thử được cấp phép để kiểm thử nội bộ.
- Tải và cài đặt ứng dụng Play Billing Lab trên điện thoại hoặc trình mô phỏng.
- Chạy ứng dụng mẫu mà bạn đã tạo trước đó trên điện thoại hoặc trình mô phỏng.
Kiểm thử giá theo khu vực cho các lựa chọn mua
Để kiểm thử giá theo khu vực cho các lựa chọn mua, hãy làm như sau:
- Mở ứng dụng Play Billing Lab rồi đăng nhập với tư cách là người kiểm thử được cấp phép.
- Trong phần Configuration Settings (Cài đặt cấu hình), hãy nhấp vào Edit (Chỉnh sửa), chọn quốc gia
France, sau đó nhấp vào Apply (Áp dụng). Ở đây, chúng ta đang chọn quốc gia trên Play để xác định đơn vị tiền tệ sẽ hiển thị trong ứng dụng. - Đóng rồi mở lại ứng dụng mẫu. Bây giờ, ứng dụng sẽ hiển thị đơn vị tiền tệ mua và thuê cho
Francebằng Euro.
Để kiểm thử cho một quốc gia khác, hãy chọn Spain ở bước 2 rồi thực hiện bước 3.
Video kiểm thử Play Billing Lab
Video sau đây cho thấy các bước kiểm thử giá theo khu vực bằng ứng dụng mẫu.
8. Các bước tiếp theo
- Tìm hiểu cách tối đa hoá khả năng tích hợp Play Billing.
- Tìm hiểu cách phân tích tình trạng giảm số lượng giao dịch mua sản phẩm.
- Hãy nhớ làm theo các phương pháp hay nhất để xác minh và xử lý giao dịch mua trên phần phụ trợ an toàn của bạn sau khi người dùng bắt đầu mua các sản phẩm này.
Tài liệu tham khảo
9. Xin chúc mừng!
Xin chúc mừng! Bạn đã di chuyển thành công trong Google Play Console để tạo một sản phẩm tính phí một lần mới, định cấu hình lựa chọn mua và kiểm thử quy trình mua bằng Play Billing Lab. Giờ đây, bạn đã hiểu rõ hơn về danh mục sản phẩm linh hoạt của Google Play cho các giao dịch mua tính phí một lần.
Khảo sát
Chúng tôi rất coi trọng ý kiến phản hồi của bạn về lớp học lập trình này. Hãy dành vài phút để hoàn thành bản khảo sát của chúng tôi.