# Отстраняване на неизправности

> Неизправностите, които най-често възникват при интегрирането на клиента – вграденото плащане се връща към изскачащ прозорец, блокирани прозорци, липсващи контейнери и предупреждения в конзолата.

Клиентът записва в конзолата на браузъра всичко, което отчита, с префикс `[Entase API]`. Първо отворете конзолата.

## Плащането се отваря като изскачащ прозорец вместо като панел

Обичайните причини, в реда, в който си струва да ги проверите:

1. **Домейнът не е надежден източник.** Добавете го в Settings → Integrations, като съобразите префикса `www.`, който сайтът ви действително използва – вижте [Интеграции и персонализиране на плащането](/organizers/settings/integrations-and-checkout-customization.md).
2. **Страницата не се предоставя през HTTPS.** Вградено плащане никога не се използва на незащитена страница.
3. **Няма публикуем ключ.** Без `pk` клиентът не може да провери дали вграденото плащане е разрешено, затова остава с изскачащ прозорец.
4. **`book()` е изпълнен твърде рано.** Проверката на разрешението е асинхронна и режимът е изскачащ прозорец, докато тя не даде отговор. Плащане, отворено автоматично при зареждане на страницата, може да я изпревари – вижте [Режими на плащане](/developers/js-client/checkout-modes.md).
5. **`connect-src` е блокиран от вашата Content Security Policy**, така че проверката никога не завършва. Конзолата ще покаже блокираната заявка.

`entase.getCheckoutMode()` отчита определения режим и е най-бързият начин да разграничите проблемите с конфигурацията от тези с времето на изпълнение.

## "Pane checkout mode enabled for localhost"

Очаквано по време на разработка. Клиентът приема режим на панел за `localhost` и `127.0.0.1`, за да можете да разработвате спрямо вграденото оформление, и предупреждава, защото това допускане не казва нищо за продукционната среда. Добавете реалния си домейн към надеждните източници, преди да пуснете приложението.

## Изскачащият прозорец е блокиран

Браузърите позволяват отваряне на прозорец само по време на потребителско действие. Извикайте `book()` синхронно в обработчика на кликване, а не след `await`, `fetch` или `setTimeout`. Вижте [Режими на плащане](/developers/js-client/checkout-modes.md).

## Панелът се отваря празен

Iframe-ът за плащане е блокиран. Разрешете `https://www.entase.com` в директивата `frame-src` на вашата Content Security Policy – вижте [Инсталиране на клиента](/developers/js-client/installing-the-client.md).

## "Entase is not defined"

Скриптът не е завършил зареждането си, когато кодът ви е бил изпълнен. Това се случва, когато `client.js` е зареден с `async` или `defer`, или е поставен след скрипта, който го използва. Изчакайте събитието `entase:ready` – вижте [Инсталиране на клиента](/developers/js-client/installing-the-client.md).

## "Trying to book an event after the Client has been destroyed"

`destroy()` е извикан за екземпляра и той вече не може да се използва. В едностранично приложение това обикновено означава, че компонент е премахнал своя клиент, докато споделена референция е останала активна. Създайте нов екземпляр за новия изглед.

## "Entase frame initialization failed. Container not found."

Само за вградена джаджа. Кодът `obj` в конфигурацията не съответства на нито един елемент на страницата. Id на контейнера трябва да бъде `entase_`, последвано от същия код, и той трябва да съществува в DOM, преди джаджата да се инициализира – проверете за печатна грешка или за контейнер, който вашите скриптове визуализират по-късно.

## Изпълнява се само последният слушател на събитие

`on()` запазва по едно обратно извикване за всяко име на събитие, а регистрирането на второ заменя първото. Регистрирайте се веднъж и разпределяйте обработката в това обратно извикване – вижте [Събития](/developers/js-client/events.md).

## Изскачащият прозорец се отваря на грешния екран

Централната точка се изчислява при създаването на екземпляра и не се актуализира, когато посетителят премести прозореца на браузъра. Преизчислете я преди резервиране чрез `setTopWindowCenter()` – вижте [Справочник за методите](/developers/js-client/methods.md).

## Параметрите за проследяване липсват от поръчките

Самостоятелният клиент не чете URL адреса на вашата страница. Предайте сами параметрите в `tprm` – вижте [Проследяване и съгласие](/developers/js-client/tracking-and-consent.md). Имайте предвид, че `setTracking()` заменя целия обект, вместо да го обединява с него, така че по-късно извикване може безшумно да премахне по-ранни параметри.
