用戶端授權檢查中的 Game Pass 授權
無法從遊戲用戶端偵測 Game Pass 權利。當使用者透過 Game Pass 取得您遊戲的權利時,XStoreQueryGameLicenseAsync 會傳回isActive = true 的授權,與直接購買相同。XStoreGameLicense 結構不包含識別授權取得方式的欄位。
若要記錄使用者取得您遊戲的方式 (例如用於遙測),請從用戶端將使用者的身分識別傳送至您自己的服務。接著,您的服務會呼叫 publisherQuery API 並檢查 acquisitionType。值為 Recurring 表示 Game Pass 權利,Single 則表示直接擁有。
已授權與未授權發行者的回應資料行為
如果您的發行者未獲授權,透過 Game Pass 取得權利的項目會顯示為直接擁有的權利。例如,acquisitionType 會顯示為 Single,且 Game Pass ProductId 不會出現在 satisfiedByProductIds 中。
對於已授權的發行者,只會傳回有效的 Game Pass 訂閱。如果使用者的 Game Pass 訂閱已取消或結束,之後的查詢將不再包含 Game Pass 資訊。此外,EndDate 會正規化為最大值,因此無法用來偵測訂閱結束。
伺服器對伺服器權利結果中的 Game Pass 發行日延遲
當遊戲或附加元件在 Game Pass 中上線時,請預期用戶端可用性與publisherQuery 可見性之間會有延遲。此行為是因為各商店系統的快取重新整理間隔不同所致。實際上,本機授權通常會先更新,而 publisherQuery 可能會延遲兩到三小時。
直接檢查 Game Pass ProductId 不受影響;延遲主要發生在透過滿足權利授與的項目。
在開發沙箱中測試 Game Pass 訂閱
當您在開發沙箱內的 XBOX Store 應用程式中搜尋 XBOX Game Pass 層級時,這些層級應已啟用且可供存取。XBOX 測試帳戶建立時會附帶測試信用卡,並可在您的沙箱中訂閱 Game Pass 層級。如果您在沙箱中找不到 Game Pass 層級,請連絡您的開發人員合作夥伴經理或 Microsoft 連絡人以取得協助。Game Pass 訂閱狀態不會在沙箱之間延續。在沙箱中將 Game Pass 新增至測試帳戶之後,請勿將該測試帳戶移至另一個沙箱進行 Game Pass 或其他商務相關的測試或偵錯。
要求 Game Pass 訂閱狀態
若要要求使用者的 Game Pass 訂閱狀態,請將您獲授權檢視之訂閱層級的對應 ProductId 新增至查詢要求的 productSkuIds 清單 (請參閱下表)。
如果使用者擁有您所要求層級的訂閱,查詢回應會包含具有對應 Game Pass 訂閱層級 ProductId 的項目。
要求包含在較高層級中之層級的行為
當訂閱者擁有較高層級時,會包含某些 Game Pass 層級。當使用者訂閱較高層級時,會傳回包含在較高層級中的任何已授權層級。 範例:您的發行者已獲得 XBOX Game Pass Essential 的授權。使用者擁有 XBOX Game Pass Ultimate。當您查詢所有 Game Pass ProductId 時,publisherQuery 只會傳回 XBOX Game Pass Essential 的結果。如果您的發行者有權檢視其他任何層級,publisherQuery 也會傳回這些層級。XBOX Game Pass (Starter Edition) 是繼承的例外,屬於獨立層級。它不包含在其他任何層級中。
為 Game Pass 訂閱者授與遊戲內福利
我們建議要求存取為訂閱者授與遊戲內福利和權益所需的最低 Game Pass 層級。 範例:您要將遊戲內獎勵授與主機上的所有 Game Pass 訂閱者。您只需要 XBOX Game Pass Essential (CFQ7TTC0K5DJ) 的存取權,因為 Premium 和 Ultimate 都包含 Essential。使用 satisfiedByProductIds 偵測透過 Game Pass 訂閱取得權利的產品
獲得授權之後,請檢查satisfiedByProductIds 和 acquisitionType 值,以識別源自 Game Pass 的權利。以 Game Pass 為基礎的權利,其 acquisitionType 為 Recurring,且 satisfiedByProductIds 包含您獲授權之最高 Game Pass 層級的 ProductID。
如果您使用 excludeDuplicates 篩選選項,當使用者直接擁有該遊戲時,與 Game Pass 相關的權利會被篩選掉。
satisfiedByProductIds 中是否有 Game Pass productID,可讓您得知該項目是否透過 Game Pass 取得權利,但這不足以判斷使用者是否為 Game Pass 會員。若要檢查使用者的 Game Pass 訂閱狀態,請在要求的 productSkuIds 中包含 Game Pass ProductId 值。
XBOX Game Pass 的重複項目範例
如果使用者對同一產品同時擁有直接擁有權和 Game Pass 權利,當excludeDuplicates 為 false 時,可能會出現兩個項目。當 excludeDuplicates 為 true 時,會傳回直接購買的項目。
如需完整的重複項目解析規則和來源優先順序行為,請參閱了解回應中的重複項目。
