Que é un entitlement: produto, subscrición e acceso en 3 capas
Que é un entitlement e en que se diferencia dun produto e dunha subscrición. Comproba o acceso dun usuario en web, iOS e Android coa API de Cifrago.
Un entitlement é o permiso que ten un usuario para utilizar unha función da túa app, por exemplo «pro». O produto é o que se vende e a subscrición é como se paga; o entitlement é o que a túa app consulta para abrir ou pechar a función. Separar as tres capas permite vender o mesmo na web, en iOS e en Android.
Nota: Cifrago está en fase final de desenvolvemento e aínda non admite comercios novos. A API descrita aquí estará dispoñible proximamente.
Produto, subscrición e entitlement
| Capa | Que é | Exemplo |
|---|---|---|
| Produto / prezo | O que se vende | «Pro anual» na web, «Pro mensual» en App Store |
| Subscrición ou compra | Como e cando se paga | Renovación cada mes; estado activo, past_due ou expirada |
| Entitlement | O permiso que a app comproba | pro |
Varios produtos poden dar o mesmo entitlement. Deste xeito, quen pagou na web e quen pagou en iOS ven a mesma función desbloqueada.
Como comprobar o acceso coa API de Cifrago
| Endpoint | Que fai | Chave |
|---|---|---|
GET /api/v1/subscribers/{appUserId} | Devolve os entitlements activos (activeEntitlementKeys), as súas cantidades, as subscricións e as compras en tendas. Se o usuario non existe, cráo | Pública ou secreta |
POST /api/v1/receipts | Rexistra un recibo de App Store ou Google Play para que o acceso sexa o mesmo en todas as plataformas | Pública ou secreta |
POST /api/v1/subscribers/{appUserId}/grants | Concede un entitlement promocional, con caducidade opcional | Só secreta |
GET /api/v1/catalog e GET /api/v1/offerings | Produtos, prezos e ofertas da app | — |
En iOS e Android, as compras dentro da app pasan obrigatoriamente por App Store ou Google Play. Cifrago rexistra o recibo e mantén o mesmo permiso en todas partes. O permiso vive no servidor, non no móbil. A chave pública só pode ler o subscritor e rexistrar compras; en calquera outro endpoint recibe un 401.
Como se modela por dentro
entitlements: os permisos de cada app (por exemplo,pro).price_entitlements: que prezo dá que permiso.store_product_entitlements: que produto de App Store ou Google Play dá que permiso.- Os consumibles (créditos, packs) rexístranse, pero non dan entitlements.
Preguntas frecuentes
Que é un entitlement?
É o permiso que ten un usuario para usar unha función ou contido da túa app, como «pro». O teu código non pregunta «pagou este produto?», senón «ten este permiso activo?». Isto simplifica o código e permite vender en varias plataformas.
En que se diferencia dunha subscrición?
A subscrición é o acordo de pago: prezo, periodicidade e estado. O entitlement é o resultado: mentres a subscrición estea activa ou en período de graza, o usuario ten o permiso. Varias subscricións ou compras distintas poden outorgar o mesmo permiso.
Como sabe a miña app se o usuario ten acceso?
Consultando GET /api/v1/subscribers/{appUserId} e comprobando se o permiso está en activeEntitlementKeys. A resposta inclúe tamén as subscricións e as compras en tendas, por se queres amosar o detalle ao usuario.
Serve para compras de App Store e Google Play?
Si. A app envía o recibo a POST /api/v1/receipts e Cifrago concede o mesmo entitlement que outorgaría unha compra na web. Deste xeito, un usuario que paga no iPhone ten acceso tamén desde Android ou desde o navegador.
Estás a montar subscricións?
Mira as tarifas e proba o panel con datos de exemplo antes de integrar nada.