Плащането се отваря в един от два режима.
Pane е вграден панел, визуализиран във вашата страница. На настолен компютър той се плъзга отдясно, с максимална ширина pane.width; на мобилно устройство се плъзга нагоре отдолу. Посетителят остава на вашия сайт, а панелът се затваря, когато натисне Escape или щракне върху затъмнената област.
Popup е отделен прозорец на браузъра, центриран на екрана на посетителя. Клиентът следи дали прозорецът е затворен, за да може да премахне фона.
Вграденото плащане изисква доверен източник
Режимът Pane визуализира плащането на Entase в iframe във вашия домейн, затова е разрешен само за домейни, които изрично сте упълномощили. Добавете всеки домейн, който отваря плащането, в Trusted origins в Settings → Integrations – вижте Интеграции и персонализиране на плащането.
От значение е дали е включен префиксът www.. Ако не сте сигурни коя форма използва сайтът ви, добавете и двете.
Ако домейнът ви не е в списъка, плащането пак работи – просто се отваря като изскачащ прозорец.
Как се определя 'auto'
При настройката по подразбиране checkoutMode: 'auto' клиентът решава в следния ред:
- Без HTTPS → изскачащ прозорец. Вградено плащане никога не се използва на незащитена страница.
localhostили127.0.0.1→ панел, с предупреждение, записано в конзолата. Това е удобство при разработка, за да можете да разработвате спрямо вграденото оформление; не казва нищо за това дали производственият ви домейн е разрешен.- В противен случай → клиентът пита Entase дали този източник може да използва вградено плащане, като изпраща
pk, за да идентифицира акаунта. Ако отговорът включва pane, режимът става pane.
Докато този отговор не пристигне, режимът е popup. Това поведение най-вероятно ще ви изненада: проверката е асинхронна, така че извикване на book(), задействано веднага при зареждане на страницата – преди посетителят да е имал възможност да щракне върху каквото и да е – все още може да отвори изскачащ прозорец при напълно правилно конфигуриран домейн. На практика истинско щракване винаги се случва дълго след като проверката е завършила. Ако отваряте плащането автоматично, задайте режима принудително, вместо да разчитате на разпознаване.
Принудително задаване на режим
Задайте изрично checkoutMode, за да пропуснете изцяло разпознаването:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY', checkoutMode: 'popup' });Или го заменете за една резервация:
entase.book('EVENT_ID', { checkoutMode: 'popup' });Принудителното задаване на 'pane' за домейн, който не е доверен източник, не предоставя разрешение – панелът се отваря, но плащането в него не може да комуникира с вашата страница. Използвайте 'popup' като съзнателен избор и оставете 'auto', когато искате вградено плащане навсякъде, където е разрешено.
Неразпозната стойност се игнорира и се третира като 'auto'.
Преглед и промяна на режима по време на изпълнение
entase.getCheckoutMode(); // 'pane' or 'popup' — never 'auto'
entase.setCheckoutMode('popup'); // applies to every later book() callgetCheckoutMode() връща определения режим, така че показва какво действително ще се случи. Задаването на режима обратно на 'auto' изпълнява разпознаването отново.
Блокиране на изскачащи прозорци
Браузърите разрешават window.open() само по време на потребителско действие. Извикайте book() директно в обработчик на щракване – не след await, fetch или setTimeout, когато действието вече е изтекло и изскачащият прозорец се блокира.
// Blocked: the gesture is gone by the time book() runs.
button.addEventListener('click', async () => {
const event = await fetch('/api/current-event').then(r => r.json());
entase.book(event.id);
});
// Fine: resolve the id first, open on the click.
button.addEventListener('click', () => entase.book(button.dataset.eventId));Това засяга само режима на изскачащ прозорец. Режимът Pane създава елемент в страницата и не подлежи на това.