# Problēmu novēršana

> Biežākās kļūmes, kas rodas, integrējot klientu – iekļautā norēķināšanās pārslēdzas uz uznirstošo logu, bloķēti logi, trūkstoši konteineri un konsoles brīdinājumi.

Klients visu, par ko tas ziņo pārlūkprogrammas konsolē, reģistrē ar prefiksu `[Entase API]`. Vispirms atveriet konsoli.

## Norēķināšanās paneļa vietā tiek atvērta uznirstošajā logā

Parastie cēloņi pārbaudāmajā secībā:

1. **Domēns nav uzticama izcelsme.** Pievienojiet to sadaļā Settings → Integrations, ievērojot `www.` prefiksu, ko jūsu vietne faktiski izmanto – skatiet [Integrācijas un norēķināšanās pielāgošana](/organizers/settings/integrations-and-checkout-customization.md).
2. **Lapa netiek nodrošināta, izmantojot HTTPS.** Nedrošā lapā iekļautā norēķināšanās nekad netiek izmantota.
3. **Nav publicējamās atslēgas.** Bez `pk` klients nevar pārbaudīt, vai iekļautā norēķināšanās ir atļauta, tāpēc tas paliek uznirstošā loga režīmā.
4. **`book()` tika palaista pārāk agri.** Atļaujas pārbaude ir asinhrona, un līdz atbildei režīms ir uznirstošais logs. Norēķināšanās, kas tiek atvērta automātiski lapas ielādes laikā, var to apsteigt – skatiet [Norēķināšanās režīmi](/developers/js-client/checkout-modes.md).
5. **Jūsu Content Security Policy bloķē `connect-src`**, tāpēc pārbaude nekad netiek pabeigta. Konsolē būs redzams bloķētais pieprasījums.

`entase.getCheckoutMode()` ziņo par atrisināto režīmu un ir ātrākais veids, kā atšķirt konfigurācijas problēmas no laika noteikšanas problēmām.

## "Pane checkout mode enabled for localhost"

Tas ir sagaidāms izstrādes laikā. Klients pieņem paneļa režīmu vietnēm `localhost` un `127.0.0.1`, lai jūs varētu izstrādāt, izmantojot iekļauto izkārtojumu, un brīdina, jo šis pieņēmums neko nepasaka par produkcijas vidi. Pirms publicēšanas pievienojiet savu īsto domēnu uzticamajām izcelsmēm.

## Uznirstošais logs ir bloķēts

Pārlūkprogrammas ļauj atvērt logu tikai lietotāja darbības laikā. Izsauciet `book()` sinhroni klikšķa apstrādātājā, nevis pēc `await`, `fetch` vai `setTimeout`. Skatiet [Norēķināšanās režīmi](/developers/js-client/checkout-modes.md).

## Panelis tiek atvērts tukšs

Norēķināšanās iframe tika bloķēts. Savā Content Security Policy direktīvā `frame-src` atļaujiet `https://www.entase.com` – skatiet [Klienta instalēšana](/developers/js-client/installing-the-client.md).

## "Entase is not defined"

Skripta ielāde vēl nebija pabeigta, kad tika palaists jūsu kods. Tā notiek, ja `client.js` tiek ielādēts ar `async` vai `defer`, vai tiek ievietots aiz skripta, kas to izmanto. Sagaidiet notikumu `entase:ready` – skatiet [Klienta instalēšana](/developers/js-client/installing-the-client.md).

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

Instancei tika izsaukta `destroy()`, un to vairs nevar izmantot. Vienas lapas lietojumprogrammā tas parasti nozīmē, ka komponents noņēma savu klientu, kamēr koplietota atsauce palika spēkā. Izveidojiet jaunu instanci jaunajam skatam.

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

Tikai iegulšanas logrīkam. Konfigurācijā norādītais `obj` kods neatbilst nevienam lapas elementam. Konteinera id jābūt `entase_`, kam seko tas pats kods, un tam jāpastāv DOM pirms logrīka inicializācijas – pārbaudiet, vai nav drukas kļūdas vai konteinera, ko jūsu skripti atveido vēlāk.

## Tiek palaists tikai pēdējais notikuma klausītājs

`on()` katram notikuma nosaukumam saglabā vienu atpakaļizsaukumu, un, reģistrējot otru, pirmais tiek aizstāts. Reģistrējiet vienreiz un izplatiet tālāk no šī atpakaļizsaukuma – skatiet [Notikumi](/developers/js-client/events.md).

## Uznirstošais logs tiek atvērts nepareizajā ekrānā

Centrālais punkts tiek aprēķināts instances izveides brīdī un netiek atjaunināts, kad apmeklētājs pārvieto pārlūkprogrammas logu. Pirms rezervēšanas pārrēķiniet to ar `setTopWindowCenter()` – skatiet [Metožu atsauce](/developers/js-client/methods.md).

## Pasūtījumos trūkst izsekošanas parametru

Atsevišķais klients nenolasa jūsu lapas URL. Paši pārsūtiet parametrus uz `tprm` – skatiet [Izsekošana un piekrišana](/developers/js-client/tracking-and-consent.md). Ņemiet vērā, ka `setTracking()` aizstāj visu objektu, nevis sapludina to, tāpēc vēlāks izsaukums var nemanāmi atmest iepriekšējos parametrus.
