Câu hỏi thường gặp

Tài liệu này giải đáp các câu hỏi thường gặp về SDK và việc xuất bản cho Google Play Games trên máy tính.

Cách thêm VPN

Đối với những nhà phát triển cần kiểm thử trò chơi của họ ở những khu vực không được hỗ trợ Google Play Games trên máy tính, bạn nên sử dụng VPN để lấy địa chỉ IP của một khu vực được hỗ trợ.

Đảm bảo bạn bật chế độ TUN trên VPN. Bạn có thể xem hướng dẫn về cách bật chế độ TUN và định cấu hình tường lửa trong sách hướng dẫn vận hành của nhà cung cấp VPN.

Sau khi bật chế độ TUN, hãy cài đặt Google Play Games trên máy tính và trình mô phỏng cho mục đích kiểm thử.

Bạn có thể sử dụng quy trình mua hàng mà không cần máy chủ phụ trợ không?

Xét về khía cạnh bảo mật, bạn thường không nên xử lý mà không có máy chủ phụ trợ.

Để biết thêm thông tin, hãy xem phần Xử lý mà không cần máy chủ phụ trợ.

Làm cách nào để bắt đầu phát triển cho Google Play Games trên máy tính trong Unity hoặc Trình chỉnh sửa UE?

Khi bạn bắt đầu một trò chơi bằng ứng dụng Google Play Games, ứng dụng này có đồng bộ hoá thông tin chi tiết về Tài khoản Google của bạn không

Sau khi khởi chạy trò chơi thông qua ứng dụng Google Play Games, tài khoản sẽ tự động được đồng bộ hoá và bạn không cần đăng nhập lại thông qua quy trình Đăng nhập bằng Google.

Khi gửi Windows App Bundle (WAB) bằng một trình chạy của bên thứ ba, gói trò chơi có bắt buộc phải được xem xét không?

Bạn chỉ cần gửi trình cài đặt mà không cần gửi toàn bộ gói trò chơi. Người đánh giá sẽ có thể tải gói trò chơi xuống bằng trình cài đặt.

Nếu người chơi sử dụng một trình chạy 3P thay vì Google Play Client, thì tài khoản Dịch vụ trò chơi của Play của họ có tự động đồng bộ hoá không?

Để các hàm SDK hoạt động, trò chơi phải được chạy trực tiếp thông qua ứng dụng Google Play Games. Nếu một quy trình khác (chẳng hạn như trình cài đặt hoặc ứng dụng trình chạy) khởi động trò chơi, thì quy trình đó phải được khởi chạy từ ứng dụng Google Play Games. Trò chơi phải truyền tất cả các tham số nhận được từ ứng dụng đến quy trình ứng dụng.

SDK xử lý việc đăng nhập bằng Tài khoản Google cho nhiều phiên bản hoặc tài khoản như thế nào?

Mỗi lần khởi chạy trò chơi trong Google Play Games được coi là một "phiên chơi trò chơi" và mỗi "phiên chơi trò chơi" có thể có một tài khoản được liên kết. Hai thông tin này có thể khác nhau. Vì vậy, nếu bạn khởi chạy trò chơi bằng tài khoản A, sau đó chuyển sang tài khoản B và khởi chạy lại, cả hai tài khoản đều có thể chạy cùng lúc.

Có giới hạn nào về kích thước tệp WAB (Windows App Bundle) không?

Bạn có thể tải tệp có kích thước tối đa 10 GB lên cho một WAB.

Tôi có được phép sử dụng các hệ thống thanh toán dựa trên API hiện có sau khi tích hợp Google Play Games trên máy tính SDK không?

Tất cả các khoản thanh toán đều phải được xử lý bằng Google Play Games trên máy tính SDK thông qua Google Play Billing. Bạn không thể dùng phương thức thanh toán hiện có dựa trên API trong cùng một trò chơi.

Có môi trường thử nghiệm công khai hoặc khép kín nào tương tự như môi trường trên thiết bị di động không?

Mặc dù hiện tại chưa có một hộp cát chuyên dụng từ đầu đến cuối, nhưng chúng tôi nhận thấy các nhà phát triển cần một môi trường kiểm thử tương tự như môi trường phát hành công khai. Chúng tôi sẽ sớm cung cấp một giải pháp mạnh mẽ hơn.

Chúng tôi không thể sử dụng đúng cách các giao dịch mua được thực hiện ở chế độ nhà phát triển?

Bạn phải xử lý giao dịch mua ở chế độ nhà phát triển trong vòng 3 phút, nếu không, giao dịch mua có thể đã được hoàn tiền.

Có sự khác biệt nào giữa API (cũ) và SDK Google Play Games trên máy tính không?

  • Legacy chỉ tập trung vào Billing
  • SDK này sẽ hỗ trợ Dịch vụ Google cho máy tính (GDS) và các tính năng đầy đủ của máy tính
  • Giao diện SDK thân thiện với nhà phát triển
  • Không cần đăng nhập vào Google trên trình duyệt

Có cách nào khác để khởi chạy SDK bằng cách khởi chạy trực tiếp trò chơi bằng trình chạy trò chơi mà không cần thông qua Google Play Games trên máy tính không?

Trò chơi phải được chạy thông qua ứng dụng Google Play Games trên máy tính. Để biết thêm thông tin chi tiết, hãy xem tài liệu dành cho nhà phát triển

Chúng tôi không hỗ trợ các khoản thanh toán định kỳ hoặc gói thuê bao. Liệu có kế hoạch triển khai tính năng này không?

Chúng tôi không có kế hoạch bổ sung những lựa chọn mua đó ngoài tính năng Mua hàng trong ứng dụng. Bạn có thể gửi ý kiến phản hồi cho chúng tôi về một trường hợp sử dụng cụ thể.

billingerror xuất hiện khi bắt đầu quy trình mua hay từ kết quả thanh toán?

Đây là phản hồi của kết quả thanh toán. LaunchPurchaseFlow sẽ trả về ngay lập tức mà không chặn, nhưng bạn phải theo dõi lệnh gọi lại để biết thời điểm hoàn tất và nắm bắt kết quả.

Có cách nào để tạo lối tắt mở trực tiếp trò chơi không?

Bạn có thể dùng URI sau để mở trực tiếp trò chơi:

googleplaygames://launch/?pid=2&id=com.company.gamename

URI này hỗ trợ phát hiện xem ứng dụng Google Play Games trên máy tính có được mở hay không. Nếu chưa mở, ứng dụng Google Play Games sẽ mở trước khi trò chơi/trình chạy khởi động. Bạn cần quản lý trò chơi/trình chạy để ngăn nhiều phiên bản chạy cùng lúc.

QueryProductDetails Giới hạn yêu cầu API

Số lượng sản phẩm tối đa có thể được truy vấn trong một lệnh gọi duy nhất đến API QueryProductDetails là 50. Nếu vượt quá giới hạn này, bạn phải chia yêu cầu thành nhiều lệnh gọi.

Tại sao trò chơi của tôi không cài đặt hoặc xuất hiện sau khi tôi tải Windows App Bundle (WAB) đầu tiên lên?

Nếu trò chơi của bạn đang được tham gia mà không có phiên bản dành cho máy tính đã tồn tại trước đó ("WAB lần đầu"), thì hệ thống có thể tự động đặt trò chơi đó vào trạng thái chờ Xuất bản có quản lý. Điều này xảy ra vì không có đường cơ sở hiện tại để cập nhật. Để phát hành hoàn toàn WAB và cho phép cài đặt trò chơi, bạn phải chuyển đến Google Play Console và thực hiện thủ công hành động phát hành bắt buộc (ví dụ: nhấp vào "Phát hành thay đổi").

Bạn xử lý quá trình khởi chạy như thế nào nếu Google Play Games khởi chạy một trình chạy trò chơi của bên thứ ba?

Bạn không bắt buộc phải tích hợp SDK trực tiếp vào trình chạy. Tuy nhiên, bạn phải truyền tất cả các đối số dòng lệnh mà trình chạy nhận được từ ứng dụng Google Play Games trực tiếp đến quy trình con được tạo (tệp thực thi trò chơi). Nếu quá trình khởi chạy không thành công (ví dụ: bằng cách trả về kActionRequiredShutdownClientProcess), tất cả các quy trình, kể cả trình chạy, phải bị chấm dứt để Google Play Games có thể cố gắng khôi phục và khởi chạy lại trò chơi một cách tự động. Để biết thêm thông tin chi tiết, hãy xem Bước 5 trong hướng dẫn thiết lập.

Có phải lỗi hết thời gian chờ là lỗi dự kiến nếu người dùng đóng trình duyệt mà không thanh toán trong quy trình mua hàng không?

Có, đây là một vấn đề đã biết và là hành vi dự kiến trong quy trình hiện tại dựa trên trình duyệt. Google đang tích cực phát triển một tính năng mua hàng liền mạch (dựa trên WebView) để duy trì quy trình thanh toán trong trò chơi và giải quyết sự bất tiện do hết thời gian chờ này.

SDK gốc dành cho máy tính có hỗ trợ các ký tự nhiều byte trong tệp chứng nhận (PEM) không?

Có, SDK hỗ trợ các ký tự nhiều byte để chứng nhận.

Những tham số nào là bắt buộc khi gọi BillingClient::QueryPurchases hoặc BillingClient::LaunchPurchaseFlow?

Hàm này chấp nhận QueryPurchasesContinuation, là một lệnh gọi lại hàm có chữ ký std::function<void(QueryPurchasesResult)>. Lệnh gọi lại sẽ truyền kết quả cho bạn cùng với tất cả ProductPurchaseDetails. Thông tin này có trong các tệp tiêu đề SDK trong tệp includes/billing/models.h.

launch_purchase_flow_result kết quả có các hàm ok()code(). Hàm ok() trả về liệu quy trình có thành công hay không. Hàm code() trả về enum BillingError (includes/billing/enums.h), có 10 trường hợp lỗi có thể xảy ra, chẳng hạn như người dùng huỷ hoặc lỗi mạng.

Khi gọi BillingClient::LaunchPurchaseFlow(), bạn có thể truyền một số đơn đặt hàng tuỳ chỉnh không?

Trong thiết kế SDK hiện tại, bạn không thể truyền tải trọng của riêng mình. Tuy nhiên, bạn có thể cung cấp bất kỳ tổ hợp nào của obfuscated_account_idobfuscated_profile_id. Bạn có thể không cung cấp, chỉ cung cấp một hoặc cung cấp cả hai.

Trường offer_token là trường bắt buộc và chỉ định ưu đãi mua mà người dùng đang cố gắng mua trong quy trình thanh toán. Hiện tại, mỗi SKU trong Google Play đều có chính xác một ưu đãi (ví dụ: mua một mặt hàng với giá 10 đô la). Trong tương lai, nhóm thanh toán của Play sẽ hỗ trợ nhiều ưu đãi.

Để đảm bảo liên kết siêu dữ liệu trong trường hợp gián đoạn quy trình mua, hãy lưu trữ siêu dữ liệu trên máy chủ phụ trợ trước khi khởi chạy hộp thoại giao dịch mua và liên kết siêu dữ liệu đó với mã tài khoản của người dùng, SKU đang được mua và dấu thời gian hiện tại. Để biết thêm thông tin, hãy xem phần Liên kết giao dịch mua với dữ liệu nội bộ.

Chế độ tích hợp Play Install Referrer có hoạt động không?

Phiên bản mới nhất của SDK (25.5.409.0 trở lên) hỗ trợ Play Install Referrer API. Để biết thêm thông tin, hãy xem Play Install Referrer API.

Người dùng có cần đăng nhập riêng cho từng trận đấu để mua không?

Tài khoản ở chế độ nền trước trong Google Play Games được dùng cho mỗi phiên trò chơi, vì vậy, bạn không cần đăng nhập lại. Tài khoản mà bạn dùng trong Google Play Games khi phiên trò chơi bắt đầu là tài khoản mà các lệnh gọi API được phát hành dưới dạng. Khi khởi chạy quy trình mua hàng trong trình duyệt, bạn phải đăng nhập và sử dụng cùng một tài khoản với phiên trò chơi. Nếu người dùng đăng nhập bằng một tài khoản khác, quy trình trên web sẽ nhắc họ chuyển đổi tài khoản.

Điều kiện tiên quyết để chuyển từ hệ thống thanh toán của Google có OAuth sang hệ thống thanh toán gốc của Google có DLL là gì?

Các trò chơi có thể tiếp tục sử dụng tính năng đăng nhập bằng OAuth với Google để quản lý tài khoản đã đăng nhập, nhưng Google khuyên bạn nên ngừng sử dụng các API thanh toán REST cũ. Việc chuyển từ API thanh toán REST (có tính năng đăng nhập bằng OAuth2) sang quy trình SDK có thể là một thao tác được gắn cờ tính năng, vì vậy cả hai có thể cùng tồn tại trong một khoảng thời gian trong khi trò chơi chuyển đổi.

Payment Request API (LaunchPurchaseFlow) có được xử lý thông qua trình duyệt web không?

Có, hiện tại, yêu cầu này được xử lý thông qua trình duyệt. Google dự định hoàn tất toàn bộ quy trình mà không cần rời khỏi trò chơi thông qua SDK.

Có thể sử dụng lại các tham số khởi tạo nhiều lần không?

Điều này có thể xảy ra miễn là ứng dụng Google Play Games đang chạy và thông tin đăng nhập hợp lệ. Tuy nhiên, trong các trường hợp như trường hợp được mô tả trong hướng dẫn, tất cả các quy trình do trò chơi khởi chạy phải bị chấm dứt khi người dùng đóng trò chơi hoặc trò chơi thoát do lỗi khởi chạy SDK, chẳng hạn như kActionRequiredShutdownClientProcess.

Bạn có thể sử dụng khoá đăng ký trong HKEY_CURRENT_USER thay vì HKEY_LOCAL_MACHINE không?

Bạn nên tạo khoá đăng ký dựa trên phân vùng gốc. Bạn có thể đặt root hive thành HKEY_LOCAL_MACHINE hoặc HKEY_CURRENT_USER tuỳ thuộc vào mục đích và bản chất của dữ liệu. Tổ ong HKEY_LOCAL_MACHINE được dùng làm ví dụ trong các nguyên tắc.

Một trò chơi có thể hỗ trợ cả SDK gốc và hệ thống thanh toán cũ cùng một lúc không?

Hệ thống thanh toán hoạt động theo mô hình hai luồng tuỳ thuộc vào phiên bản nhị phân của trò chơi. Người dùng sử dụng bản dựng cũ sẽ tiếp tục sử dụng quy trình hiện có, còn người dùng sử dụng bản dựng mới sẽ chuyển sang thanh toán dựa trên SDK. Người dùng trên cả hai quy trình thanh toán sẽ cùng tồn tại trong giai đoạn chuyển đổi.

Làm cách nào để tải WAB lên để kiểm thử nội bộ?

Chia sẻ các tài khoản trong danh sách cho phép với Google để Google có thể bật các tài khoản đó cho hoạt động kiểm thử nội bộ. Sau khi có danh sách này, Google sẽ đảm bảo rằng các nhà cung cấp này có trong quy trình tham gia.

Bạn thêm người kiểm thử mới ở đâu?

Người liên hệ của bạn tại Google sẽ tạo một nhóm email cho mỗi dự án PC, trong đó bạn phải thêm Tài khoản Google của người kiểm thử. Chỉ những thành viên của nhóm email này mới được phép tải các gói kiểm thử xuống trong Google Play Games.

Bạn nên tải gói PC chính thức lên ở đâu trước khi ra mắt chính thức?

Bạn có thể tải gói WAB lên vị trí được đề cập trong câu hỏi đầu tiên. Tuy nhiên, bạn không thể xuất bản theo cách thủ công. Bạn phải cung cấp cho nhân viên phụ trách hệ thống phụ trợ của Google thời gian chính xác theo giờ UTC (đến từng giờ). Sau đó, Google sẽ định cấu hình lịch phát hành và đảm bảo rằng lịch này được xuất bản đúng hạn.

Bạn xử lý việc nâng cấp và bảo trì như thế nào sau khi ra mắt chính thức?

Bạn phải triển khai các bản nâng cấp và hoạt động bảo trì tiếp theo thông qua trình chạy. Ứng dụng Google Play Games không hỗ trợ các hàm cập nhật, vì vậy, trình chạy phải có khả năng cập nhật cả trò chơi và chính trình chạy.

Google có những yêu cầu nào đối với việc xem xét các gói dành cho máy tính?

Các gói dành cho máy tính sẽ được quét phần mềm độc hại, sau đó người đánh giá chỉ kiểm thử quy trình cài đặt, khởi động và gỡ cài đặt trò chơi thành công.

Tôi có cần tích hợp tất cả các API không?

Bạn không bắt buộc phải dùng các API khác, nhưng chúng mang lại những lợi ích bổ sung. google::play::billing là yêu cầu bắt buộc đối với giao dịch mua hàng trong ứng dụng và bán nội dung kỹ thuật số. google::play::install_referrer là bắt buộc để theo dõi dữ liệu giới thiệu nhằm giúp bạn hiểu rõ những nguồn lưu lượng truy cập nào gửi nhiều người dùng nhất đến tải ứng dụng của bạn xuống. google::play::games::integrity là bắt buộc để bảo vệ ứng dụng của bạn khỏi những đối tượng xấu bằng cách phát hiện các thiết bị có thể gây rủi ro và trình mô phỏng không xác định.

Tại sao một số quy trình trò chơi bị chấm dứt khi ứng dụng Google Play Games đóng, trong khi những quy trình khác thì không?

Google không kiểm soát các quy trình con hoặc quy trình của trò chơi đang chạy. Hành vi này phụ thuộc vào việc trò chơi là trò chơi mô phỏng Android hay trò chơi gốc trên máy tính. Các trò chơi được mô phỏng sẽ được cài đặt trong môi trường riêng, vì vậy, hành vi của các trò chơi này phụ thuộc phần lớn vào quá trình khởi động và tắt trình mô phỏng.

Bạn nên dùng tính năng gỡ cài đặt của Google Play Games hay trình gỡ cài đặt tuỳ chỉnh?

Google khuyên bạn nên sử dụng tính năng gỡ cài đặt của Google Play Games.

Bạn có thể sử dụng giao dịch mua phía máy khách cho Google Play Games trên máy tính không?

Google khuyên bạn nên sử dụng giao dịch mua phía máy chủ và quy trình xác minh giao dịch mua. Để xử lý giao dịch mua từ ứng dụng khách, trò chơi của bạn phải nằm trong danh sách cho phép. Vui lòng liên hệ với Đối tác của Google nếu trò chơi của bạn cần có quyền truy cập. Để biết thêm thông tin, hãy xem phần Xử lý mà không cần máy chủ phụ trợ.