# Rješavanje problema

> Najčešći problemi pri integraciji klijenta – ugrađena naplata koja se vraća na skočni prozor, blokirani prozori, spremnici koji nedostaju i upozorenja u konzoli.

Klijent zapisuje sve što prijavljuje u konzolu preglednika s prefiksom `[Entase API]`. Najprije otvorite konzolu.

## Naplata se otvara kao skočni prozor umjesto kao panel

Uobičajeni uzroci, redom kojim ih vrijedi provjeriti:

1. **Domena nije pouzdano ishodište.** Dodajte je u Postavke → Integracije tako da odgovara prefiksu `www.` koji vaša web-stranica stvarno koristi – pogledajte [Integracije i prilagodba naplate](/organizers/settings/integrations-and-checkout-customization.md).
2. **Stranica se ne poslužuje putem HTTPS-a.** Ugrađena naplata nikada se ne koristi na nesigurnoj stranici.
3. **Nema javnog ključa.** Bez `pk` klijent ne može provjeriti je li ugrađena naplata dopuštena, pa ostaje na skočnom prozoru.
4. **`book()` je pokrenut prerano.** Provjera dopuštenja je asinkrona, a način rada ostaje skočni prozor dok ne dobije odgovor. Naplata koja se automatski otvara pri učitavanju stranice može preteći provjeru – pogledajte [Načini rada naplate](/developers/js-client/checkout-modes.md).
5. **`connect-src` blokira vaša politika sigurnosti sadržaja**, pa se provjera nikada ne dovrši. Konzola će prikazati blokirani zahtjev.

`entase.getCheckoutMode()` prikazuje razriješeni način rada i najbrži je način za razlikovanje problema s konfiguracijom od problema s vremenskim usklađivanjem.

## "Pane checkout mode enabled for localhost"

Očekivano tijekom razvoja. Klijent pretpostavlja način rada panela na `localhost` i `127.0.0.1` kako biste mogli razvijati uz ugrađeni raspored, te upozorava jer ta pretpostavka ne govori ništa o produkciji. Dodajte stvarnu domenu u pouzdana ishodišta prije objave.

## Skočni prozor je blokiran

Preglednici dopuštaju otvaranje prozora samo tijekom korisničke radnje. Pozovite `book()` sinkrono unutar obradnika klika, a ne nakon `await`, `fetch` ili `setTimeout`. Pogledajte [Načini rada naplate](/developers/js-client/checkout-modes.md).

## Panel se otvara prazan

Iframe naplate je blokiran. Dopustite `https://www.entase.com` u direktivi `frame-src` svoje politike sigurnosti sadržaja – pogledajte [Instaliranje klijenta](/developers/js-client/installing-the-client.md).

## "Entase is not defined"

Skripta se nije završila učitavati kada se vaš kôd pokrenuo. To se događa kada se `client.js` učitava s `async` ili `defer` ili je postavljen nakon skripte koja ga koristi. Pričekajte događaj `entase:ready` – pogledajte [Instaliranje klijenta](/developers/js-client/installing-the-client.md).

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

`destroy()` je pozvan na instanci i ona se više ne može koristiti. U jednostraničnoj aplikaciji to obično znači da je komponenta uklonila svoj klijent, dok je dijeljena referenca ostala na mjestu. Stvorite novu instancu za novi prikaz.

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

Samo za ugrađeni widget. Kôd `obj` u konfiguraciji ne odgovara nijednom elementu na stranici. ID spremnika mora biti `entase_` nakon kojeg slijedi isti kôd, a spremnik mora postojati u DOM-u prije inicijalizacije widgeta – provjerite postoji li tipfeler ili se spremnik prikazuje kasnije putem vaših skripti.

## Pokreće se samo posljednji osluškivač događaja

`on()` zadržava jedan povratni poziv po nazivu događaja, a registriranje drugog zamjenjuje prvi. Registrirajte ga jednom i raspodijelite obradu unutar tog povratnog poziva – pogledajte [Događaji](/developers/js-client/events.md).

## Skočni prozor otvara se na pogrešnom zaslonu

Središnja točka izračunava se pri stvaranju instance i ne ažurira se kada posjetitelj premjesti prozor preglednika. Ponovno je izračunajte prije rezervacije pomoću `setTopWindowCenter()` – pogledajte [Referenca metoda](/developers/js-client/methods.md).

## Parametri praćenja nedostaju u narudžbama

Samostalni klijent ne čita URL vaše stranice. Sami proslijedite parametre u `tprm` – pogledajte [Praćenje i privola](/developers/js-client/tracking-and-consent.md). Imajte na umu da `setTracking()` zamjenjuje cijeli objekt umjesto da ga spaja, pa kasniji poziv može neprimjetno ukloniti ranije parametre.
