# PROMPT PARA CLAUDE CODE Quiero que generes un **mini‑proyecto en PHP** (PHP 8.1+) que funcione como una **landing para experiencias de Mastercard Priceless con pago integrado**. **No debe existir opción de redirección simple**: el flujo único y obligatorio es **pago integrado mediante Stripe Checkout** y, tras el pago exitoso, redirección a una página de confirmación o a la URL final de la experiencia. ## Requisitos generales * Cada experiencia tendrá un `slug` y se configurará con: * título, descripción, imagen, * **precio**, **moneda** y (opcional) cantidad/unidad, * URL(s) de post‑compra: `success_url` (confirmación) y `cancel_url` (intento cancelado), * (opcional) URL destino final de la experiencia post‑confirmación. * **Siempre** usar **Stripe Checkout** para procesar el pago. * Mantener propagación de parámetros UTM y `ref=priceless` durante todo el flujo, incluyendo en `success_url`. * Antes de iniciar el pago, el usuario debe marcar un checkbox de **Términos y Condiciones** (validación front/back). * Mostrar de forma visible un **disclaimer Mastercard** y enlaces a **Política de Privacidad** y **Términos y Condiciones** (header, cerca del CTA y footer). ## Integración con Stripe * Usar la **librería oficial de Stripe para PHP**. * Cargar **clave pública** y **clave secreta** desde variables de entorno. * Implementar el flujo de **Stripe Checkout Session**: * Crear la sesión con datos de la experiencia (nombre/descr., precio, moneda, cantidad, imagen si aplica). * Redirigir al `url` seguro de Checkout de Stripe. * Definir `success_url` y `cancel_url` con conservación/reescritura de UTM y `ref`. * En `success_url`, mostrar una **página de confirmación** y registrar el resultado (sin exponer datos sensibles). Opcionalmente, tras la confirmación ofrecer un botón para ir a la URL final de la experiencia. ## Seguridad y cumplimiento * **HTTPS obligatorio**. * Encabezados de seguridad (CSP, X‑Frame‑Options, X‑Content‑Type‑Options, Referrer‑Policy, Permissions‑Policy). * Validación/normalización de entradas (slug, UTM, ref) y **escape de salidas**. * **Logs sin datos sensibles** (p. ej., registrar `experience_id`, timestamp, estado de pago, UTM anonimizadas si aplica). ## Textos legales * Incluir **disclaimer estándar** bajo el CTA y en el footer. * Enlazar **Términos y Condiciones** y **Política de Privacidad** desde header, footer y junto al CTA. * El contenido de esos textos se proporcionará por separado (no es necesario detallarlos en este prompt). --- **Fin del prompt.**