Wiki · Devlog · Stripe y Firebase

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

SKUs: cuatro epílogos ($4,99), bundle ($12,99), cosméticos ocasionales en api/checkout.js.

Cuatro funciones Vercel

Modelo Firestore

Colección users con entitlements, guestTokens, purchaseHistory. Invitados en guestEntitlements hasta el link.

Flujo de compra

  1. Clic “Comprar epílogo” en el juego web.
  2. Redirect a checkout Stripe.
  3. Webhook + poll de verify-purchase al volver.
  4. 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

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.