Checkout rapporterer tilbage til din side, hvad den foretager sig. Abonnér med on():
entase.on('checkout.ready', payload => {
console.log('checkout open for', payload.context.eventID);
});Én listener pr. hændelsesnavn
on() gemmer ét callback pr. hændelsesnavn. Registrering af et andet callback med samme navn erstatter det første – det føjes ikke til:
entase.on('checkout.closed', a);
entase.on('checkout.closed', b); // a er væk; kun b køreroff() fjerner det, der er registreret for et navn. Den ignorerer ethvert callback, du sender med, så off('checkout.closed', b) og off('checkout.closed') gør det samme.
Hvis flere dele af din side skal reagere på den samme hændelse, skal du registrere ét callback og fordele det derfra.
Abonnér på flere hændelser på én gang
Begge metoder accepterer en streng med navne adskilt af mellemrum eller et array med navne og registrerer det samme callback for hver:
entase.on('checkout.ready checkout.closed', payload => {
console.log(payload.name);
});
entase.off(['checkout.ready', 'checkout.closed']);Payloadet
Hvert callback modtager ét objekt:
| Felt | Type | Beskrivelse |
|---|---|---|
name | string | Hændelsesnavnet, nyttigt når ét callback håndterer flere. |
context | object | Indeholder eventID – den hændelse, som denne checkout hører til. |
data | object | Hændelsesspecifikke oplysninger. |
Tilgængelige hændelser
| Navn | Hvornår den udløses |
|---|---|
checkout.ready | Checkout er indlæst og klar til interaktion. Det er også her, klienten overdrager den clientContext, du sendte til book(). |
checkout.closed | Checkout er lukket. Klienten lukker panelet eller vinduet ned og rydder baggrunden. |
checkout.consent | Den besøgende har besvaret vilkårsmeddelelsen. data.consent er true, når vedkommende har accepteret, og klienten husker det, så trinnet springes over næste gang. |
entase.on('checkout.closed', () => {
document.body.classList.remove('checkout-open');
});
entase.on('checkout.consent', payload => {
if (payload.data.consent) console.log('terms accepted');
});Listenere overlever individuelle bookinger
Listenere tilhører instansen, ikke en booking. Registrer dem én gang, efter klienten er oprettet, og de gælder for hvert book()-kald. Brug payload.context.eventID til at skelne mellem bookinger:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
entase.on('checkout.closed', payload => {
refreshAvailability(payload.context.eventID);
});Et kald til destroy() stopper dem alle – instansen holder helt op med at lytte efter beskeder fra checkout.
Beskeder fra andre kilder ignoreres
Klienten accepterer kun beskeder fra Entase-checkouts oprindelse, så uvedkommende postMessage-trafik på din side når aldrig frem til dine callbacks.