DRM de base et vérifications de licence
XStore sur PC comprend une vérification DRM de base : le titre vérifie qu’il dispose d’une licence active avant de permettre de jouer. La vérification s’exécute au démarrage au moyen deXStoreQueryGameLicenseAsync.
Si aucune licence n’est trouvée :
- Présentez au joueur une interface du Store pour acheter ou se connecter.
- Ne laissez pas la partie se poursuivre sans licence active.
- Validez la licence au moyen de jetons de licence à partir de votre service.
- Revérifiez périodiquement
XStoreQueryGameLicenseAsyncpendant la partie; révoquez l’accès en cas de perte de licence.
Licence ouverte et licence restrictive
Deux modèles de licences sur PC :- Licence ouverte : le joueur peut exécuter le titre avec n’importe quel compte Microsoft Store qui possède une licence. Utile pour les PC partagés.
- Licence restrictive : le joueur doit être connecté avec le compte Microsoft titulaire de la licence. Utilisée lorsque les titres veulent une protection anti-piratage plus forte.
Jetons de licence pour la validation par service
Si votre serveur de jeu doit confirmer que le joueur possède le titre (par exemple, avant d’accorder un élément en jeu), utilisez des jetons de licence :- Le client appelle
XStoreQueryLicenseTokenAsyncpour obtenir un jeton signé de courte durée. - Le client envoie le jeton à votre service.
- Votre service valide la signature du jeton avec la clé publique de Microsoft.
- Votre service se fie aux revendications du jeton concernant l’état de la licence.
Scénarios de comptes Store non concordants
Un problème courant sur PC : le joueur est connecté à Windows / à l’application XBOX avec un compte Microsoft, mais le Microsoft Store est connecté avec un compte différent. Les API XStore suivent le compte connecté au Store, ce qui peut entraîner les situations suivantes :- Le titre affiche « acheter » même si le joueur connecté à XBOX le possède sur l’autre compte.
- L’achat est effectué sur le mauvais compte.
- Détectez la non-concordance : comparez
XUserGetIdà l’information deXStoreQueryGameLicenseAsync. - Affichez une interface expliquant la non-concordance et proposez de changer de compte.
- Si le joueur ne peut pas changer de compte, proposez de le rediriger vers l’application XBOX pour corriger le compte du Store.
Changement de bac à sable pour les opérations du Store
Le bac à sable des services XBOX (défini au moyen deXblPCSandbox.exe) ne contrôle pas entièrement le bac à sable qu’utilise le Store sur PC. Les opérations du Store nécessitent une étape supplémentaire :
- Changez le bac à sable des services XBOX.
- Relancez l’application Microsoft Store dans le contexte du nouveau bac à sable.
- Vérifiez que
XStoreQueryGameLicenseAsyncrenvoie des données du bac à sable de développement.
Liste de vérification des tests de commerce sur PC
Avant la soumission :- Testez avec un compte de test qui ne possède rien : vérifiez le flux d’achat / d’évaluation / de connexion.
- Testez avec un compte de test qui possède le jeu de base : vérifiez qu’aucune invite « acheter » n’apparaît.
- Testez des comptes Store non concordants : connectez-vous à Windows avec un compte et au Store avec un autre.
- Testez le flux évaluation → achat : vérifiez que la licence d’évaluation passe à la licence complète sans redémarrage.
- Testez le lancement hors ligne : les titres PC doivent se lancer et être jouables hors ligne (sans communication avec le Store) pendant une période raisonnable de licence mise en cache.
- Testez le changement de bac à sable : confirmez que les appels au Store renvoient les produits du bac à sable de développement après le changement.
Documentation des API connexes
- Référence de l’API XStore :
XStoreQueryGameLicenseAsync,XStoreQueryLicenseTokenAsync - Référence de l’API XUser :
XUserGetId,XUserIsStoreUser
