Checkout повідомляє вашій сторінці про свої дії. Підпишіться за допомогою on():
entase.on('checkout.ready', payload => {
console.log('checkout open for', payload.context.eventID);
});Один слухач на назву події
on() зберігає один зворотний виклик для кожної назви події. Реєстрація другого зворотного виклику з тією самою назвою замінює перший – вона не додає його:
entase.on('checkout.closed', a);
entase.on('checkout.closed', b); // a is gone; only b runsoff() видаляє все, що зареєстровано для певної назви. Вона ігнорує будь-який переданий їй зворотний виклик, тому off('checkout.closed', b) і off('checkout.closed') роблять те саме.
Якщо кільком частинам вашої сторінки потрібно реагувати на ту саму подію, зареєструйте один зворотний виклик і розподіляйте виклики з нього.
Підписка на кілька подій одночасно
Обидва методи приймають рядок із назвами, розділеними пробілами, або масив назв і реєструють той самий зворотний виклик для кожної з них:
entase.on('checkout.ready checkout.closed', payload => {
console.log(payload.name);
});
entase.off(['checkout.ready', 'checkout.closed']);Корисне навантаження
Кожен зворотний виклик отримує один об’єкт:
| Поле | Тип | Опис |
|---|---|---|
name | string | Назва події; корисно, коли один зворотний виклик обробляє кілька подій. |
context | object | Містить eventID – подію, до якої належить цей checkout. |
data | object | Відомості, специфічні для події. |
Доступні події
| Назва | Коли спрацьовує |
|---|---|
checkout.ready | Checkout завантажено й він готовий до взаємодії. У цей момент клієнт також передає clientContext, який ви передали до book(). |
checkout.closed | Checkout закрито. Клієнт закриває панель або вікно й прибирає фон. |
checkout.consent | Відвідувач відповів на повідомлення про умови. data.consent має значення true, коли він прийняв умови, і клієнт запам’ятовує це, щоб наступного разу пропустити цей крок. |
entase.on('checkout.closed', () => {
document.body.classList.remove('checkout-open');
});
entase.on('checkout.consent', payload => {
if (payload.data.consent) console.log('terms accepted');
});Слухачі зберігаються між окремими бронюваннями
Слухачі належать екземпляру, а не бронюванню. Зареєструйте їх один раз після створення клієнта, і вони застосовуватимуться до кожного виклику book(). Використовуйте payload.context.eventID, щоб розрізняти бронювання:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
entase.on('checkout.closed', payload => {
refreshAvailability(payload.context.eventID);
});Виклик destroy() зупиняє їх усі – екземпляр повністю припиняє прослуховувати повідомлення від checkout.
Повідомлення з інших джерел ігноруються
Клієнт приймає повідомлення лише від джерела checkout Entase, тому сторонній трафік postMessage на вашій сторінці ніколи не потрапить до ваших зворотних викликів.