다음을 통해 공유


PC에서 일치하지 않는 스토어 계정 시나리오 처리

프로덕션 중인 PC 타이틀의 XStoreContext은(는) 항상 현재 Microsoft Store 앱에 로그인되어 있는 Microsoft 계정(MSA)에 연결됩니다. 모든 XStore API 결과 및 트랜잭션의 범위는 이 활성 로그인 MSA로 지정됩니다. 그러나 이 계정은 사용자가 로그아웃하고 실행 중인 게임에 대한 통지 없이 언제든지 Microsoft Store 앱의 다른 계정으로 로그인하여 전환할 수 있습니다. 사용자가 PC에서 게임을 플레이할 때 Xbox 서비스 계정이 구매 계정인지 확인하기 위해 기본 설정을 지정한 경우 Xbox 앱 Microsoft Store 계정을 전환할 수도 있습니다. 마찬가지로 게임이 Xbox 서비스 로그인 흐름을 표시할 때 Xbox 서비스 계정이 Microsoft Store 계정과 다르게 전환될 수 있습니다. 계정이 일치하지 않는 시나리오는 의도적인 것일 수 있습니다. 게임을 플레이하는 계정과 현재 Microsoft Store 로그인한 계정 간에 계정을 전환하거나 불일치할 수 있는 경우를 적절히 디자인하고 처리하지 않으면 사용자가 구매한 게임 내 아이템을 받지 못하거나 비용이 많이 드는 고객 지원 계약을 받지 못할 수 있습니다.

다음 문서에서는 게임에 로그인한 사용자 계정과 스토어에 로그인한 다른 계정이 있는 경우와 관련된 시나리오를 계획하고 처리하고 완화하는 방법을 설명합니다.

참고 항목

위에서 설명한 시나리오는 Xbox 콘솔에서는 문제되지 않습니다. XStoreContext 컨텍스트를 만든 XUser 계정에 항상 연결됩니다. 따라서 XStore API 및 트랜잭션은 항상 게임에서 활성 사용자여야 하는 XUser에 연결됩니다.

참고 항목

개발자 샌드박스에서 테스트할 때는 적용되지 않으며 Microsoft Store 자격 증명은 항상 Xbox 앱에 로그인한 계정에 연결됩니다. 따라서 이 시나리오는 프로덕션/리테일 환경에서만 테스트하고 볼 수 있습니다. 자세한 내용은 일치하지 않는 계정 시나리오 테스트를 참조하세요.

일반 지침

Xbox 서비스가 지원되지 않는 게임(예: Xbox 서비스 계정을 사용하여 플레이 중인 사용자를 나타내기)은 언제든지 구매 계정(Microsoft Store에 로그인한 MSA)이 변경될 수 있음을 감안하여 계획하고 이를 이해해야 합니다. 따라서 게임 내 소모성 제품을 구매할 때 게임은 즉시 상거래 흐름을 시작하여 구매한 소모품을 쿼리하고 아이템을 이행(소비)해야 합니다. 그러면 게임 또는 타이틀 서비스가 해당 사용자에 대한 소모성 콘텐츠의 균형을 업데이트하고 추적합니다. 이는 기본 장치 계정이 결제하는 모바일 게임 상거래와 유사하지만, 게임 계정이 무엇이든 간에 구매에 대한 게임 내 크레딧을 가져옵니다.

자세한 지침은 서비스에서 소모성 제품 관리를 참조하세요.

Xbox 서비스를 지원하는 게임은 Xbox 서비스와 Microsoft Store 간에 일치하지 않는 계정(MSA)을 지원할지 결정하거나 게임 내 구매 및 콘텐츠 사용을 활성화하기 위해 사용자가 계정을 동기화하도록 강제해야 합니다. Windows에서 보고한 원격 분석에 따르면 Xbox 서비스 사용자 10~15%가 Windows 세션의 Xbox 서비스에 로그인한 것과 다른 MSA로 Microsoft Store 앱에 로그인합니다. 따라서 이 사용자 그룹에 대해 일치하지 않는 계정 시나리오를 지원하는 것이 좋습니다. 그러나 게임의 디자인, 시스템 및 상거래가 Xbox 서비스 계정도 구매 계정이라는 가정하에 구축된 경우 MSA 계정이 Xbox 서비스 및 Microsoft Store 간에 동기화되어 있는지 확인하는 단계가 있습니다. 계정이 동기화되도록 할 수 있는 게임의 예는 Xbox 콘솔과 동일한 게임 서비스를 사용하는 Windows PC 버전을 모두 지원하는 게임입니다. 마찬가지로, Xbox에서 원래 출시되어 PC로 이식된 게임은 플레이 계정과 상거래 ID가 동일하게 설계될 수 있습니다. Xbox 서비스 지원 게임 내에서 일치하지 않는 계정 처리와 관련된 구체적인 의미와 문제는 아래 섹션에 설명되어 있습니다.

예제 시나리오

MSA(Microsoft 계정)는 Windows PC Microsoft Store 앱에 로그인되어 있습니다. Microsoft Store를 통해 Xbox 서비스 지원 게임을 구매하고(또는 PC Game Pass를 통해 다운로드) 게임을 설치합니다. 게임을 시작할 때 Microsoft Store에 로그인한 계정과 동일한 자격 증명(MSA)인 Xbox 서비스 계정을 선택합니다. 인게임 소모성 콘텐츠를 구입하면 Microsoft Store 서비스에서 예상 소모성 수량이 계정에 청구되고 크레딧이 지급됩니다. 게임 또는 게임의 백엔드 서비스는 사용자의 자격을 쿼리하고, 소모품을 확인하고, 소모품을 이행하고, 게임 내 계정에 제품 또는 가치를 부여합니다.

나중에 자녀가 게임을 플레이하고자 할 때 자신의 Microsoft 계정으로 게임에서 Xbox 서비스에 로그인합니다. Microsoft Store 앱에는 여전히 Microsoft 계정이 로그인되어 있습니다. 자녀가 위에서 구매한 것과 동일한 소모품에 대해 게임 내 구매를 시작합니다. 다시 말하지만, Microsoft 계정은 Microsoft Store에서 청구되고 크레딧이 지급됩니다. 게임 또는 백 엔드 서비스는 XStoreContext에 따라 새 자격을 쿼리하고 계정의 스토어 결과에서 소모성 항목을 확인합니다. 게임 또는 백엔드 서비스는 소모품을 처리하고 현재 사용자의 자녀 계정인 활성 플레이어에게 제품을 부여합니다.

최종 결과는 계정에 요금이 부과되지만 게임은 게임 내 제품 또는 값을 계정 대신 자녀의 계정에 제공합니다.

X 토큰에 대한 서버 간 문제

Xbox 서비스를 사용하는 타이틀은 X 토큰을 사용하여 백엔드 서비스에서 게임을 플레이하는 사용자를 대신하여 호출할 수 있습니다. 특히 사용자가 소유한 제품을 쿼리하고 게임 내에서 소모성 상거래 시스템을 구현하기 위한 모범 사례를 따르세요. 그러나 위임된 인증 X 토큰은 게임을 플레이하는 Xbox 서비스 사용자 계정에 연결됩니다. 따라서 Microsoft Store API에 대한 서버 대 서버 호출에 X 토큰을 사용하면 위에서 설명한 일치하지 않는 계정 시나리오를 처리할 수 없습니다. 쿼리 결과는 Microsoft Store에 로그인할 때 Xbox 서비스 계정의 MSA 구매 항목만 반환합니다.

사용자 Store ID를 사용한 서버 간 인증

일치하지 않는 계정 시나리오를 처리하려면 Microsoft Store API에 대한 서비스 대 서비스 호출에서 인증에 User Store ID를 사용해야 합니다. 사용자 Store ID는 클라이언트에서 가져온 보안 토큰이므로 해당 시점에 Microsoft Store에 로그인한 계정의 ID를 나타냅니다. 그런 다음 사용자 저장소 ID에 표시된 사용자를 대신하여 Microsoft Store API에 대한 인증 흐름에서 사용됩니다.

보다 상세한 안내는 사용자 Store ID를 통한 PC 타이틀 인증을 참조하세요.

게임 내 상거래를 위해 동기화된 계정을 요구할 때 권장 사항

Xbox 서비스 지원 타이틀이 일치하지 않는 계정 시나리오를 지원하는 것이 좋지만 필수는 아닙니다. 실행 중인 타이틀은 게임을 플레이하는 Xbox 서비스 계정이 Microsoft Store에 로그인한 동일한 MSA와 일치하는지 확인하기 위해 유효성 검사를 수행할 수 있으므로 타이틀이 동일하지 않을 때 게임 내 거래 및 구매를 차단할 수 있습니다. 또한 게임 서비스는 Xbox 서비스 계정이 직접 소유하는 서비스 대 서비스 호출을 통해서만 아이템을 처리하고 사용할 수 있습니다. 게임은 XUserIsStoreUser 함수를 사용하여 계정 일치 여부를 검사할 수 있습니다.

사용자가 Xbox 서비스 및 Microsoft Store에 로그인한 계정을 동기화하도록 요구하는 경우 타이틀은 사용자가 계정이 동일하지 않은 경우와 문제를 해결하는 방법을 이해할 수 있는 UI 및 지침을 제공해야 합니다.

이 작업을 수행하는 방법에 대한 권장 사항은 다음과 같습니다.

  • 게임 UI 초기에 사용자에게 Microsoft Store에 로그인한 계정이 게임을 플레이하는 Xbox 서비스 계정과 다르다는 사실을 알립니다.
  • Microsoft Store에 로그인한 계정이 Xbox 서비스 계정과 동일하지 않으면 게임에 대해 구매한 추가 기능 또는 콘텐츠가 작동하지 않는다고 설명합니다.
  • 계정이 동일하지 않으면 게임 내 스토어에서 구매를 허용하지 않습니다.
  • Microsoft Store 앱으로 이동하고 Xbox 서비스에 사용된 것과 동일한 계정으로 로그인하는 지침을 제공합니다.
  • Xbox 앱으로 이동하고 기본 설정을 구성하여 Xbox 서비스 계정으로 Microsoft Store에 로그인하는 지침을 제공합니다.

일치하지 않는 계정 시나리오 테스트

앞서 언급했듯이 일치하지 않는 계정 시나리오는 개발 샌드박스에서 효과적이고 테스트할 수 없습니다. 이는 스토어 API의 ID와 결과가 개발 샌드박스에서 PC의 Xbox 앱에 로그인한 계정에 연결되기 때문입니다. 따라서 프로덕션 / RETAIL 환경에서만 일치하지 않는 계정 시나리오를 테스트하거나 확인할 수 있습니다. 이렇게 하려면 RETAIL 환경에 대한 테스트 계정으로 파트너 센터에서 개인 비행 그룹을 설정해야 합니다. 그런 다음 해당 플라이트 그룹의 계정만 볼 수 있는 RETAIL에 타이틀 또는 테스트 타이틀을 게시할 수 있습니다. 이를 통해 Xbox 앱과 Microsoft Store 앱 간에 로그인한 여러 계정의 시나리오를 테스트할 수 있습니다.

참고 항목

상거래 개요

서비스에서 제품 관리

XStore API 참조