El checkout informa a tu página de lo que está haciendo. Suscríbete con on():
entase.on('checkout.ready', payload => {
console.log('checkout open for', payload.context.eventID);
});Un listener por nombre de evento
on() almacena un callback por nombre de evento. Registrar un segundo callback con el mismo nombre sustituye al primero – no se añade a él:
entase.on('checkout.closed', a);
entase.on('checkout.closed', b); // a is gone; only b runsoff() elimina cualquier callback registrado para un nombre. Ignora cualquier callback que le pases, por lo que off('checkout.closed', b) y off('checkout.closed') hacen lo mismo.
Si varias partes de tu página necesitan reaccionar al mismo evento, registra un callback y distribuye las acciones desde su interior.
Suscribirse a varios eventos a la vez
Ambos métodos aceptan una cadena de texto con nombres separados por espacios o un array de nombres, y registran el mismo callback para cada uno:
entase.on('checkout.ready checkout.closed', payload => {
console.log(payload.name);
});
entase.off(['checkout.ready', 'checkout.closed']);La carga útil
Cada callback recibe un objeto:
| Campo | Tipo | Descripción |
|---|---|---|
name | cadena | El nombre del evento, útil cuando un callback gestiona varios. |
context | objeto | Contiene eventID – el evento al que pertenece este checkout. |
data | objeto | Información específica del evento. |
Eventos disponibles
| Nombre | Cuándo se activa |
|---|---|
checkout.ready | El checkout se ha cargado y está listo para interactuar. También es el momento en que el cliente entrega el clientContext que pasaste a book(). |
checkout.closed | El checkout se ha cerrado. El cliente desmonta el panel o la ventana y elimina el fondo. |
checkout.consent | El visitante ha respondido al aviso de condiciones. data.consent es true cuando las acepta, y el cliente lo recuerda para omitir este paso la próxima vez. |
entase.on('checkout.closed', () => {
document.body.classList.remove('checkout-open');
});
entase.on('checkout.consent', payload => {
if (payload.data.consent) console.log('terms accepted');
});Los listeners persisten entre reservas individuales
Los listeners pertenecen a la instancia, no a una reserva. Regístralos una vez, después de crear el cliente, y se aplicarán a cada llamada a book(). Usa payload.context.eventID para distinguir las reservas:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
entase.on('checkout.closed', payload => {
refreshAvailability(payload.context.eventID);
});Al llamar a destroy() se detienen todos – la instancia deja por completo de escuchar los mensajes del checkout.
Se ignoran los mensajes de otros orígenes
El cliente solo acepta mensajes procedentes del origen del checkout de Entase, por lo que el tráfico postMessage no relacionado en tu página nunca llegará a tus callbacks.