Страницата за плащане изпраща обратно към страницата ви информация за действията си. Абонирайте се с 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 – събитието, към което принадлежи това плащане. |
data | object | Подробности, специфични за събитието. |
Налични събития
| Име | Кога се задейства |
|---|---|
checkout.ready | Страницата за плащане е заредена и е готова за взаимодействие. Тогава клиентът предава и clientContext, който сте подали на book(). |
checkout.closed | Страницата за плащане е затворена. Клиентът премахва панела или прозореца и изчиства фона. |
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() спира всички тях – екземплярът изцяло спира да слуша за съобщения от страницата за плащане.
Съобщенията от други източници се игнорират
Клиентът приема съобщения само от източника на страницата за плащане на Entase, така че несвързан трафик от postMessage на страницата ви никога няма да достигне до обратните ви извиквания.