Skip to main content
De nombreux titres offrent du contenu de modules complémentaires à l’achat dans le Microsoft Store et dans une boutique intégrée au jeu. Les droits d’utilisation et les licences sont deux systèmes qui permettent de déterminer si un joueur doit obtenir l’accès au contenu d’un module complémentaire dans un jeu. L’approche à utiliser dépend du type de contenu (comme un produit durable, un consommable ou un ensemble) et de la conception du jeu. Vous pouvez gérer les droits d’utilisation des consommables à partir d’un service, acquérir des licences de produits durables au moyen du client ou utiliser une combinaison des droits d’utilisation et des licences pour contrôler l’accès au contenu dans votre jeu.

Droits d’utilisation

Un droit d’utilisation représente le droit du client d’accéder à un produit numérique et de l’utiliser, notamment des jeux, des abonnements et des modules complémentaires. Chaque achat ou échange effectué dans le Microsoft Store génère un ou plusieurs droits d’utilisation suivis par le service de collections de Microsoft. Pour plus d’informations sur les types de produits qui fonctionnent avec les droits d’utilisation, consultez Choisir le bon type de produit. Les droits d’utilisation d’un produit peuvent être accordés par l’achat direct du produit par le joueur, par l’achat d’un produit qui le satisfait (comme un ensemble ou un abonnement) ou par un droit d’utilisation partagé par un autre utilisateur. Les droits d’utilisation prennent en charge plusieurs états : actif, inactif, expiré et révoqué. Les clients et les services de jeu peuvent interroger les droits d’utilisation d’un joueur, mais les résultats peuvent différer :
  • Les API clientes peuvent uniquement retourner les droits d’utilisation à l’état actif, mais elles peuvent retourner tous les types de droits d’utilisation (directs, partagés, satisfaisants). Toutefois, le type d’un droit d’utilisation est invisible pour le client.
  • Les API de service peuvent retourner des droits d’utilisation dans n’importe quel état, mais elles ne peuvent pas retourner les droits d’utilisation partagés, car elles n’ont pas le contexte de l’appareil. Elles peuvent toutefois distinguer les droits d’utilisation directs des droits d’utilisation satisfaisants.

Partage des droits d’utilisation et disponibilité hors connexion

  • Lorsque le compte propriétaire du produit désigne l’appareil actuel comme son appareil hors connexion (au moyen de XBOX principale sur console ou des autorisations hors connexion sur PC), il partage ses droits d’utilisation non consommables avec les autres comptes de l’appareil.
  • Les droits d’utilisation de consommables sont des droits d’utilisation directs liés au compte acheteur et ne peuvent pas être partagés avec d’autres comptes de l’appareil.
  • Toutes les requêtes de droits d’utilisation nécessitent une connexion en ligne. N’utilisez pas les droits d’utilisation pour déterminer les droits d’accès d’un joueur hors connexion. Utilisez plutôt les licences.

Utilisation des droits d’utilisation pour un client de jeu

Chaque fois que le client envoie une requête de catalogue, il envoie un appel correspondant au service de collections pour remplir la propriété IsInUserCollection de chaque XStoreProduct retourné. Si IsInUserCollection a la valeur true, cela indique que le joueur a le droit d’utiliser le produit. Utilisez cette valeur pour décider quels produits apparaissent comme achetables ou comme déjà « possédés » par le joueur dans votre boutique intégrée au jeu. Vous pouvez récupérer les détails XStoreProduct du contenu des modules complémentaires au moyen des méthodes suivantes :
  • XStoreQueryAssociatedProductsAsync / Result : retourne uniquement les produits achetables. Le résultat n’inclut pas les produits masqués, offerts seulement dans un ensemble ou qui ne sont plus achetables dans le Microsoft Store.
  • XStoreQueryProductsAsync / Result : sert à interroger des produits précis. Utilisez cette fonction pour vérifier les changements de droits d’utilisation d’un seul produit ou d’un sous-ensemble de produits.
Pour interroger le service de collections sur tous les droits d’utilisation actifs, y compris les produits masqués ou qui ne sont plus achetables dans le Microsoft Store, appelez : Nous recommandons de vérifier les changements de droits d’utilisation lorsque le jeu reprend le focus (PC) ou revient d’un état restreint (console), car le joueur peut acquérir du nouveau contenu pendant qu’il est hors du jeu. Si le contenu des modules complémentaires peut être acheté dans des boutiques externes (Microsoft Store, application XBOX, xbox.com), un achat peut se produire à tout moment sur un autre appareil sans que le client le détecte. Vérifiez les nouveaux droits d’utilisation à des moments stratégiques du jeu, par exemple lorsque le joueur consulte un menu de boutique ou d’inventaire. Votre titre peut aussi interroger périodiquement les mises à jour afin de réduire le délai entre l’achat d’un produit par le joueur et la disponibilité du contenu dans le jeu. Pour plus d’informations sur l’interrogation des produits et des droits d’utilisation à partir du client, consultez Opérations de base du Store.

Utilisation des droits d’utilisation pour un service de jeu

Des options plus avancées d’interrogation et de gestion des droits d’utilisation sont offertes lorsque vous utilisez un service de jeu. Voici un petit aperçu de ce qui est possible : Pour plus d’informations sur les offres de service à service, consultez Gérer les produits à partir de votre service.

Considérations relatives aux droits d’utilisation

  • Lorsque vous travaillez dans un sandbox de développement sur PC, le client effectue toutes les requêtes de droits d’utilisation au nom du compte connecté à l’application XBOX.
  • Lorsque vous travaillez dans RETAIL sur PC, le client effectue toutes les requêtes de droits d’utilisation au nom du compte connecté au Microsoft Store. Des scénarios de comptes non concordants peuvent se produire lorsque le compte connecté au jeu ne correspond pas au compte connecté au Microsoft Store (consultez Gestion des comptes du Store non concordants pour plus de détails).
Pour résoudre les problèmes courants liés aux droits d’utilisation, consultez Dépannage du développement XStore.

Licences

Une licence est une clé numérique qui confirme le droit de l’utilisateur d’accéder au contenu sur l’appareil. L’utilisateur doit avoir le droit d’utiliser le produit ou insérer un disque qui contient le produit (jeux et produits durables avec package) avant qu’une licence puisse être acquise. Lorsque vous travaillez avec un produit durable (avec ou sans package), utilisez les licences pour répondre aux attentes en matière de partage, de simultanéité et de disponibilité hors connexion (consultez le modèle de partage de produits pour les jeux). Les licences sont soumises à des limites d’appareils et à des vérifications de simultanéité qui dépendent du modèle de licence utilisé par le jeu (consultez Licences ouvertes et restrictives. Même si un joueur dispose d’un droit d’utilisation actif pour le produit, il peut ne pas réussir à acquérir une licence valide pour l’utiliser sur l’appareil.

Partage des licences et disponibilité hors connexion

Le partage des licences se produit sur l’appareil lorsqu’une ou plusieurs de ces conditions sont remplies :
  • Le jeu a acquis une licence pendant que le compte d’un propriétaire était connecté et qu’une connexion en ligne était établie.
  • Le jeu a acquis une licence hors connexion pour le compte du propriétaire en tant qu’appareil hors connexion (XBOX principale sur console ou autorisations hors connexion sur PC). Dans ce scénario, le compte propriétaire n’a pas besoin d’être connecté à l’appareil pour partager ses licences avec les autres comptes.
  • Le joueur insère un disque qui contient le DLC (produit durable avec package) et le DLC est installé sur l’appareil.
Les licences sont disponibles hors connexion lorsqu’une ou plusieurs de ces conditions sont remplies :
  • Le compte propriétaire du produit désigne l’appareil actuel comme son appareil « hors connexion » (au moyen de XBOX principale sur console ou des autorisations hors connexion sur PC). Une fois la désignation hors connexion activée, le jeu doit acquérir une licence pour le produit durable pendant qu’il est en ligne. Au prochain lancement du jeu, celui-ci acquiert la licence utilisable hors connexion.
  • Le joueur insère un disque qui contient le DLC (produit durable avec package) et le DLC est installé sur l’appareil.

Utilisation des licences pour un client de jeu

Vous pouvez obtenir la licence d’un produit durable (avec ou sans package) en utilisant le flux suivant :
  • XStoreCanAcquireLicenseForStoreIdAsync / Result donne un aperçu d’une licence sans déclencher de vérification de simultanéité. Si XStoreCanLicenseStatus a la valeur Licensable, le jeu peut tenter d’acquérir une licence de produit durable. Cette vérification préalable nécessite une connexion en ligne.
  • XStoreAcquireLicenseForDurablesAsync / Result appelle le service de licences pour acquérir une licence s’il n’y a aucune licence sur l’appareil ou si la licence actuelle est expirée. Une licence mise en cache est retournée lorsqu’une licence active pour le produit est déjà disponible sur l’appareil ou lorsque cette API est appelée hors connexion. Si une licence mise en cache est retournée, elle peut ne pas être valide pour le joueur actuel.
  • Appelez toujours XStoreIsLicenseValid pour vérifier si la licence est valide avant de déverrouiller du contenu dans le jeu.
  • Si vous acquérez une licence valide, utilisez XStoreRegisterPackageLicenseLost pour être à l’écoute des événements de perte de licence. Si une licence est perdue, tentez de l’acquérir de nouveau. Si la licence ne peut pas être acquise de nouveau, décidez quand ou si vous bloquez l’accès du joueur au contenu (selon la conception du jeu).
  • Après avoir traité un événement de perte de licence, appelez XStoreUnregisterPackageLicenseLost et libérez l’ancien handle de licence en appelant XStoreCloseLicenseHandle.
Pour un exemple d’utilisation de XStoreAcquireLicenseForDurablesAsync, consultez Comment utiliser un produit durable sans package. Un produit durable avec package (DLC) peut être inclus dans un ensemble de jeu sur disque. L’utilisateur doit insérer le disque et installer le DLC avant que le jeu puisse acquérir une licence. Si le DLC est inclus sur le disque ou si le jeu utilise les API XPackage pour énumérer les packages installés, nous recommandons d’utiliser la variante *ForPackage de chaque API de licence : XStoreCanAcquireLicenseForPackageAsync / Result et XStoreAcquireLicenseForPackageAsync / Result. Pour un exemple d’énumération des packages installés et d’obtention de licences de DLC, consultez Gérer le contenu téléchargeable (DLC) et ses licences.

Utilisation des licences pour un service de jeu

Les licences sont liées à l’appareil et ne peuvent pas être interrogées à partir d’un service de jeu. Toutefois, le client peut appeler XStoreQueryLicenseTokenAsync / Result pour fournir une validation supplémentaire au moyen d’un service de jeu. Pour plus d’informations, consultez Utilisation des jetons de licence.

Considérations relatives aux licences

  • Il peut y avoir un délai entre le moment où un achat est effectué et celui où une nouvelle licence peut être acquise. Vérifiez les changements apportés aux droits d’utilisation d’un utilisateur et acquérez une licence après l’ajout d’un nouveau droit d’utilisation pour un produit durable.
  • Des licences de test sont automatiquement accordées pour les produits durables avec package lors du déploiement de packages chargés indépendamment. Pour tester les scénarios de licence des produits durables avec package, utilisez plutôt des substitutions de licence ou des packages installés à partir du Store. Pour plus d’informations, consultez Activation des tests de licence.
  • Lorsqu’un jeu acquiert la licence d’un produit durable, la licence est mise en cache sur l’appareil. Les licences sont extraites du cache jusqu’à ce que le système déclenche une actualisation des licences (aucune API ne permet de forcer une actualisation). Les appels répétés à XStoreAcquireLicense* vérifient le cache de l’appareil et non le service.
  • Les rappels de perte de licence peuvent aider à détecter si le système retourne par erreur au joueur actuel une licence mise en cache qui appartient à un autre compte. Dans ce cas, un événement de perte de licence se déclenche immédiatement et, si XStoreAcquireLicense* est appelé de nouveau, une nouvelle licence est fournie.
  • Le partage et la mise en cache des licences peuvent laisser les machines de test dans un état non propre. Pour plus d’informations, consultez Dépannage du développement XStore.

Exemples de ressources

Pour des exemples de code qui montrent comment interroger les droits d’utilisation des joueurs et acquérir des licences de produits durables, consultez les ressources suivantes :
  • Exemple InGameStore (GitHub) : exemple C++ illustrant les fonctionnalités XStore, notamment la récupération de produits, l’achat, les droits d’utilisation et les licences de produits durables.
  • Exemple DownloadableContent (GitHub) : exemple C++ illustrant les fonctionnalités XStore et XPackage, notamment l’énumération et l’obtention de licences de produits durables avec package.
  • Exemple UnityInGameStore (GitHub) : exemple C# illustrant les fonctionnalités XStore à l’aide du moteur de jeu Unity et du package d’API Microsoft GDK.

Documentation de référence de l’API

Voir aussi

Vue d’ensemble du commerce
Référence de l’API XStore
Last modified on October 6, 2026