Checkout avaneb ühes kahest režiimist.
Paneel on teie lehel kuvatav manustatud paneel. Töölaual libiseb see sisse paremalt ja selle laiuseks on maksimaalselt pane.width; mobiilis libiseb see üles alt. Külastaja jääb teie saidile ning paneel sulgub, kui ta vajutab Escape'i või klõpsab hämardatud alal.
Hüpikaken on külastaja ekraanil keskele paigutatud eraldi brauseriaken. Klient jälgib, millal aken suletakse, et saaks tausta eemaldada.
Manustatud checkout nõuab usaldusväärset päritolu
Paneelirežiim kuvab Entase checkouti iframe'is teie domeenil, seega on see lubatud ainult domeenidel, mille olete sõnaselgelt autoriseerinud. Lisage iga checkouti avav domeen jaotises Seaded → Integratsioonid olevasse loendisse Usaldusväärsed päritolud – vt Integratsioonid ja checkouti kohandamine.
Oluline on, kas www.-prefiks on kaasatud. Kui te pole kindel, millist vormi teie sait kasutab, lisage mõlemad.
Kui teie domeeni loendis ei ole, töötab checkout siiski – see avaneb lihtsalt hüpikaknana.
Kuidas 'auto' lahendatakse
Vaikimisi väärtusega checkoutMode: 'auto' otsustab klient järgmises järjekorras:
- Pole HTTPS-i → hüpikaken. Manustatud checkouti ei kasutata kunagi ebaturvalisel lehel.
localhostvõi127.0.0.1→ paneel, kusjuures konsooli logitakse hoiatus. See on arenduse mugavus, et saaksite luua manustatud paigutuse vastu; see ei ütle midagi selle kohta, kas teie tootmisdomeen on lubatud.- Muudel juhtudel → klient küsib Entase'ilt, kas see päritolu võib kasutada manustatud checkouti, saates konto tuvastamiseks
pk. Kui vastus sisaldab pane'i, muutub režiim paneelirežiimiks.
Kuni see vastus saabub, on režiim popup. See käitumine üllatab teid kõige tõenäolisemalt: kontroll on asünkroonne, seega võib kohe lehe laadimisel käivitatud book()-kutse – enne, kui külastajal on olnud võimalust millelegi klõpsata – avada hüpikakna ka täiesti õigesti seadistatud domeenil. Praktikas toimub päris klõps alati kaua pärast kontrolli lõpulejõudmist. Kui avate checkouti automaatselt, sundige režiim peale, selle asemel et tuvastamisele tugineda.
Režiimi sundimine
Tuvastamise täielikuks vahelejätmiseks määrake checkoutMode sõnaselgelt:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY', checkoutMode: 'popup' });Või kirjutage see ühe broneeringu jaoks üle:
entase.book('EVENT_ID', { checkoutMode: 'popup' });Väärtuse 'pane' sundimine domeenil, mis ei ole usaldusväärne päritolu, ei anna luba – paneel avaneb, kuid selles olev checkout ei saa teie lehega suhelda. Kasutage 'popup' teadliku valikuna ning jätke 'auto' paika, kui soovite manustatud checkouti kõikjal, kus see on lubatud.
Tundmatu väärtus eiratakse ja seda käsitletakse kui 'auto'.
Režiimi lugemine ja muutmine käitusajal
entase.getCheckoutMode(); // 'pane' or 'popup' — never 'auto'
entase.setCheckoutMode('popup'); // applies to every later book() callgetCheckoutMode() tagastab lahendatud režiimi, seega näitab see, mis tegelikult juhtub. Režiimi tagasi väärtusele 'auto' seadmine käivitab tuvastamise uuesti.
Hüpikakende blokeerijad
Brauserid lubavad window.open()-it ainult kasutajatoimingu ajal. Kutsuge book() välja otse klõpsukäsitlejas – mitte pärast await-d, fetch-i või setTimeout-i, sest selleks ajaks on toiming aegunud ja hüpikaken blokeeritakse.
// Blocked: the gesture is gone by the time book() runs.
button.addEventListener('click', async () => {
const event = await fetch('/api/current-event').then(r => r.json());
entase.book(event.id);
});
// Fine: resolve the id first, open on the click.
button.addEventListener('click', () => entase.book(button.dataset.eventId));See mõjutab ainult hüpikaknarežiimi. Paneelirežiim loob lehele elemendi ja sellele see piirang ei kehti.