DRM básico y comprobaciones de licencia
XStore en PC incluye una comprobación de DRM básica: el título verifica que tiene una licencia activa antes de permitir el juego. La comprobación se ejecuta al inicio medianteXStoreQueryGameLicenseAsync.
Si no se encuentra ninguna licencia:
- Muestre al jugador una interfaz de usuario de la Store para comprar o iniciar sesión.
- No permita que el juego continúe sin una licencia activa.
- Valide la licencia mediante tokens de licencia desde su servicio.
- Vuelva a comprobar periódicamente
XStoreQueryGameLicenseAsyncdurante el juego; revoque el acceso si se pierde la licencia.
Licencias abiertas frente a restrictivas
Dos modelos de licencias en PC:- Licencias abiertas: el jugador puede ejecutar el título con cualquier cuenta de Microsoft Store que tenga una licencia. Útil para PC compartidos.
- Licencias restrictivas: el jugador debe haber iniciado sesión con la cuenta de Microsoft con licencia. Se usa cuando los títulos quieren una protección antipiratería más fuerte.
Tokens de licencia para la validación en servicios
Si su servidor de juego necesita confirmar que el jugador posee el título (por ejemplo, antes de conceder un recurso dentro del juego), use tokens de licencia:- El cliente llama a
XStoreQueryLicenseTokenAsyncpara obtener un token firmado de corta duración. - El cliente envía el token a su servicio.
- Su servicio valida la firma del token con la clave pública de Microsoft.
- Su servicio confía en las notificaciones del token sobre el estado de la licencia.
Escenarios de cuentas de la Store no coincidentes
Un problema común en PC: el jugador ha iniciado sesión en Windows o en la aplicación XBOX con una cuenta de Microsoft, pero en Microsoft Store hay una sesión iniciada con una cuenta diferente. Las API de XStore siguen la cuenta con sesión iniciada en la Store, lo que puede provocar que:- El título muestre “buy” aunque el jugador con sesión iniciada en XBOX lo posea en la otra cuenta.
- La compra se realice correctamente en la cuenta equivocada.
- Detecte la discrepancia: compare
XUserGetIdcon la información deXStoreQueryGameLicenseAsync. - Muestre una interfaz de usuario que explique la discrepancia y ofrezca cambiar de cuenta.
- Si el jugador no puede cambiar, ofrezca redirigirle a través de la aplicación XBOX para corregir la cuenta de la Store.
Cambio de sandbox para las operaciones de la Store
El sandbox de los servicios de XBOX (establecido medianteXblPCSandbox.exe) no controla por completo qué sandbox usa la Store en PC. Las operaciones de la Store necesitan un paso adicional:
- Cambie el sandbox de los servicios de XBOX.
- Vuelva a iniciar la aplicación Microsoft Store en el nuevo contexto de sandbox.
- Verifique que
XStoreQueryGameLicenseAsyncdevuelve datos del sandbox de desarrollo.
Lista de comprobación de pruebas para el comercio en PC
Antes de enviar:- Pruebe con una cuenta de prueba que no posea nada: verifique el flujo de compra / versión de prueba / inicio de sesión.
- Pruebe con una cuenta de prueba que posea el juego base: verifique que no aparezcan avisos de “buy”.
- Pruebe cuentas de la Store no coincidentes: inicie sesión en Windows con una cuenta y en la Store con otra.
- Pruebe el flujo de versión de prueba → compra: verifique que la licencia de prueba cambia a licencia completa sin reiniciar.
- Pruebe el inicio sin conexión: los títulos de PC deben iniciarse y poder jugarse sin conexión (sin contacto con la Store) durante un período razonable de licencia en caché.
- Pruebe el cambio de sandbox: confirme que las llamadas a la Store devuelven productos del sandbox de desarrollo después del cambio.
Documentación de la API relacionada
- Referencia de la API de XStore —
XStoreQueryGameLicenseAsync,XStoreQueryLicenseTokenAsync - Referencia de la API de XUser —
XUserGetId,XUserIsStoreUser
