Der Checkout meldet Ihrer Seite, was er gerade tut. Abonnieren Sie Ereignisse mit on():
entase.on('checkout.ready', payload => {
console.log('checkout open for', payload.context.eventID);
});Ein Listener pro Ereignisname
on() speichert einen Callback pro Ereignisname. Wenn Sie einen zweiten Callback für denselben Namen registrieren, wird der erste ersetzt – er wird nicht hinzugefügt:
entase.on('checkout.closed', a);
entase.on('checkout.closed', b); // a is gone; only b runsoff() entfernt alles, was für einen Namen registriert ist. Dabei wird jeder übergebene Callback ignoriert, daher bewirken off('checkout.closed', b) und off('checkout.closed') dasselbe.
Wenn mehrere Bereiche Ihrer Seite auf dasselbe Ereignis reagieren müssen, registrieren Sie einen Callback und verteilen Sie die Verarbeitung darin weiter.
Mehrere Ereignisse gleichzeitig abonnieren
Beide Methoden akzeptieren eine durch Leerzeichen getrennte Zeichenfolge oder ein Array von Namen und registrieren denselben Callback für jeden Namen:
entase.on('checkout.ready checkout.closed', payload => {
console.log(payload.name);
});
entase.off(['checkout.ready', 'checkout.closed']);Die Nutzdaten
Jeder Callback erhält ein Objekt:
| Feld | Typ | Beschreibung |
|---|---|---|
name | Zeichenfolge | Der Ereignisname, nützlich, wenn ein Callback mehrere Ereignisse verarbeitet. |
context | Objekt | Enthält eventID – das Ereignis, zu dem dieser Checkout gehört. |
data | Objekt | Ereignisspezifische Details. |
Verfügbare Ereignisse
| Name | Auslösung |
|---|---|
checkout.ready | Der Checkout wurde geladen und ist zur Interaktion bereit. Zu diesem Zeitpunkt übergibt der Client auch den clientContext, den Sie an book() übergeben haben. |
checkout.closed | Der Checkout wurde geschlossen. Der Client entfernt das Panel oder Fenster und löscht den Hintergrund. |
checkout.consent | Der Besucher hat den Hinweis zu den Bedingungen beantwortet. data.consent ist true, wenn die Bedingungen akzeptiert wurden, und der Client speichert dies, sodass dieser Schritt beim nächsten Mal übersprungen wird. |
entase.on('checkout.closed', () => {
document.body.classList.remove('checkout-open');
});
entase.on('checkout.consent', payload => {
if (payload.data.consent) console.log('terms accepted');
});Listener bleiben über einzelne Buchungen hinweg erhalten
Listener gehören zur Instanz, nicht zu einer Buchung. Registrieren Sie sie einmal nach dem Erstellen des Clients; sie gelten dann für jeden Aufruf von book(). Verwenden Sie payload.context.eventID, um Buchungen voneinander zu unterscheiden:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
entase.on('checkout.closed', payload => {
refreshAvailability(payload.context.eventID);
});Der Aufruf von destroy() beendet alle Listener – die Instanz empfängt dann überhaupt keine Nachrichten mehr vom Checkout.
Nachrichten aus anderen Quellen werden ignoriert
Der Client akzeptiert nur Nachrichten vom Entase-Checkout-Ursprung, sodass nicht zusammenhängender postMessage-Datenverkehr auf Ihrer Seite Ihre Callbacks niemals erreicht.