Droits d’utilisation
Un droit d’utilisation représente le droit du client à accéder à un produit numérique et à l’utiliser, notamment les jeux, les abonnements et les modules complémentaires. Chaque achat ou échange effectué dans le Microsoft Store donne lieu à 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 un joueur, par l’achat d’un produit satisfaisant (comme une offre groupée 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 services de jeu peuvent interroger les droits d’utilisation d’un joueur, mais les résultats peuvent différer :- Les API clientes ne peuvent renvoyer que les droits d’utilisation à l’état actif, mais elles peuvent renvoyer tous les types de droits d’utilisation (direct, partagé, satisfaisant). Toutefois, le type d’un droit d’utilisation n’est pas visible pour le client.
- Les API de service peuvent renvoyer des droits d’utilisation dans n’importe quel état, mais elles ne peuvent pas renvoyer les droits d’utilisation partagés, car elles ne disposent pas du contexte de l’appareil. Elles peuvent toutefois faire la distinction entre les droits d’utilisation directs et 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 (à l’aide de Home XBOX 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 des consommables sont des droits d’utilisation directs liés au compte acheteur et ne peuvent pas être partagés avec les 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 renseigner la propriétéIsInUserCollection de chaque XStoreProduct renvoyé. 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 disponibles à l’achat ou 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 à l’aide des méthodes suivantes :
- XStoreQueryAssociatedProductsAsync / Result : renvoie uniquement les produits disponibles à l’achat. Le résultat n’inclut pas les produits masqués, disponibles uniquement dans une offre groupée ou qui ne sont plus disponibles à l’achat dans le Microsoft Store.
- XStoreQueryProductsAsync / Result : sert à interroger des produits spécifiques. Utilisez cette fonction pour vérifier les modifications de droits d’utilisation pour un seul produit ou un sous-ensemble de produits.
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 disponibles lorsque vous utilisez un service de jeu. Voici un petit aperçu des possibilités :- Interroger les droits d’utilisation d’un utilisateur sur l’ensemble du catalogue de l’éditeur.
- Faire la distinction entre les droits d’utilisation directs et satisfaisants pour mieux comprendre comment les joueurs acquièrent du contenu.
- Interroger les droits d’utilisation inactifs dont la date de début est future afin de détecter les achats encore à l’état de précommande.
- Gérer un écosystème de consommables robuste et multiplateforme (consultez Écosystèmes basés sur les consommables).
- Détecter le remboursement de produits à l’aide du service Clawback (consultez Gestion des remboursements et des rétrofacturations depuis votre service).
- Détecter l’état de l’abonnement XBOX Game Pass pour attribuer des avantages aux abonnés dans votre jeu (consultez Détection de l’accès à l’abonnement XBOX Game Pass depuis 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 pour le compte connecté à l’application XBOX.
- Lorsque vous travaillez dans RETAIL sur PC, le client effectue toutes les requêtes de droits d’utilisation pour le compte connecté au Microsoft Store. Des scénarios de non-concordance de comptes peuvent se produire lorsque le compte connecté au jeu ne correspond pas au compte connecté au Microsoft Store (consultez Gestion des comptes Store non concordants pour plus de détails).
Licences
Une licence est une clé numérique qui confirme le droit de l’utilisateur à accéder au contenu sur l’appareil. L’utilisateur doit avoir le droit d’utiliser le produit ou insérer un disque qui inclut le produit (jeux et biens durables avec packages) avant qu’une licence puisse être acquise. Lorsque vous travaillez avec un bien 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 limitations 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 parvenir à acquérir une licence valide pour une utilisation 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 alors que le compte d’un propriétaire est connecté et qu’une connexion en ligne est établie.
- Le jeu a acquis une licence hors connexion pour le compte du propriétaire en tant qu’appareil hors connexion (Home XBOX 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 inclut le DLC (bien durable avec package) et le DLC est installé sur l’appareil.
- Le compte propriétaire du produit désigne l’appareil actuel comme son appareil « hors connexion » (à l’aide de Home XBOX 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 en étant en ligne. Au prochain lancement du jeu, celui-ci acquiert la licence utilisable hors connexion.
- Le joueur insère un disque qui inclut le DLC (bien durable avec package) et le DLC est installé sur l’appareil.
Utilisation des licences pour un client de jeu
Vous pouvez accorder une licence pour un bien durable (avec ou sans package) à l’aide du flux suivant :- XStoreCanAcquireLicenseForStoreIdAsync / Result prévisualise 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 bien 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 pas de licence sur l’appareil ou si la licence actuelle a expiré. Une licence mise en cache est renvoyé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 renvoyé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 écouter les événements de perte de licence. Si une licence est perdue, tentez de la réacquérir. Si la licence ne peut pas être réacquise, décidez quand bloquer l’accès du joueur au contenu, ou s’il faut le faire (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.
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 à l’aide 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 la finalisation d’un achat et le moment où une nouvelle licence peut être acquise. Vérifiez les modifications des 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 biens durables avec packages lors du déploiement de packages chargés indépendamment. Pour tester les scénarios de licence des biens durables avec packages, utilisez plutôt des remplacements de licence ou des packages installés depuis le Store. Pour plus d’informations, consultez Activation des tests de licence.
- Lorsqu’un jeu acquiert une licence de bien 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 renvoie 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 Résolution des problèmes de développement XStore.
Exemples de ressources
Pour obtenir des exemples de code qui montrent comment interroger les droits d’utilisation des joueurs et acquérir des licences de biens 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 l’octroi de licences pour les biens durables.
- Exemple DownloadableContent (GitHub) : exemple C++ illustrant les fonctionnalités XStore et XPackage, notamment l’énumération et l’octroi de licences pour les biens durables avec package.
- Exemple UnityInGameStore (GitHub) : exemple C# illustrant les fonctionnalités XStore à l’aide du moteur de jeu Unity et du package ‘Microsoft GDK API.
Documentation de référence de l’API
- XStore (contenu de l’API)
- Fonctions
- XStoreQueryAssociatedProductsAsync
- Result
- XStoreQueryProductsAsync
- Result
- XStoreQueryEntitledProductsAsync
- Result
- XStoreCanAcquireLicenseForStoreIdAsync
- Result
- XStoreAcquireLicenseForDurablesAsync
- Result
- XStoreIsLicenseValid
- XStoreRegisterPackageLicenseLost
- XStoreUnregisterPackageLicenseLost
- XStoreCloseLicenseHandle
- XStoreCanAcquireLicenseForPackageAsync
- Result
- XStoreAcquireLicenseForPackageAsync
- Result
- XStoreQueryLicenseTokenAsync
- Result
- Structures
- Fonctions
- XPackage (contenu de l’API)
Voir aussi
Vue d’ensemble du commerceRéférence de l’API XStore
