基本 DRM 和授權檢查
PC 上的 XStore 包含基本的 DRM 檢查:遊戲在允許遊玩之前,會先確認自己具有作用中的授權。此檢查會在啟動時透過XStoreQueryGameLicenseAsync 執行。
如果找不到授權:
- 向玩家顯示商店 UI,以供購買或登入。
- 沒有作用中的授權時,不要讓遊戲繼續進行。
- 從您的服務透過授權權杖驗證授權。
- 在遊戲進行期間定期重新檢查
XStoreQueryGameLicenseAsync;授權遺失時予以撤銷。
開放式與限制式授權
兩種 PC 授權模型:- 開放式授權 — 玩家可以使用任何具有授權的 Microsoft Store 帳戶執行遊戲。適用於共用 PC。
- 限制式授權 — 玩家必須以獲得授權的 Microsoft 帳戶登入。適用於希望加強防盜版的遊戲。
用於服務驗證的授權權杖
如果您的遊戲伺服器需要確認玩家擁有該遊戲 (例如在授與遊戲內資產之前),請使用授權權杖:- 用戶端呼叫
XStoreQueryLicenseTokenAsync以取得短期有效的已簽署權杖。 - 用戶端將權杖傳送給您的服務。
- 您的服務使用 Microsoft 公開金鑰驗證權杖的簽章。
- 您的服務信任權杖中有關授權狀態的宣告。
商店帳戶不相符的案例
常見的 PC 問題:玩家以某個 Microsoft 帳戶登入 Windows / XBOX 應用程式,但 Microsoft Store 卻以不同的帳戶登入。 XStore API 會依循商店的已登入帳戶,這可能導致:- 即使登入 XBOX 的玩家在另一個帳戶上擁有遊戲,遊戲仍顯示「購買」。
- 購買成功,但記在錯誤的帳戶上。
- 偵測不相符的情況 — 比較
XUserGetId與XStoreQueryGameLicenseAsync的資訊。 - 顯示說明不相符情況的 UI,並提供切換選項。
- 如果玩家無法切換,請提供透過 XBOX 應用程式重新導向的選項,以修正商店帳戶。
商店作業的沙箱切換
XBOX services 沙箱 (透過XblPCSandbox.exe 設定) 無法完全控制 PC 上商店所使用的沙箱。商店作業需要額外的步驟:
- 切換 XBOX services 沙箱。
- 在新的沙箱內容中重新啟動 Microsoft Store 應用程式。
- 確認
XStoreQueryGameLicenseAsync傳回開發沙箱的資料。
PC 商務的測試檢查清單
提交之前:- 使用未擁有任何項目的測試帳戶進行測試 — 驗證購買 / 試用 / 登入流程。
- 使用擁有基礎遊戲的測試帳戶進行測試 — 確認不會出現「購買」提示。
- 測試商店帳戶不相符 — 以一個帳戶登入 Windows,以另一個帳戶登入商店。
- 測試試用版 → 購買流程 — 確認試用版授權無需重新啟動即可切換為完整授權。
- 測試離線啟動 — PC 遊戲必須能在合理的快取授權期間內離線啟動和遊玩 (不連線商店)。
- 測試沙箱切換 — 確認切換後商店呼叫會傳回開發沙箱的產品。
相關 API 文件
- XStore API 參考 —
XStoreQueryGameLicenseAsync、XStoreQueryLicenseTokenAsync - XUser API 參考 —
XUserGetId、XUserIsStoreUser
