# Odpravljanje težav

> Najpogostejše napake pri integraciji odjemalca – vdelano plačilo, ki se preklopi na pojavno okno, blokirana okna, manjkajoči vsebniki in opozorila v konzoli.

Odjemalec vse, kar sporoči, zabeleži v konzolo brskalnika s predpono `[Entase API]`. Najprej odprite konzolo.

## Plačilo se namesto kot plošča odpre v pojavnem oknu

Običajni vzroki po vrstnem redu, v katerem jih je smiselno preveriti:

1. **Domena ni zaupanja vreden izvor.** Dodajte jo v Nastavitve → Integracije in upoštevajte predpono `www.`, ki jo vaše spletno mesto dejansko uporablja – glejte [Integracije in prilagajanje plačila](/organizers/settings/integrations-and-checkout-customization.md).
2. **Stran ni servirana prek HTTPS.** Vdelano plačilo se na nezavarovani strani nikoli ne uporablja.
3. **Ni javnega ključa.** Brez `pk` odjemalec ne more preveriti, ali je vdelano plačilo dovoljeno, zato ostane pri pojavnem oknu.
4. **`book()` se je zagnal prezgodaj.** Preverjanje dovoljenja je asinhrono, način pa je pojavno okno, dokler ne prejme odgovora. Plačilo, samodejno odprto ob nalaganju strani, ga lahko prehiti – glejte [Načini plačila](/developers/js-client/checkout-modes.md).
5. **`connect-src` blokira vaš pravilnik Content Security Policy**, zato se preverjanje nikoli ne zaključi. V konzoli bo prikazana blokirana zahteva.

`entase.getCheckoutMode()` vrne razrešeni način in je najhitrejši način za razlikovanje med težavami s konfiguracijo in časovnimi težavami.

## »Pane checkout mode enabled for localhost«

To je med razvojem pričakovano. Odjemalec za `localhost` in `127.0.0.1` predvideva način plošče, da lahko razvijate z vdelano postavitvijo, ter prikaže opozorilo, ker ta predpostavka ne pove ničesar o produkciji. Pred objavo dodajte svojo dejansko domeno med zaupanja vredne izvore.

## Pojavno okno je blokirano

Brskalniki dovolijo odpiranje okna samo med uporabniško interakcijo. `book()` pokličite sinhrono znotraj obravnavalnika klika, ne po `await`, `fetch` ali `setTimeout`. Glejte [Načini plačila](/developers/js-client/checkout-modes.md).

## Plošča se odpre prazna

Iframe za plačilo je bil blokiran. V direktivi `frame-src` pravilnika Content Security Policy dovolite `https://www.entase.com` – glejte [Namestitev odjemalca](/developers/js-client/installing-the-client.md).

## »Entase is not defined«

Skript se še ni dokončal nalagati, ko se je zagnala vaša koda. To se zgodi, če je `client.js` naložen z `async` ali `defer` oziroma je postavljen za skriptom, ki ga uporablja. Počakajte na dogodek `entase:ready` – glejte [Namestitev odjemalca](/developers/js-client/installing-the-client.md).

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

Na instanci je bil klican `destroy()` in je ni več mogoče uporabljati. V enostranski aplikaciji to običajno pomeni, da je komponenta odstranila svojega odjemalca, skupna referenca pa je ostala. Za nov pogled ustvarite novo instanco.

## »Entase frame initialization failed. Container not found.«

Samo za vdelani gradnik. Koda `obj` v konfiguraciji se ne ujema z nobenim elementom na strani. ID vsebnika mora biti `entase_`, ki mu sledi ista koda, vsebnik pa mora obstajati v DOM-u, preden se gradnik inicializira – preverite, ali je prisotna tipkarska napaka oziroma ali vaši skripti vsebnik izrišejo pozneje.

## Izvede se samo zadnji poslušalec dogodkov

`on()` ohrani en povratni klic za vsako ime dogodka, registracija drugega pa zamenja prvega. Registrirajte ga enkrat in razvejite znotraj tega povratnega klica – glejte [Dogodki](/developers/js-client/events.md).

## Pojavno okno se odpre na napačnem zaslonu

Središčna točka se izračuna ob ustvarjanju instance in se ne posodobi, ko obiskovalec premakne okno brskalnika. Pred rezervacijo jo znova izračunajte z `setTopWindowCenter()` – glejte [Referenca metod](/developers/js-client/methods.md).

## Parametri sledenja manjkajo v naročilih

Samostojni odjemalec ne bere URL-ja vaše strani. Parametre sami posredujte v `tprm` – glejte [Sledenje in soglasje](/developers/js-client/tracking-and-consent.md). Upoštevajte, da `setTracking()` zamenja celoten objekt, namesto da bi ga združil z obstoječim, zato lahko poznejši klic neopazno odstrani prejšnje parametre.
