기본 DRM 및 라이선스 확인
PC의 XStore에는 기본 DRM 확인이 포함됩니다. 타이틀은 게임 플레이를 허용하기 전에 활성 라이선스가 있는지 확인합니다. 이 확인은XStoreQueryGameLicenseAsync를 통해 시작 시 실행됩니다.
라이선스가 발견되지 않는 경우:
- 플레이어에게 구매하거나 로그인할 수 있는 스토어 UI를 표시하세요.
- 활성 라이선스 없이 게임 플레이가 진행되도록 하지 마세요.
- 서비스의 라이선스 토큰을 통해 라이선스를 검증합니다.
- 게임 플레이 중에
XStoreQueryGameLicenseAsync를 주기적으로 다시 확인하고, 라이선스 손실 시 취소합니다.
개방형 대 제한적 라이선싱
두 가지 PC 라이선싱 모델:- 개방형 라이선싱 — 플레이어는 라이선스가 있는 모든 Microsoft Store 계정으로 타이틀을 실행할 수 있습니다. 공유 PC에 유용합니다.
- 제한적 라이선싱 — 플레이어는 라이선스가 있는 Microsoft 계정으로 로그인해야 합니다. 타이틀이 더 강력한 불법 복제 방지를 원할 때 사용됩니다.
서비스 검증용 라이선스 토큰
게임 서버가 플레이어가 타이틀을 소유하고 있는지 확인해야 하는 경우(예: 인게임 자산을 부여하기 전) 라이선스 토큰을 사용하세요.- 클라이언트가
XStoreQueryLicenseTokenAsync를 호출해 짧은 수명의 서명된 토큰을 얻습니다. - 클라이언트가 토큰을 서비스에 전송합니다.
- 서비스가 Microsoft 공개 키로 토큰의 서명을 검증합니다.
- 서비스가 라이선스 상태에 대한 토큰의 클레임을 신뢰합니다.
스토어 계정 불일치 시나리오
일반적인 PC 문제: 플레이어가 Windows/XBOX 앱에는 하나의 Microsoft 계정으로 로그인되어 있지만, Microsoft Store는 다른 계정으로 로그인되어 있습니다. XStore API는 스토어의 로그인 계정을 따르므로 다음과 같은 결과가 발생할 수 있습니다.- XBOX에 로그인된 플레이어가 다른 계정에서 소유하고 있음에도 타이틀에 “buy”가 표시됩니다.
- 잘못된 계정으로 구매가 성공합니다.
- 불일치 감지 —
XUserGetId와XStoreQueryGameLicenseAsync정보를 비교합니다. - 불일치를 설명하는 UI를 표시하고 전환을 제안합니다.
- 플레이어가 전환할 수 없는 경우, 스토어 계정을 수정하도록 XBOX 앱을 통해 리디렉션을 제안합니다.
스토어 작업을 위한 샌드박스 전환
XBOX 서비스 샌드박스(XblPCSandbox.exe를 통해 설정)는 PC에서 스토어가 사용하는 샌드박스를 완전히 제어하지 않습니다. 스토어 작업에는 추가 단계가 필요합니다.
- XBOX 서비스 샌드박스를 전환합니다.
- 새 샌드박스 컨텍스트에서 Microsoft Store 앱을 다시 시작합니다.
XStoreQueryGameLicenseAsync가 개발 샌드박스 데이터를 반환하는지 검증합니다.
PC 커머스 테스트 체크리스트
제출 전에:- 아무것도 소유하지 않은 테스트 계정으로 테스트 — 구매/트라이얼/로그인 흐름을 검증합니다.
- 기본 게임을 소유한 테스트 계정으로 테스트 — “buy” 프롬프트가 나타나지 않는지 검증합니다.
- 불일치 스토어 계정 테스트 — 하나의 계정으로 Windows에 로그인하고 다른 계정으로 스토어에 로그인합니다.
- 트라이얼 → 구매 흐름 테스트 — 다시 시작하지 않고 트라이얼 라이선스가 정식 라이선스로 전환되는지 검증합니다.
- 오프라인 실행 테스트 — PC 타이틀은 적절한 캐시된 라이선스 창 동안 오프라인(스토어 연결 없이)에서도 실행되고 재생되어야 합니다.
- 샌드박스 전환 테스트 — 전환 후 스토어 호출이 개발 샌드박스 제품을 반환하는지 확인합니다.
관련 API 문서
- XStore API 참조 —
XStoreQueryGameLicenseAsync,XStoreQueryLicenseTokenAsync - XUser API 참조 —
XUserGetId,XUserIsStoreUser
