Checkout-ul raportează paginii dvs. ce face. Abonați-vă cu on():
entase.on('checkout.ready', payload => {
console.log('checkout open for', payload.context.eventID);
});Un listener per nume de eveniment
on() stochează un callback pentru fiecare nume de eveniment. Înregistrarea unui al doilea callback pentru același nume îl înlocuiește pe primul – nu se adaugă la acesta:
entase.on('checkout.closed', a);
entase.on('checkout.closed', b); // a is gone; only b runsoff() elimină orice este înregistrat pentru un nume. Ignoră orice callback îi transmiteți, astfel că off('checkout.closed', b) și off('checkout.closed') au același efect.
Dacă mai multe părți ale paginii dvs. trebuie să reacționeze la același eveniment, înregistrați un singur callback și distribuiți acțiunile din interiorul acestuia.
Abonarea la mai multe evenimente simultan
Ambele metode acceptă un șir de caractere cu nume separate prin spații sau un array de nume, înregistrând același callback pentru fiecare:
entase.on('checkout.ready checkout.closed', payload => {
console.log(payload.name);
});
entase.off(['checkout.ready', 'checkout.closed']);Payload-ul
Fiecare callback primește un obiect:
| Câmp | Tip | Descriere |
|---|---|---|
name | string | Numele evenimentului, util când un callback gestionează mai multe evenimente. |
context | object | Conține eventID – evenimentul căruia îi aparține acest checkout. |
data | object | Detalii specifice evenimentului. |
Evenimente disponibile
| Nume | Când se declanșează |
|---|---|
checkout.ready | Checkout-ul s-a încărcat și este pregătit pentru interacțiune. Tot atunci clientul transmite clientContext pe care l-ați furnizat pentru book(). |
checkout.closed | Checkout-ul s-a închis. Clientul demontează panoul sau fereastra și elimină fundalul. |
checkout.consent | Vizitatorul a răspuns la notificarea privind termenii. data.consent este true când a acceptat, iar clientul reține această opțiune, astfel încât pasul este omis data viitoare. |
entase.on('checkout.closed', () => {
document.body.classList.remove('checkout-open');
});
entase.on('checkout.consent', payload => {
if (payload.data.consent) console.log('terms accepted');
});Listenerii persistă între rezervări individuale
Listenerii aparțin instanței, nu unei rezervări. Înregistrați-i o singură dată, după crearea clientului, iar aceștia se aplică fiecărui apel book(). Folosiți payload.context.eventID pentru a diferenția rezervările:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
entase.on('checkout.closed', payload => {
refreshAvailability(payload.context.eventID);
});Apelarea destroy() îi oprește pe toți – instanța nu mai ascultă deloc mesajele de la checkout.
Mesajele din alte surse sunt ignorate
Clientul acceptă doar mesaje de la originea checkout-ului Entase, astfel încât traficul postMessage fără legătură de pe pagina dvs. nu va ajunge niciodată la callback-urile dvs.