XStoreContext des titres PC en production est lié au compte Microsoft (MSA) actuellement connecté à l’application Microsoft Store. Par conséquent, tous les résultats des API XStore sont limités à ce compte Microsoft spécifique. Ce compte peut se déconnecter ou être remplacé par un autre compte à tout moment, sans préavis. En outre, le compte Microsoft Store peut être changé depuis l’application XBOX en fonction des paramètres de l’utilisateur.
De même, le compte XBOX services peut être changé via le flux de connexion dans le jeu, créant ainsi une non-concordance de compte entre les applications XBOX et Microsoft Store. Cette non-concordance peut être intentionnelle dans les scénarios de PC familiaux ou partagés.
Ne pas gérer les scénarios de comptes changés ou non concordants entre le compte qui joue au jeu et le compte connecté au Microsoft Store peut frustrer les utilisateurs. Par exemple, des utilisateurs qui ne reçoivent pas les éléments du jeu après avoir effectué un achat.
L’article suivant décrit comment anticiper, gérer et atténuer une non-concordance de comptes sur PC.
Les scénarios décrits ne posent pas de problème sur la console XBOX.
XStoreContext est toujours lié au compte XUser à partir duquel vous avez créé le contexte. Par conséquent, les API et transactions XStore sont toujours liées à l’objet XUser actif dans votre jeu.
Les tests dans un sandbox de développement nécessitent que les comptes XBOX et Windows Store soient synchronisés. Étant donné que le compte Microsoft Store n’est pas utilisé lors de l’exécution dans un sandbox, les scénarios de comptes non concordants ne peuvent être testés que dans l’environnement de production / RETAIL. Pour plus d’informations, consultez Test des scénarios de comptes non concordants.
Conseils généraux
Les jeux qui ne prennent pas en charge XBOX services (c’est-à-dire qui n’utilisent pas un compte XBOX services pour représenter l’utilisateur qui joue) doivent prévoir et comprendre que le compte d’achat (le MSA connecté au Microsoft Store) peut changer à tout moment. Par conséquent, lorsque des produits consommables sont achetés dans le jeu, celui-ci doit immédiatement démarrer le flux commercial pour interroger les consommables achetés et traiter (consommer) l’élément. Ensuite, le jeu ou un service du titre met à jour et suit le solde du consommable pour cet utilisateur. Cela ressemble aux scénarios commerciaux des jeux mobiles, où le compte principal de l’appareil est celui qui paie, mais où le compte de jeu, quel qu’il soit, reçoit le crédit de l’achat dans le jeu. Pour plus de conseils, consultez Gestion des produits consommables depuis votre service. Les jeux qui prennent en charge XBOX services doivent décider tôt dans la conception s’ils prennent en charge ou non les scénarios de comptes (MSA) non concordants. Si votre service ne prend pas en charge les comptes non concordants, vous devez obliger l’utilisateur à synchroniser les comptes pour activer les achats dans le jeu et l’utilisation du contenu. Les données remontées par Windows indiquent que 10 à 15 % des utilisateurs de XBOX services ont, dans une session Windows, un MSA connecté à l’application Microsoft Store différent de celui de XBOX services. Par conséquent, nous recommandons de prendre en charge le scénario de comptes non concordants pour ce groupe d’utilisateurs. Toutefois, si le système commercial du jeu repose sur l’hypothèse que le compte XBOX services est également le compte d’achat, il existe des étapes pour vérifier que les comptes MSA sont synchronisés entre XBOX services et le Microsoft Store. Un jeu prenant en charge à la fois la version console XBOX et la version PC Windows avec les mêmes services de jeu est un exemple de jeu qui voudrait s’assurer que les comptes sont synchronisés. De même, un jeu initialement sorti sur XBOX puis porté sur PC peut avoir été conçu en partant du principe que le compte de jeu et l’identité commerciale sont identiques. Les implications et problèmes spécifiques liés à la gestion des comptes non concordants dans votre jeu compatible XBOX services sont décrits dans les sections suivantes.Exemple de scénario
Votre compte Microsoft (MSA) est connecté au PC Windows ainsi qu’à l’application Microsoft Store. Vous achetez un jeu compatible XBOX services via le Microsoft Store (ou le téléchargez via PC Game Pass) et installez le jeu. Au lancement du jeu, vous sélectionnez votre compte XBOX services, qui utilise les mêmes informations d’identification (MSA) que le compte connecté au Microsoft Store. Lorsque vous achetez un consommable dans le jeu, votre compte est débité et crédité de la quantité de consommable attendue dans les services du Microsoft Store. Le jeu ou ses services back-end interrogent vos droits, voient le consommable, le traitent et accordent le produit ou la valeur à votre compte dans le jeu. Plus tard, votre enfant souhaite également jouer au jeu et se connecte à XBOX services dans le jeu avec son propre compte Microsoft. L’application Microsoft Store a toujours votre compte Microsoft connecté. L’enfant lance dans le jeu un achat du même consommable que celui que vous avez acheté précédemment. Là encore, votre compte Microsoft est débité et crédité dans le Microsoft Store. Le jeu ou les services back-end interrogent les nouveaux droits en fonction duXStoreContext et voient le consommable dans les résultats du Store de votre compte. Le jeu ou le service back-end traite le consommable et accorde le produit au joueur actif, qui est dans ce cas le compte de votre enfant.
Le résultat final est que votre compte est débité, mais que le jeu attribue le produit ou la valeur dans le jeu au compte de votre enfant plutôt qu’au vôtre.
Problèmes de serveur à serveur avec les X-Tokens
Les titres qui utilisent XBOX services peuvent utiliser des X-Tokens pour effectuer, depuis leurs services back-end, des appels au nom de l’utilisateur qui joue au jeu. Notamment pour interroger les produits que possède l’utilisateur et pour suivre les bonnes pratiques d’implémentation d’un système commercial de consommables dans votre jeu. Cependant, les X-Tokens d’authentification déléguée sont liés au compte utilisateur XBOX services qui joue au jeu. Par conséquent, l’utilisation de X-Tokens pour les appels de serveur à serveur aux API du Microsoft Store ne permet pas de gérer le scénario de comptes non concordants décrit précédemment. Les résultats de la requête ne renvoient que les achats effectués par le MSA du compte XBOX services lorsqu’il est connecté au Microsoft Store.Authentification de serveur à serveur avec les User Store ID
Pour gérer les scénarios de comptes non concordants, les appels de service à service aux API du Microsoft Store doivent utiliser le User Store ID pour l’authentification. Un User Store ID est un jeton sécurisé obtenu à partir du client, qui représente l’identité du compte connecté au Microsoft Store à ce moment-là. Le User Store ID est ensuite utilisé dans le flux d’authentification auprès des API du Microsoft Store au nom de l’utilisateur représenté dans le User Store ID. Pour plus d’informations, consultez Authentification avec Microsoft Entra ID et les User Store IDRecommandations lorsque des comptes synchronisés sont requis pour le commerce dans le jeu
Bien que nous recommandions que les titres compatibles XBOX services prennent en charge les scénarios de comptes non concordants, ce n’est pas obligatoire. Le titre en cours d’exécution peut effectuer une vérification pour savoir si le compte XBOX services qui joue au jeu correspond au MSA connecté au Microsoft Store, ce qui permet au titre de bloquer les transactions et achats dans le jeu lorsqu’ils ne sont pas identiques. Les services du jeu ne peuvent alors agir que sur les éléments que possède directement le compte XBOX services, et ne consommer que ceux-ci, via les appels de service à service. Les jeux peuvent vérifier si les comptes ne concordent pas à l’aide de la fonction XUserIsStoreUser. Si vous choisissez d’exiger que l’utilisateur synchronise les comptes connectés à XBOX services et au Microsoft Store, votre titre doit fournir une interface utilisateur et des conseils permettant à l’utilisateur de comprendre quand ses comptes ne sont pas identiques et comment résoudre le problème. Éléments d’interface utilisateur recommandés :- Informez l’utilisateur, dès le début de l’interface du jeu, que le compte connecté au Microsoft Store est différent du compte XBOX services qui joue au jeu.
- Expliquez que les extensions ou le contenu achetés pour le jeu ne fonctionneront pas tant que le compte connecté au Microsoft Store n’est pas le même que son compte XBOX services.
- Indiquez que la boutique du jeu n’autorisera pas d’achats tant que les comptes ne sont pas identiques.
- Indiquez à l’utilisateur d’accéder à l’application Microsoft Store et de se connecter avec le même compte que celui utilisé pour XBOX services.
- Indiquez à l’utilisateur d’accéder à l’application XBOX et de définir la préférence permettant de connecter automatiquement son compte XBOX services au Microsoft Store.
