Skip to main content
Windows PC 會帶來 XBOX 上的 XStore 所沒有的複雜情況:PC 上的 Microsoft Store 帳戶可能與玩家的 XBOX 帳戶不同、沙箱對商店作業的影響方式不同,而授權權杖流程可讓您的服務在不信任用戶端的情況下驗證擁有權。

基本 DRM 和授權檢查

PC 上的 XStore 包含基本的 DRM 檢查:遊戲在允許遊玩之前,會先確認自己具有作用中的授權。此檢查會在啟動時透過 XStoreQueryGameLicenseAsync 執行。 如果找不到授權:
  1. 向玩家顯示商店 UI,以供購買或登入。
  2. 沒有作用中的授權時,不要讓遊戲繼續進行。
對於盜版風險較高的遊戲,請加上額外的檢查:
  • 從您的服務透過授權權杖驗證授權。
  • 在遊戲進行期間定期重新檢查 XStoreQueryGameLicenseAsync;授權遺失時予以撤銷。

開放式與限制式授權

兩種 PC 授權模型:
  • 開放式授權 — 玩家可以使用任何具有授權的 Microsoft Store 帳戶執行遊戲。適用於共用 PC。
  • 限制式授權 — 玩家必須以獲得授權的 Microsoft 帳戶登入。適用於希望加強防盜版的遊戲。
請在 Partner Center 中您產品的 [屬性] 下進行設定。

用於服務驗證的授權權杖

如果您的遊戲伺服器需要確認玩家擁有該遊戲 (例如在授與遊戲內資產之前),請使用授權權杖:
  1. 用戶端呼叫 XStoreQueryLicenseTokenAsync 以取得短期有效的已簽署權杖。
  2. 用戶端將權杖傳送給您的服務。
  3. 您的服務使用 Microsoft 公開金鑰驗證權杖的簽章。
  4. 您的服務信任權杖中有關授權狀態的宣告。
這可避免用戶端在沒有證明的情況下宣稱擁有權,也可避免您的服務在每個工作階段輪詢 Microsoft Store API。

商店帳戶不相符的案例

常見的 PC 問題:玩家以某個 Microsoft 帳戶登入 Windows / XBOX 應用程式,但 Microsoft Store 卻以不同的帳戶登入。 XStore API 會依循商店的已登入帳戶,這可能導致:
  • 即使登入 XBOX 的玩家在另一個帳戶上擁有遊戲,遊戲仍顯示「購買」。
  • 購買成功,但記在錯誤的帳戶上。
處理方式:
  1. 偵測不相符的情況 — 比較 XUserGetId 與 XStoreQueryGameLicenseAsync 的資訊。
  2. 顯示說明不相符情況的 UI,並提供切換選項。
  3. 如果玩家無法切換,請提供透過 XBOX 應用程式重新導向的選項,以修正商店帳戶。

商店作業的沙箱切換

XBOX services 沙箱 (透過 XblPCSandbox.exe 設定) 無法完全控制 PC 上商店所使用的沙箱。商店作業需要額外的步驟:
  1. 切換 XBOX services 沙箱。
  2. 在新的沙箱內容中重新啟動 Microsoft Store 應用程式。
  3. 確認 XStoreQueryGameLicenseAsync 傳回開發沙箱的資料。
若未正確切換商店,會導致令人混淆的測試結果:XBOX services 看到的是開發沙箱,但商店呼叫卻送到 RETAIL。

PC 商務的測試檢查清單

提交之前:
  1. 使用未擁有任何項目的測試帳戶進行測試 — 驗證購買 / 試用 / 登入流程。
  2. 使用擁有基礎遊戲的測試帳戶進行測試 — 確認不會出現「購買」提示。
  3. 測試商店帳戶不相符 — 以一個帳戶登入 Windows,以另一個帳戶登入商店。
  4. 測試試用版 → 購買流程 — 確認試用版授權無需重新啟動即可切換為完整授權。
  5. 測試離線啟動 — PC 遊戲必須能在合理的快取授權期間內離線啟動和遊玩 (不連線商店)。
  6. 測試沙箱切換 — 確認切換後商店呼叫會傳回開發沙箱的產品。

相關 API 文件

另請參閱

Last modified on October 6, 2026