XStoreContext em títulos para PC em produção está vinculado à conta Microsoft (MSA) atualmente conectada ao aplicativo Microsoft Store. Portanto, todos os resultados da API XStore têm como escopo essa conta Microsoft específica. Essa conta pode sair ou ser trocada por outra conta a qualquer momento, sem aviso. Além disso, a conta da Microsoft Store pode ser trocada pelo aplicativo XBOX, com base nas configurações do usuário.
Da mesma forma, a conta dos XBOX services pode ser trocada com o fluxo de entrada no jogo, criando uma incompatibilidade de contas entre os aplicativos XBOX e Microsoft Store. O status de contas incompatíveis pode ser intencional em cenários de família ou de PC compartilhado.
Não lidar com cenários de contas trocadas ou incompatíveis entre a conta que está jogando e a conta conectada à Microsoft Store pode causar frustração ao usuário. Por exemplo, usuários que não recebem itens no jogo depois de fazer uma compra.
O artigo a seguir descreve como planejar, lidar e mitigar quando há uma incompatibilidade de contas no PC.
Os cenários descritos não são um problema no console XBOX.
XStoreContext está sempre vinculado à conta XUser a partir da qual você criou o contexto. Portanto, as APIs e transações da XStore estão sempre vinculadas ao objeto XUser ativo no seu jogo.
Testar em uma área restrita de desenvolvedor exige que as contas do XBOX e da Windows Store estejam sincronizadas. Como a conta da Microsoft Store não é usada durante a execução na área restrita, os cenários de contas incompatíveis só podem ser testados no ambiente de produção / RETAIL. Para obter mais informações, consulte Testar cenários de contas incompatíveis.
Diretrizes gerais
Jogos que não são habilitados para XBOX services (ou seja, que não usam uma conta dos XBOX services para representar o usuário que está jogando) devem planejar e entender que a conta de compra (MSA conectada à Microsoft Store) pode mudar a qualquer momento. Portanto, quando produtos consumíveis são comprados no jogo, o jogo deve iniciar imediatamente o fluxo de comércio para consultar os consumíveis comprados e atender (consumir) o item. Em seguida, o jogo ou um serviço do título atualiza e acompanha o saldo do consumível para esse usuário. Isso é semelhante a cenários de comércio de jogos para dispositivos móveis, em que a conta principal do dispositivo é a que paga, mas a conta do jogo, seja ela qual for, recebe o crédito da compra no jogo. Para obter mais diretrizes, consulte Gerenciar produtos consumíveis a partir do seu serviço. Jogos compatíveis com XBOX services devem decidir no início do design se darão suporte ou não aos cenários de contas (MSA) incompatíveis. Se o seu serviço não der suporte a contas incompatíveis, você deverá forçar o usuário a sincronizar as contas para habilitar a compra e o uso de conteúdo no jogo. Dados relatados pelo Windows indicam que de 10% a 15% dos usuários dos XBOX services têm uma MSA diferente conectada ao aplicativo Microsoft Store em relação aos XBOX services em uma sessão do Windows. Portanto, recomendamos dar suporte ao cenário de contas incompatíveis para esse grupo de usuários. No entanto, se o sistema de comércio do jogo for construído com base na suposição de que a conta dos XBOX services também é a conta de compra, há etapas para verificar se as contas MSA estão sincronizadas entre os XBOX services e a Microsoft Store. Um exemplo de jogo que desejaria garantir que as contas estejam sincronizadas é um jogo que dá suporte às versões para console XBOX e PC com Windows usando os mesmos serviços de jogo. Da mesma forma, um jogo originalmente lançado no XBOX e portado para o PC pode ter sido projetado com base na conta que joga e na identidade de comércio serem a mesma. As implicações e os problemas específicos relacionados ao tratamento de contas incompatíveis no seu jogo habilitado para XBOX services são descritos nas seções a seguir.Cenário de exemplo
Sua conta Microsoft (MSA) está conectada ao PC com Windows e também ao aplicativo Microsoft Store. Você compra um jogo habilitado para XBOX services na Microsoft Store (ou baixa pelo PC Game Pass) e instala o jogo. Ao iniciar o jogo, você seleciona sua conta dos XBOX services, que tem as mesmas credenciais (MSA) da conta conectada à Microsoft Store. Quando você compra um consumível no jogo, sua conta é cobrada e recebe o crédito da quantidade esperada do consumível nos serviços da Microsoft Store. O jogo ou os serviços de back-end do jogo consultam seus direitos, veem o consumível, atendem o consumível e concedem o produto ou valor à sua conta no jogo. Mais tarde, seu filho também quer jogar e entra nos XBOX services no jogo com a própria conta Microsoft. O aplicativo Microsoft Store ainda está com a sua conta Microsoft conectada. A criança inicia uma compra no jogo do mesmo consumível que você comprou anteriormente. Novamente, sua conta Microsoft é cobrada e recebe o crédito na Microsoft Store. O jogo ou os serviços de back-end consultam novos direitos com base noXStoreContext e veem o consumível nos resultados da loja da sua conta. O jogo ou serviço de back-end atende o consumível e concede o produto ao jogador ativo, que, nesse caso, agora é a conta do seu filho.
O resultado final é que sua conta é cobrada, mas o jogo concede o produto ou valor no jogo à conta do seu filho em vez da sua conta.
Problemas de servidor para servidor com X-Tokens
Títulos que usam XBOX services têm acesso ao uso de X-Tokens para fazer chamadas em nome do usuário que está jogando a partir de seus serviços de back-end. Em especial, para consultar os produtos que o usuário possui e seguir as práticas recomendadas para implementar um sistema de comércio de consumíveis no seu jogo. No entanto, os X-Tokens de autenticação delegada estão vinculados à conta de usuário dos XBOX services que está jogando. Portanto, o uso de X-Tokens em chamadas de servidor para servidor às APIs da Microsoft Store não consegue lidar com o cenário de contas incompatíveis descrito anteriormente. Os resultados da consulta retornam apenas o que a MSA da conta dos XBOX services compra quando conectada à Microsoft Store.Autenticação de servidor para servidor com IDs de usuário da Store
Para lidar com os cenários de contas incompatíveis, as chamadas de serviço para serviço às APIs da Microsoft Store devem usar o ID de usuário da Store para autenticação. Um ID de usuário da Store é um token seguro obtido do cliente, de modo que represente a identidade da conta conectada à Microsoft Store naquele momento. O ID de usuário da Store é então usado no fluxo de autenticação para as APIs da Microsoft Store em nome do usuário representado no ID de usuário da Store. Para obter mais informações, consulte Autenticar com o Microsoft Entra ID e IDs de usuário da StoreRecomendações ao exigir contas sincronizadas para comércio no jogo
Embora seja recomendado que títulos habilitados para XBOX services deem suporte aos cenários de contas incompatíveis, isso não é obrigatório. O título em execução pode fazer uma verificação de validação para saber se a conta dos XBOX services que está jogando corresponde à mesma MSA conectada à Microsoft Store, permitindo que o título bloqueie transações e compras no jogo quando elas não forem iguais. Isso permite que os serviços do jogo atuem e consumam apenas itens, por meio das chamadas de serviço para serviço, que a conta dos XBOX services possui diretamente. Os jogos podem verificar se as contas são incompatíveis usando a função XUserIsStoreUser. Se você optar por exigir que o usuário sincronize as contas conectadas aos XBOX services e à Microsoft Store, seu título deverá fornecer interface do usuário e orientações para que o usuário entenda quando suas contas não são iguais e como resolver o problema. Elementos de interface do usuário recomendados:- Notifique o usuário no início da interface do jogo de que a conta conectada à Microsoft Store é diferente da conta dos XBOX services que está jogando.
- Explique que complementos ou conteúdos comprados para o jogo não funcionarão, a menos que a conta conectada à Microsoft Store seja a mesma da conta dos XBOX services.
- Informe que a loja no jogo não permitirá compras, a menos que as contas sejam as mesmas.
- Oriente o usuário a acessar o aplicativo Microsoft Store e entrar com a mesma conta usada nos XBOX services.
- Oriente o usuário a acessar o aplicativo XBOX e definir a preferência para conectar automaticamente a conta dos XBOX services à Microsoft Store.
