
TV360 — Proyecto completo

Archivos clave
- app/vouchers_admin.html      -> Panel de vouchers (autodetecta la ruta)
- app/vouchers_admin_abs_555.html -> Panel alterno fijado a /555 (por si lo usas exactamente en /555/)
- app/portal.html              -> Portal de canje
- app/api/vouchers.php         -> API (list|create|deactivate|redeem|verify) basado en JSON (vouchers.json)
- app/api/pay_check.php        -> Valida un código (PAY_CODE) y vouchers
- app/api/config.php           -> Configs básicas
- app/api/ping.php             -> Diagnóstico (debe devolver JSON ok:true)
- app/data/                    -> Carpeta de datos (asegura permisos de escritura)

Instalación rápida (cPanel)
1) Sube y descomprime el ZIP dentro de la carpeta donde servirá la web (p.ej. /public_html/555/).
2) Otorga permisos de escritura a app/data/ (775 recomendado; para prueba 777).
3) Abre app/api/vouchers.php y cambia VOUCHER_SECRET por una cadena larga y única.
4) Prueba:
   - /app/api/ping.php -> debe devolver JSON {"ok":true,...}
   - /app/api/vouchers.php?action=list -> JSON con ok:true
   - /app/vouchers_admin.html -> Crear/Actualizar/Desactivar
   - /app/api/vouchers.php?action=create&prefix=VIP-&count=3&max_uses=1&days_valid=30&active=true -> prueba rápida por GET
5) Si usas exactamente la carpeta /555/, también puedes abrir /app/vouchers_admin_abs_555.html

