Integración Stripe y Firebase
Archivado (2026): Esta página documenta el stack de checkout web retirado. CONTRABAND vende hoy en Steam. Este sitio ya no vende epílogos ni soundtrack. La carpeta api/ queda como referencia, no como tienda activa.
En el prototipo web, había que demostrar compras en servidor, sincronizar entre dispositivos y permitir compras de invitado antes del registro. Stripe Checkout + Firestore + cuatro funciones Vercel lo resolvieron.
Hoy: Steam gestiona el comercio
Llaves, DLC, banda sonora, reembolsos y precios regionales viven en Steam. Este sitio es wiki/lore/prensa — sin botones “Comprar epílogo” ni flujo de desbloqueo Stripe para jugadores nuevos.
Contexto de producto: Filosofía de monetización. Lo técnico siguiente es solo historia.
Stack navegador (archivado)
Comportamiento circa 2024–2025 cuando /play existía. Tiempo pasado a propósito.
Requisitos
- Verificación server-side
- Sync cross-device
- Tolerancia offline
- Compras de invitado
SKUs: cuatro epílogos ($4,99), bundle ($12,99), cosméticos ocasionales en api/checkout.js.
Cuatro funciones Vercel
checkout.js— sesión Stripe Checkoutstripe-webhook.js— escribía entitlements en Firestoreverify-purchase.js— consulta + caché localStoragelink-purchase.js— vinculaba compras guest a UID Firebase
Modelo Firestore
Colección users con entitlements, guestTokens, purchaseHistory. Invitados en guestEntitlements hasta el link.
Flujo de compra
- Clic “Comprar epílogo” en el juego web.
- Redirect a checkout Stripe.
- Webhook + poll de verify-purchase al volver.
- Desbloqueo cuando Firestore confirmaba el SKU.
Caché vs autoridad
localStorage para UX offline; Firestore como fuente de verdad. Manipular localStorage no servía contenido pagado sin check servidor.
Trampas comunes
- Carrera webhook → poll 30 s
- Pérdida de token guest → recuperación por recibo Stripe
- Webhooks sin firma → vulnerabilidad crítica
Qué sigue siendo útil
El patrón ledger servidor + caché cliente + nunca confiar en el navegador para gates de pago sigue válido. Stripe + Firebase + Vercel fue barato para el prototipo web; Steam es la tienda final en PC.