# Trikčių šalinimas

> Dažniausiai pasitaikančios problemos integruojant klientą – įterptasis atsiskaitymas grįžta prie iššokančio lango, langai blokuojami, trūksta konteinerių ir rodomi konsolės įspėjimai.

Klientas į naršyklės konsolę įrašo viską, ką praneša, su priešdėliu `[Entase API]`. Pirmiausia atidarykite konsolę.

## Atsiskaitymas atidaromas iššokančiame lange, o ne skydelyje

Įprastos priežastys tokia tikrinimo tvarka:

1. **Domenas nėra patikima kilmė.** Pridėkite jį skiltyje Nustatymai → Integracijos, nurodydami `www.` priešdėlį, kurį iš tikrųjų naudoja jūsų svetainė – žr. [Integracijos ir atsiskaitymo tinkinimas](/organizers/settings/integrations-and-checkout-customization.md).
2. **Puslapis pateikiamas ne per HTTPS.** Nesaugiame puslapyje įterptasis atsiskaitymas niekada nenaudojamas.
3. **Nėra viešinamojo rakto.** Be `pk` klientas negali patikrinti, ar leidžiamas įterptasis atsiskaitymas, todėl lieka naudojamas iššokantis langas.
4. **`book()` paleista per anksti.** Leidimo patikra yra asinchroninė, o iki jos atsakymo naudojamas iššokančio lango režimas. Automatiškai įkeliant puslapį atidarytas atsiskaitymas gali ją aplenkti – žr. [Atsiskaitymo režimai](/developers/js-client/checkout-modes.md).
5. **Jūsų turinio saugos politika blokuoja `connect-src`**, todėl patikra niekada neužbaigiama. Konsolėje bus parodyta užblokuota užklausa.

`entase.getCheckoutMode()` pateikia nustatytą režimą ir yra greičiausias būdas atskirti konfigūracijos problemas nuo laiko nustatymo problemų.

## „Pane checkout mode enabled for localhost“

To tikimasi kūrimo metu. Klientas naudoja skydelio režimą adresams `localhost` ir `127.0.0.1`, kad galėtumėte kurti pagal įterptąjį išdėstymą, ir įspėja, nes ši prielaida nieko nepasako apie produkcinę aplinką. Prieš išleisdami pridėkite savo tikrą domeną prie patikimų kilmių.

## Iššokantis langas blokuojamas

Naršyklės leidžia atidaryti langą tik naudotojo veiksmo metu. Iškvieskite `book()` sinchroniškai spustelėjimo tvarkytuvėje, o ne po `await`, `fetch` ar `setTimeout`. Žr. [Atsiskaitymo režimai](/developers/js-client/checkout-modes.md).

## Skydelis atidaromas tuščias

Atsiskaitymo „iframe“ buvo užblokuotas. Savo turinio saugos politikos `frame-src` direktyvoje leiskite `https://www.entase.com` – žr. [Kliento diegimas](/developers/js-client/installing-the-client.md).

## „Entase is not defined“

Kai buvo vykdomas jūsų kodas, scenarijus dar nebuvo baigęs įsikelti. Taip nutinka, kai `client.js` įkeliamas su `async` arba `defer`, arba įdedamas po jį naudojančio scenarijaus. Palaukite `entase:ready` įvykio – žr. [Kliento diegimas](/developers/js-client/installing-the-client.md).

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

Egzemplioriui buvo iškviesta `destroy()`, todėl jo nebebus galima naudoti. Vieno puslapio programoje tai paprastai reiškia, kad komponentas pašalino savo klientą, o bendra nuoroda liko. Naujame rodinyje sukurkite naują egzempliorių.

## „Entase frame initialization failed. Container not found.“

Taikoma tik įterpimo valdikliui. Konfigūracijoje nurodytas `obj` kodas neatitinka nė vieno puslapio elemento. Konteinerio id turi būti `entase_`, po kurio eina tas pats kodas, be to, jis turi būti DOM prieš inicijuojant valdiklį – patikrinkite, ar nėra rašybos klaidos arba ar konteineris vėliau neatvaizduojamas jūsų pačių scenarijų.

## Veikia tik paskutinis įvykių klausytojas

`on()` išlaiko vieną atgalinį iškvietimą kiekvienam įvykio pavadinimui, o užregistravus antrąjį pirmasis pakeičiamas. Registruokite vieną kartą ir paskirstykite veiksmus iš to atgalinio iškvietimo – žr. [Įvykiai](/developers/js-client/events.md).

## Iššokantis langas atidaromas netinkamame ekrane

Centrinis taškas apskaičiuojamas sukuriant egzempliorių ir nėra atnaujinamas lankytojui perkėlus naršyklės langą. Prieš rezervuodami perskaičiuokite jį naudodami `setTopWindowCenter()` – žr. [Metodų nuoroda](/developers/js-client/methods.md).

## Užsakymuose trūksta stebėjimo parametrų

Atskiras klientas neskaito jūsų puslapio URL. Perduokite parametrus patys į `tprm` – žr. [Stebėjimas ir sutikimas](/developers/js-client/tracking-and-consent.md). Atminkite, kad `setTracking()` pakeičia visą objektą, o ne sujungia su juo, todėl vėlesnis iškvietimas gali nepastebimai pašalinti ankstesnius parametrus.
