Activar una licencia en tu app
Documentación preliminar: describe el producto previsto y cambiará antes de la beta.
Cuando tu cliente escribe su email y su clave, tu app llama a tu Worker, recibe un token firmado y lo guarda. A partir de ahí, lo comprueba sin conexión en cada arranque y lo renueva en segundo plano.
Los ejemplos usan https://licenses.example.com como dirección de tu Worker y myapp como identificador de tu app.
1. Pide el email y la clave
La activación exige el email de la compra y la clave. Si no cuadran, el Worker responde invalid_key sin decir cuál de los dos falla, a propósito.
Antes de conectarte, normaliza la clave (mayúsculas, sin espacios) y, si lleva el prefijo de tu app y la longitud correcta, comprueba su carácter de control en local: así una errata sale como «Hay una errata en la clave» sin llamar a la red.
Nota: el servidor compara el email quitando espacios y en minúsculas, así que no hace falta que lo normalices tú.
2. Llama a activar
Manda un POST con JSON a /v1/activate:
curl -sS https://licenses.example.com/v1/activate \
-H 'content-type: application/json' \
-d '{
"app": "myapp",
"email": "ana@example.com",
"key": "MYAPP-7Q2KD-H9XNM-4TRVA-C8PWZ-K",
"dev": "9f2c4e6a8b0d1f3e5a7c9e1b3d5f7a9c2e4b6d8f0a1c3e5b7d9f1a3c5e7b9d0f",
"appVersion": "2.4.0",
"os": "Windows 11 24H2"
}'
dev es el SHA-256, en hexadecimal en minúsculas, de "myapp:" + identificador del equipo. Una respuesta correcta es así:
{ "token": "eyJ2IjoxLCJhcHAiOiJteWFwcCIs….3vQ2JmXo8w…", "status": "active" }
status vale active, o past_due si un pago falló pero la gracia no ha terminado: enseña un aviso sin bloquear nada.
3. Guarda el token y compruébalo sin conexión
Guarda el token en el almacén seguro del sistema (por ejemplo, DPAPI en Windows o el Llavero en Mac). En cada arranque:
- Separa el token por el punto y comprueba la firma Ed25519 con la clave pública que lleva tu app.
- Comprueba que
appes tu app ydeves este equipo. - Comprueba que la licencia no está en la lista de anuladas que descargaste.
- Si
expno esnully ya ha pasado, pruebaPOST /v1/refresh; si no puedes, pasa a modo gratuito.
La app nunca espera a la red para arrancar: la renovación va en segundo plano.
Importante: nunca metas la clave privada de firma en la app. Vive solo en tu Worker; la app solo necesita la pública.
Errores posibles
error |
Qué le dices al usuario |
|---|---|
invalid_key |
«Email o clave incorrectos»; recuérdale que es el email de la compra |
wrong_app |
«Esta clave es de otra aplicación» |
seats_exhausted |
Explica cómo liberar un equipo (tu app o el portal del cliente) |
expired, past_due |
Enlace para renovar o actualizar la tarjeta |
revoked |
«Esta licencia está anulada» |
rate_limited |
«Inténtalo dentro de un momento»; respeta Retry-After |
La lista completa está en la referencia de POST /v1/activate.
Siguientes pasos
- Renueva en segundo plano con
POST /v1/refreshy libera el equipo conPOST /v1/deactivate. - Mira SDKs y API para ver ejemplos de comprobación del token en varios lenguajes.