Parámetros y eventos del widget
Contrato del widget AAPD: query params de la URL y eventos postMessage.
El widget AAPD es la misma SPA de Spot, activada en modo préstamo por la presencia de order_token. Esta página es el contrato: qué params lleva la URL y qué eventos emite. El cómo construir y embeber está en Guías → Construir la URL del widget.
Query params de la URL
https://spot.getskip.ai?widget_token=550e8400-...&public_key=pk_xxx&order_token=2f88b330-f3ed-5521-aa1f-9d15af1fce8d| Query param | Obligatorio | Notas |
|---|---|---|
widget_token | sí | Devuelto por POST /api/spot/widget. |
public_key | sí | Viene en la URL que retorna Skip; no la quites. |
order_token | sí (para AAPD) | El hash (UUID) que retorna POST /orders. Su presencia activa el flujo AAPD. |
Sin order_token, el widget trata la sesión como un registro estándar de Spot.
Eventos postMessage
El widget se comunica con la página padre vía postMessage estándar. Verifica siempre event.origin === "https://spot.getskip.ai" antes de confiar en el payload. event.data es el nombre del evento como string (p. ej. "WIDGET_PAYMENT_SUCCESS"), no un objeto.
| Evento | Disparado cuando | Acción típica |
|---|---|---|
WIDGET_FORM_MOUNT | Señal de ciclo de vida durante el flujo | Analytics opcional — no lo uses como estado de negocio |
WIDGET_PAYMENT_SUCCESS | Pago capturado (flujo AAPD) | Cerrar el modal, mostrar confirmación |
WIDGET_FORM_SUCCESS | Registro estándar completado (no AAPD) | Igual — cerrar, confirmar |
WIDGET_FORM_CLOSE | Paciente cerró el widget | Cerrar el modal, opcionalmente loggear abandono |
WIDGET_PAYMENT_SUCCESS es la señal frontend. La confirmación autoritativa es tu webhook server-side order.changed con status = paid — ver Webhooks. Si tu lógica requiere "la orden está pagada con seguridad", espera el webhook antes de cumplir.
Dimensiones del iframe
| Pantalla | Ancho mínimo | Alto recomendado |
|---|---|---|
| Móvil | 320 px | 820 px |
| Desktop | 480 px | 820 px |
CSP: el iframe carga desde https://spot.getskip.ai; permite frame-src https://spot.getskip.ai;. Detalle de embebido y patrón modal en Guías → Dimensiones del embed.