Klient zapisuje w konsoli przeglądarki wszystkie zgłaszane komunikaty, poprzedzając je prefiksem [Entase API]. Najpierw otwórz konsolę.
Checkout otwiera się jako wyskakujące okno zamiast panelu
Najczęstsze przyczyny, w kolejności, w jakiej warto je sprawdzić:
- Domena nie jest zaufanym źródłem. Dodaj ją w Ustawienia → Integracje, uwzględniając prefiks
www., którego faktycznie używa Twoja witryna – zobacz Integracje i dostosowywanie checkoutu. - Strona nie jest udostępniana przez HTTPS. Wbudowany checkout nigdy nie jest używany na niezabezpieczonej stronie.
- Brak klucza publicznego. Bez
pkklient nie może sprawdzić, czy wbudowany checkout jest dozwolony, więc pozostaje przy wyskakującym oknie. book()zostało wywołane zbyt wcześnie. Sprawdzanie uprawnień jest asynchroniczne, a do czasu uzyskania odpowiedzi używany jest tryb wyskakującego okna. Checkout otwierany automatycznie podczas ładowania strony może wyprzedzić tę odpowiedź – zobacz Tryby checkoutu.connect-srcjest blokowane przez Twoją politykę Content Security Policy, więc sprawdzenie nigdy się nie kończy. Konsola wyświetli zablokowane żądanie.
entase.getCheckoutMode() zwraca ustalony tryb i jest najszybszym sposobem na odróżnienie problemów z konfiguracją od problemów z synchronizacją.
„Pane checkout mode enabled for localhost”
To oczekiwane zachowanie podczas programowania. Klient zakłada tryb panelu dla localhost i 127.0.0.1, aby umożliwić tworzenie integracji z wbudowanym układem, i wyświetla ostrzeżenie, ponieważ założenie to nic nie mówi o środowisku produkcyjnym. Przed wdrożeniem dodaj swoją rzeczywistą domenę do zaufanych źródeł.
Wyskakujące okno jest blokowane
Przeglądarki pozwalają otworzyć okno tylko podczas działania użytkownika. Wywołaj book() synchronicznie w obsłudze kliknięcia, a nie po await, fetch ani setTimeout. Zobacz Tryby checkoutu.
Panel otwiera się pusty
Element iframe checkoutu został zablokowany. Zezwól na https://www.entase.com w dyrektywie frame-src polityki Content Security Policy – zobacz Instalowanie klienta.
„Entase is not defined”
Skrypt nie zakończył ładowania, gdy uruchomiono Twój kod. Dzieje się tak, gdy client.js jest ładowany z użyciem async lub defer, albo gdy jest umieszczony po skrypcie, który go wykorzystuje. Poczekaj na zdarzenie entase:ready – zobacz Instalowanie klienta.
„Trying to book an event after the Client has been destroyed”
Na instancji wywołano destroy() i nie można jej już używać. W aplikacji jednostronicowej zwykle oznacza to, że komponent usunął swojego klienta, podczas gdy współdzielone odwołanie nadal pozostało. Utwórz nową instancję dla nowego widoku.
„Entase frame initialization failed. Container not found.”
Dotyczy tylko widżetu osadzanego. Kod obj w konfiguracji nie odpowiada żadnemu elementowi na stronie. Identyfikator kontenera musi mieć postać entase_, po której następuje ten sam kod, a kontener musi istnieć w DOM przed zainicjowaniem widżetu – sprawdź, czy nie ma literówki albo czy kontener nie jest renderowany później przez Twoje skrypty.
Działa tylko ostatni nasłuch zdarzenia
on() zachowuje jedno wywołanie zwrotne na nazwę zdarzenia, a zarejestrowanie drugiego zastępuje pierwsze. Zarejestruj je raz i rozdzielaj obsługę wewnątrz tego wywołania zwrotnego – zobacz Zdarzenia.
Wyskakujące okno otwiera się na niewłaściwym ekranie
Punkt centralny jest obliczany podczas tworzenia instancji i nie jest aktualizowany, gdy odwiedzający przeniesie okno przeglądarki. Przelicz go ponownie przed rezerwacją za pomocą setTopWindowCenter() – zobacz Opis metod.
W zamówieniach brakuje parametrów śledzenia
Samodzielny klient nie odczytuje adresu URL Twojej strony. Przekaż parametry samodzielnie do tprm – zobacz Śledzenie i zgoda. Pamiętaj, że setTracking() zastępuje cały obiekt, zamiast go scalać, więc późniejsze wywołanie może bez ostrzeżenia usunąć wcześniej przekazane parametry.