DRM de base et vérifications de licence
XStore sur PC inclut une vérification DRM de base : le titre vérifie qu’il dispose d’une licence active avant d’autoriser le jeu. La vérification s’exécute au démarrage viaXStoreQueryGameLicenseAsync.
Si aucune licence n’est trouvée :
- Affichez au joueur une interface utilisateur du Store pour acheter ou se connecter.
- Ne laissez pas le jeu se poursuivre sans licence active.
- Validez la licence via des jetons de licence depuis votre service.
- Revérifiez périodiquement
XStoreQueryGameLicenseAsyncpendant le jeu ; révoquez l’accès en cas de perte de licence.
Licence ouverte et licence restrictive
Deux modèles de licence sur PC :- Licence ouverte : le joueur peut exécuter le titre avec n’importe quel compte Microsoft Store disposant d’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 souhaitent une protection anti-piratage renforcée.
Jetons de licence pour la validation par le service
Si votre serveur de jeu doit confirmer que le joueur possède le titre (par exemple, avant d’accorder un élément dans le 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 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 :- Le titre affiche « acheter » alors que 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
XUserGetIdaux informations deXStoreQueryGameLicenseAsync. - Affichez une interface utilisateur expliquant la non-concordance et proposez de changer de compte.
- Si le joueur ne peut pas changer de compte, proposez de le rediriger via l’application XBOX pour corriger le compte du Store.
Changement de sandbox pour les opérations du Store
Le sandbox XBOX services (défini viaXblPCSandbox.exe) ne contrôle pas entièrement le sandbox utilisé par le Store sur PC. Les opérations du Store nécessitent une étape supplémentaire :
- Changez le sandbox XBOX services.
- Relancez l’application Microsoft Store dans le contexte du nouveau sandbox.
- Vérifiez que
XStoreQueryGameLicenseAsyncrenvoie des données du sandbox de développement.
Liste de vérification des tests du commerce sur PC
Avant la soumission :- Testez avec un compte de test qui ne possède rien : vérifiez le flux d’achat / de version 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 version d’évaluation → achat : vérifiez que la licence d’évaluation passe à la licence complète sans redémarrage.
- Testez le lancement hors connexion : les titres PC doivent se lancer et être jouables hors connexion (sans contact avec le Store) pendant une durée raisonnable de licence mise en cache.
- Testez le changement de sandbox : confirmez que les appels au Store renvoient des produits du sandbox de développement après le changement.
Documentation d’API associée
- Référence de l’API XStore :
XStoreQueryGameLicenseAsync,XStoreQueryLicenseTokenAsync - Référence de l’API XUser :
XUserGetId,XUserIsStoreUser
