Skip to main content
Muitos títulos oferecem conteúdo complementar para compra na Microsoft Store e em uma loja dentro do jogo. Direitos e licenciamento são dois sistemas que ajudam a determinar se um jogador deve receber acesso a conteúdo complementar dentro de um jogo. A abordagem que você usa depende do tipo de conteúdo (como durável, consumível ou pacote) e do design do jogo. Você pode gerenciar direitos de consumíveis a partir de um serviço, adquirir licenças de duráveis usando o cliente ou usar uma combinação de direitos e licenciamento para controlar o acesso ao conteúdo no seu jogo.

Direitos

Um direito representa o direito do cliente de acessar e usar um produto digital, incluindo jogos, assinaturas e complementos. Toda compra ou resgate feito na Microsoft Store resulta em um ou mais direitos acompanhados pelo serviço de coleções da Microsoft. Para obter mais informações sobre os tipos de produto que funcionam com direitos, confira Escolhendo o tipo de produto certo. Os direitos de produto podem ser concedidos pela compra direta do produto pelo jogador, pela compra de um produto satisfatório (como um pacote ou uma assinatura) ou por um direito compartilhado de outro usuário. Os direitos dão suporte a vários estados: ativo, inativo, expirado e revogado. Os clientes e serviços do jogo podem consultar os direitos de um jogador, mas os resultados podem ser diferentes:
  • As APIs de cliente só podem retornar direitos com estado ativo, mas podem retornar todos os tipos de direito (direto, compartilhado, satisfatório). No entanto, o tipo de um direito não é visível para o cliente.
  • As APIs de serviço podem retornar direitos em qualquer estado, mas não podem retornar direitos compartilhados porque não têm contexto de dispositivo. No entanto, elas conseguem distinguir entre direitos diretos e satisfatórios.

Compartilhamento de direitos e disponibilidade offline

  • Quando a conta proprietária do produto designa o dispositivo atual como seu dispositivo offline (usando Home XBOX no console ou Offline permissions no PC), ela compartilha seus direitos não consumíveis com outras contas no dispositivo.
  • Os direitos de consumíveis são direitos diretos vinculados à conta que fez a compra e não podem ser compartilhados com outras contas no dispositivo.
  • Todas as consultas de direitos exigem uma conexão online. Não use direitos para determinar os direitos de acesso de um jogador quando estiver offline. Em vez disso, use o licenciamento.

Uso de direitos em um cliente de jogo

Sempre que o cliente envia uma solicitação de catálogo, ele envia uma chamada correspondente ao serviço de coleções para preencher a propriedade IsInUserCollection de cada XStoreProduct retornado. Se IsInUserCollection for true, isso indica que o jogador tem direito de usar o produto. Use esse valor ao decidir quais produtos aparecem como disponíveis para compra ou como já ‘possuídos’ pelo jogador na loja do seu jogo. Você pode recuperar os detalhes de XStoreProduct de conteúdo complementar por meio dos seguintes métodos:
  • XStoreQueryAssociatedProductsAsync / Result - retorna apenas produtos disponíveis para compra. O resultado não inclui produtos ocultos, disponíveis apenas em um pacote ou que não estão mais disponíveis para compra na Microsoft Store.
  • XStoreQueryProductsAsync / Result - usado para consultar produtos específicos. Use essa função para verificar alterações de direitos de um único produto ou de um subconjunto de produtos.
Para consultar o serviço de coleções sobre todos os direitos ativos, incluindo produtos ocultos ou que não estão mais disponíveis para compra na Microsoft Store, chame: Recomendamos verificar alterações de direitos quando o jogo recupera o foco (PC) ou retorna de um estado restrito (console), pois o jogador pode adquirir novo conteúdo enquanto está fora do jogo. Se o conteúdo complementar estiver disponível para compra em lojas externas (Microsoft Store, aplicativo XBOX, xbox.com), uma compra pode acontecer a qualquer momento em outro dispositivo sem que o cliente a detecte. Verifique novos direitos em pontos estratégicos do jogo, como quando o jogador visita a loja ou o menu de inventário. Ou o seu título pode consultar atualizações ocasionalmente para reduzir os atrasos entre a compra de um produto pelos jogadores e a disponibilidade do conteúdo no jogo. Para obter mais informações sobre como consultar produtos e direitos a partir do cliente, confira Operações básicas da loja.

Uso de direitos em um serviço de jogo

Opções mais avançadas para consultar e gerenciar direitos estão disponíveis ao usar um serviço de jogo. Aqui está uma pequena amostra do que é possível: Para obter mais informações sobre as ofertas serviço a serviço, confira Gerenciar produtos a partir do seu serviço.

Considerações sobre direitos

  • Ao operar em uma sandbox de desenvolvedor no PC, o cliente faz todas as consultas de direitos em nome da conta conectada ao aplicativo XBOX.
  • Ao operar em RETAIL no PC, o cliente faz todas as consultas de direitos em nome da conta conectada à Microsoft Store. Cenários de contas incompatíveis podem ocorrer quando a conta conectada ao jogo não corresponde à conta conectada à Microsoft Store (confira Lidando com contas da loja incompatíveis para obter detalhes).
Para solucionar problemas comuns com direitos, confira Solução de problemas de desenvolvimento do XStore.

Licenciamento

Uma licença é uma chave digital que confirma o direito do usuário de acessar conteúdo no dispositivo. O usuário deve ter direito de usar o produto ou inserir um disco que inclua o produto (jogos e duráveis com pacotes) antes que uma licença possa ser adquirida. Ao trabalhar com um durável (com ou sem pacote), use o licenciamento para atender às expectativas relacionadas a compartilhamento, simultaneidade e disponibilidade offline (confira modelo de compartilhamento de produtos para jogos). As licenças estão sujeitas a limitações de dispositivo e verificações de simultaneidade que dependem do modelo de licença usado pelo jogo (confira Licenciamento aberto e restritivo. Mesmo que um jogador tenha um direito ativo ao produto, ele pode não conseguir adquirir uma licença válida para uso no dispositivo.

Compartilhamento de licenças e disponibilidade offline

O compartilhamento de licenças ocorre no dispositivo quando uma ou mais destas condições são verdadeiras:
  • O jogo adquiriu uma licença enquanto a conta do proprietário estava conectada e uma conexão online estava estabelecida.
  • O jogo adquiriu uma licença offline para a conta do proprietário como dispositivo offline (Home XBOX no console ou Offline permissions no PC). Nesse cenário, a conta proprietária não precisa estar conectada ao dispositivo para compartilhar suas licenças com outras contas.
  • O jogador insere um disco que inclui a DLC (durável com pacote) e a DLC é instalada no dispositivo.
As licenças ficam disponíveis offline quando uma ou mais destas condições são verdadeiras:
  • A conta proprietária do produto designa o dispositivo atual como seu dispositivo ‘offline’ (usando Home XBOX no console ou Offline permissions no PC). Depois que a designação offline é habilitada, o jogo deve adquirir uma licença para o produto durável enquanto estiver online. Na próxima vez que o jogo for iniciado, ele adquirirá a licença com capacidade offline.
  • O jogador insere um disco que inclui a DLC (durável com pacote) e a DLC é instalada no dispositivo.

Uso de licenças em um cliente de jogo

Você pode licenciar um durável (com ou sem pacote) usando o seguinte fluxo:
  • XStoreCanAcquireLicenseForStoreIdAsync / Result visualiza uma licença sem invocar uma verificação de simultaneidade. Se XStoreCanLicenseStatus for Licensable, o jogo poderá tentar adquirir uma licença de durável. Essa verificação prévia requer uma conexão online.
  • XStoreAcquireLicenseForDurablesAsync / Result chama o serviço de licenciamento para adquirir uma licença se não houver licença no dispositivo ou se a licença atual tiver expirado. Uma licença em cache é retornada quando uma licença ativa para o produto já está disponível no dispositivo ou quando essa API é chamada offline. Se uma licença em cache for retornada, ela poderá não ser válida para o jogador atual.
  • Sempre chame XStoreIsLicenseValid para verificar se a licença é válida antes de desbloquear conteúdo no jogo.
  • Se você adquirir uma licença válida, use XStoreRegisterPackageLicenseLost para escutar eventos de perda de licença. Se uma licença for perdida, tente readquiri-la. Se a licença não puder ser readquirida, decida quando ou se deve bloquear o acesso do jogador ao conteúdo (dependendo do design do jogo).
  • Depois de tratar um evento de perda de licença, chame XStoreUnregisterPackageLicenseLost e libere o identificador de licença antigo chamando XStoreCloseLicenseHandle.
Para obter um exemplo de como usar XStoreAcquireLicenseForDurablesAsync, confira Como usar um durável sem pacote. Um durável com pacote (DLC) pode ser incluído como parte de um pacote de jogo em disco. O usuário deve inserir o disco e instalar a DLC antes que o jogo possa adquirir uma licença. Se a DLC estiver incluída no disco ou se o jogo estiver usando APIs XPackage para enumerar pacotes instalados, recomendamos usar a variante *ForPackage de cada API de licenciamento: XStoreCanAcquireLicenseForPackageAsync / Result e XStoreAcquireLicenseForPackageAsync / Result. Para obter um exemplo de como enumerar pacotes instalados e licenciar DLC, confira Gerenciar e licenciar conteúdo para download (DLC).

Uso de licenças em um serviço de jogo

As licenças são vinculadas ao dispositivo e não podem ser consultadas a partir de um serviço de jogo. No entanto, o cliente pode chamar XStoreQueryLicenseTokenAsync / Result para fornecer validação adicional usando um serviço de jogo. Para obter mais informações, confira Usando License Tokens.

Considerações sobre licenciamento

  • Pode haver um atraso entre a conclusão de uma compra e o momento em que uma nova licença pode ser adquirida. Verifique alterações nos direitos de um usuário e adquira uma licença depois que um novo direito for adicionado para um produto durável.
  • Licenças de teste são concedidas automaticamente para duráveis com pacotes ao implantar pacotes carregados por sideload. Para testar cenários de licenciamento para duráveis com pacotes, use substituições de licença ou pacotes instalados pela loja. Para obter mais informações, confira Habilitar testes de licença.
  • Quando um jogo adquire uma licença de durável, a licença é armazenada em cache no dispositivo. As licenças são obtidas do cache até que o sistema dispare uma atualização de licença (não há API que possa forçar uma atualização). Chamadas repetidas a XStoreAcquireLicense* verificam o cache do dispositivo e não o serviço.
  • Os retornos de chamada de perda de licença podem ajudar a detectar se o sistema retorna erroneamente ao jogador atual uma licença em cache que pertence a outra conta. Nesses casos, um evento de perda de licença é disparado imediatamente e, se XStoreAcquireLicense* for chamado novamente, uma licença nova será fornecida.
  • O compartilhamento e o cache de licenças podem deixar as máquinas de teste em um estado não limpo. Para obter mais informações, confira Solução de problemas de desenvolvimento do XStore.

Recursos de exemplo

Para obter código de exemplo que demonstra como consultar os direitos do jogador e adquirir licenças de duráveis, confira os seguintes recursos:
  • InGameStore Sample (GitHub): exemplo em C++ que demonstra a funcionalidade do XStore, incluindo recuperação de produtos, compra, direitos e licenciamento de duráveis.
  • DownloadableContent Sample (GitHub): exemplo em C++ que demonstra a funcionalidade do XStore e do XPackage, incluindo a enumeração e o licenciamento de duráveis com pacote.
  • UnityInGameStore Sample (GitHub): exemplo em C# que demonstra a funcionalidade do XStore usando o mecanismo de jogo Unity e o ‘Microsoft GDK API package.

Documentação de referência da API

Confira também

Visão geral do Commerce
Referência da API XStore
Last modified on October 6, 2026