DRM básico e verificações de licença
A XStore no PC inclui uma verificação básica de DRM: o título verifica se tem uma licença ativa antes de permitir a jogabilidade. A verificação é executada na inicialização por meio deXStoreQueryGameLicenseAsync.
Se nenhuma licença for encontrada:
- Mostre ao jogador uma interface da Store para comprar ou entrar.
- Não permita que a jogabilidade prossiga sem uma licença ativa.
- Valide a licença por meio de tokens de licença a partir do seu serviço.
- Verifique novamente
XStoreQueryGameLicenseAsyncperiodicamente durante a jogabilidade; revogue em caso de perda de licença.
Licenciamento aberto vs. restritivo
Dois modelos de licenciamento para PC:- Licenciamento aberto: o jogador pode executar o título com qualquer conta da Microsoft Store que tenha uma licença. Útil para PCs compartilhados.
- Licenciamento restritivo: o jogador deve estar conectado com a conta Microsoft licenciada. Usado quando os títulos desejam uma proteção antipirataria mais forte.
Tokens de licença para validação de serviço
Se o seu servidor de jogo precisar confirmar que o jogador possui o título (por exemplo, antes de conceder um ativo no jogo), use tokens de licença:- O cliente chama
XStoreQueryLicenseTokenAsyncpara obter um token assinado de curta duração. - O cliente envia o token para o seu serviço.
- Seu serviço valida a assinatura do token com a chave pública da Microsoft.
- Seu serviço confia nas declarações do token sobre o estado da licença.
Cenários de contas da loja incompatíveis
Um problema comum no PC: o jogador está conectado ao Windows / aplicativo XBOX com uma conta Microsoft, mas a Microsoft Store está conectada com uma conta diferente. As APIs XStore seguem a conta conectada à Store, o que pode levar a:- O título mostra “comprar”, embora o jogador conectado ao XBOX o possua na outra conta.
- A compra é concluída na conta errada.
- Detecte a incompatibilidade: compare
XUserGetIdcom as informações deXStoreQueryGameLicenseAsync. - Mostre uma interface explicando a incompatibilidade e ofereça a troca.
- Se o jogador não puder trocar, ofereça redirecioná-lo pelo aplicativo XBOX para corrigir a conta da Store.
Troca de área restrita para operações da loja
A área restrita dos XBOX services (definida por meio deXblPCSandbox.exe) não controla totalmente qual área restrita a Store usa no PC. As operações da Store precisam de uma etapa adicional:
- Troque a área restrita dos XBOX services.
- Reinicie o aplicativo Microsoft Store no contexto da nova área restrita.
- Verifique se
XStoreQueryGameLicenseAsyncretorna dados da área restrita de desenvolvimento.
Lista de verificação de testes para comércio no PC
Antes de enviar:- Teste com uma conta de teste que não possui nada: verifique o fluxo de compra / avaliação / entrada.
- Teste com uma conta de teste que possui o jogo base: verifique se nenhum aviso de “comprar” aparece.
- Teste contas da loja incompatíveis: entre no Windows com uma conta e na Store com outra.
- Teste o fluxo de avaliação → compra: verifique se a licença de avaliação muda para licença completa sem reiniciar.
- Teste a inicialização offline: títulos para PC devem iniciar e ser jogados offline (sem contato com a Store) por um período razoável de licença em cache.
- Teste a troca de área restrita: confirme se as chamadas da Store retornam produtos da área restrita de desenvolvimento após a troca.
Documentação de API relacionada
- Referência da API XStore:
XStoreQueryGameLicenseAsync,XStoreQueryLicenseTokenAsync - Referência da API XUser:
XUserGetId,XUserIsStoreUser
