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à quy trình phát hành 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 mình ở 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 từ một khu vực được hỗ trợ.

Đảm bảo bạn bật chế độ TUN trên VPN. Bạn có thể tìm thấy 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 để kiểm thử.

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

Về mặt 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 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 khởi chạy của bên thứ ba, gói trò chơi có cần được xem xét không?

Bạn chỉ cần gửi trình cài đặt và không cần gửi toàn bộ gói trò chơi Người xem xét 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 trình khởi chạy của bên thứ ba thay vì Ứng dụng Google Play, thì tài khoản Dịch vụ trò chơi của Play có tự động đồng bộ hoá không?

Để các hàm SDK hoạt động, trò chơi phải được khởi 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ư ứng dụng trình cài đặt hoặc trình khởi chạy) khởi chạy trò chơi, thì chính quy trình đó phải được khởi chạy từ ứng dụng Google Play Games. Trò chơi phải chuyể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ý quy trình đăng nhập vào Tài khoản Google cho nhiều thực thể 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 trò chơi" và mỗi "phiên trò chơi" có thể có một tài khoản được liên kết với phiên đó. Các tài khoản 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, thì 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 WAB có kích thước tối đa 10 GB lên.

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

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

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

Mặc dù hiện tại chưa có hộp cát đầu cuối chuyên dụng, nhưng chúng tôi nhận thấy nhu cầu về môi trường thử nghiệm giống như môi trường phát hành công khai dành cho nhà phát triển. 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ác giao dịch mua được bắt đầu ở chế độ dành cho nhà phát triển?

Bạn phải sử dụng giao dịch mua ở chế độ dành cho 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ó điểm khác biệt nào giữa API (phiên bản cũ) và SDK Google Play Games trên máy tính không?

  • Phiên bản cũ chỉ tập trung vào Billing
  • SDK sẽ hỗ trợ Dịch vụ Google Desktop (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 bằng Google dựa trên trình duyệt

Có cách nào khác để khởi động SDK bằng cách khởi chạy trực tiếp trò chơi bằng trình khởi 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 khởi 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. Có kế hoạch nào để triển khai tính năng này không?

Chúng tôi không có kế hoạch thêm các lựa chọn mua đó ngoài tính năng Mua hàng trong ứng dụng. Chúng tôi rất mong nhận được ý kiến phản hồi của bạn về các trường hợp sử dụng cụ thể.

billingerror bắt nguồn từ việc 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ể sử dụng URI sau để mở trực tiếp trò chơi:

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

URI 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 ứng dụng không được mở, thì ứng dụng Google Play Games sẽ mở trước khi trò chơi/trình khởi chạy chạy. Bạn cần quản lý trò chơi/trình khởi chạy để ngăn nhiều thực thể chạy.

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

Số lượng sản phẩm tối đa có thể được truy vấn trong một lệnh gọi đế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 tích hợp 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 tiên"), thì hệ thống có thể tự động đặt trò chơi đó vào trạng thái giữ Phát hành được quản lý. Điều này xảy ra vì không có đường cơ sở hiện có để cập nhật. Để phát hành đầy đủ WAB và cho phép cài đặt trò chơi, bạn phải chuyển đến Google Play Console và thực thi hành động phát hành bắt buộc theo cách thủ công (ví dụ: nhấp vào "Phát hành các thay đổi").

Bạn xử lý quy trình khởi động như thế nào nếu Google Play Games khởi chạy trình khởi 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 trực tiếp SDK vào trình khởi chạy. Tuy nhiên, bạn phải chuyển tất cả các đối số dòng lệnh mà trình khởi 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 động không thành công (ví dụ: bằng cách trả về kActionRequiredShutdownClientProcess), thì tất cả các quy trình, bao gồm cả trình khởi chạy, phải bị chấm dứt để Google Play Games có thể tự động cố gắng khôi phục và khởi chạy lại trò chơi. Để 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.

Lỗi hết thời gian chờ có phải 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 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 liền mạch (dựa trên WebView) sẽ giữ quy trình thanh toán trong trò chơi và giải quyết sự bất tiện do lỗi 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.

Bạn cần có những tham số nào 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ẽ chuyể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ề kết quả cho biết 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.

Việc gọi BillingClient::LaunchPurchaseFlow() có hỗ trợ chuyển số đơn đặt hàng tuỳ chỉnh không?

Trong thiết kế SDK hiện tại, bạn không thể chuyể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 cả hai.

Trường offer_token là 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 chỉ có đúng 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ức năng tích hợp Play Install Referrer có hoạt động không?

Phiên bản SDK mới nhất (25.5.409.0 trở lên) hỗ trợ API Play Install Referrer. Để 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ò chơi để thực hiện giao dịch mua không?

Tài khoản ở 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 sử 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. Khi khởi chạy quy trình mua trong trình duyệt, bạn phải đăng nhập và sử dụng cùng một tài khoản như phiên trò chơi. Nếu người dùng đăng nhập bằng một tài khoản khác, thì quy trình web sẽ nhắc họ chuyển đổi tài khoản.

Điều kiện tiên quyết để chuyển từ tính năng thanh toán của Google bằng OAuth sang tính năng thanh toán gốc của Google bằng 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 phiên bản cũ. Việc chuyển từ các 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.

API yêu cầu thanh toán (LaunchPurchaseFlow) có được xử lý thông qua trình duyệt web không?

Có, hiện tại, API này được xử lý thông qua trình duyệt. Google có kế hoạch 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 động nhiều lần không?

Bạn có thể thực hiện việc này 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 động SDK, chẳng hạn như kActionRequiredShutdownClientProcess.

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

Bạn nên tạo các khoá sổ đăng ký dựa trên tổ ong gốc. Bạn có thể đặt tổ ong gốc là 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 nguyên tắc.

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

Hệ thống thanh toán hoạt động theo mô hình quy trình kép tuỳ thuộc vào phiên bản nhị phân của trò chơi. Người dùng trên các bản dựng phiên bản cũ tiếp tục sử dụng quy trình hiện có và người dùng trên các bản dựng mới chuyển sang các khoản thanh toán dựa trên SDK. Người dùng trên cả hai quy trình thanh toán 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 quá trình kiểm thử nội bộ. Sau khi có danh sách, Google sẽ đảm bảo rằng các tài khoản đó được đưa vào quy trình tích hợp.

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

Điểm liên hệ của bạn với Google tạo một nhóm email cho mỗi dự án dành cho máy tính, trong đó phải thêm Tài khoản Google của người thử nghiệm. 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 chính thức dành cho máy tính lên ở đâu trước khi phát hành 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ể phát hành gói này theo cách thủ công. Bạn phải cung cấp cho nhân viên phụ trợ của Google thời gian UTC chính xác (đế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 phát hành đúng giờ.

Bạn xử lý quy trình nâng cấp và bảo trì như thế nào sau khi phát hành chính thức?

Bạn phải triển khai các quy trình nâng cấp và bảo trì tiếp theo thông qua trình khởi 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 khởi chạy phải có khả năng cập nhật cả trò chơi và chính trình khởi chạy.

Các yêu cầu để Google xem xét gói dành cho máy tính là gì?

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

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 sử dụng các API khác, nhưng chúng mang lại những lợi ích bổ sung. Bạn phải sử dụng google::play::billing để mua hàng trong ứng dụng và bán nội dung kỹ thuật số. Bạn phải sử dụng google::play::games::recall để theo dõi dữ liệu giới thiệu nhằm giúp bạn hiểu rõ nguồn lưu lượng truy cập nào gửi nhiều người dùng nhất để tải ứng dụng của bạn xuống. Bạn phải sử dụng google::play::games::integrity để bảo vệ ứng dụng của mình khỏi những tác nhân xấu bằng cách phát hiện các thiết bị có khả năng 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 bị đóng, trong khi các 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 được mô phỏng trên Android hay trò chơi gốc dành cho máy tính. Các trò chơi được mô phỏng được cài đặt bên trong môi trường riêng của chúng, vì vậy, hành vi của chúng 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 sử 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.