# Režimy platby

> Ako klient vyberá medzi vloženým panelom a vyskakovacím oknom, prečo o tom rozhodujú dôveryhodné zdroje a čo môžete očakávať počas lokálneho vývoja.

Platba sa otvorí v jednom z dvoch režimov.

**Panel** je vložený panel vykreslený na vašej stránke. Na počítači sa vysunie sprava, pričom jeho šírka je obmedzená hodnotou `pane.width`; na mobile sa vysunie zdola. Návštevník zostáva na vašom webe a panel sa zatvorí po stlačení klávesu Escape alebo kliknutí na stmavenú oblasť.

**Vyskakovacie okno** je samostatné okno prehliadača vycentrované na obrazovke návštevníka. Klient sleduje, či sa okno zatvorilo, aby mohol odstrániť prekrytie pozadia.

## Vložená platba vyžaduje dôveryhodný zdroj

Režim panela vykresľuje platbu Entase v prvku iframe na vašej doméne, preto je povolený iba pre domény, ktoré ste výslovne autorizovali. Každú doménu, ktorá otvára platbu, pridajte do položky **Dôveryhodné zdroje** v časti Nastavenia → Integrácie – pozrite si [Integrácie a prispôsobenie platby](/organizers/settings/integrations-and-checkout-customization.md).

Záleží na tom, či je zahrnutá predpona `www.`. Ak si nie ste istí, ktorú formu váš web používa, pridajte obe.

Ak vaša doména nie je v zozname, platba bude aj naďalej fungovať – jednoducho sa otvorí ako vyskakovacie okno.

## Ako sa vyhodnocuje `'auto'`

Pri predvolenom nastavení `checkoutMode: 'auto'` klient rozhoduje v tomto poradí:

1. **Nie HTTPS** → vyskakovacie okno. Vložená platba sa nikdy nepoužije na nezabezpečenej stránke.
2. **`localhost` alebo `127.0.0.1`** → panel s upozornením zapísaným do konzoly. Ide o uľahčenie vývoja, aby ste mohli vytvárať vložené rozloženie; nevypovedá nič o tom, či je vaša produkčná doména povolená.
3. **V opačnom prípade** → klient sa Entase opýta, či môže tento zdroj používať vloženú platbu, pričom na identifikáciu účtu odošle `pk`. Ak odpoveď zahŕňa panel, režim sa nastaví na panel.

Kým táto odpoveď nepríde, režim je **vyskakovacie okno**. Toto správanie vás s najväčšou pravdepodobnosťou prekvapí: kontrola je asynchrónna, takže volanie `book()`, ktoré sa spustí okamžite pri načítaní stránky – skôr než návštevník dostane možnosť na čokoľvek kliknúť – môže aj na dokonale nakonfigurovanej doméne stále otvoriť vyskakovacie okno. V praxi skutočné kliknutie vždy nastane dlho po dokončení kontroly. Ak platbu otvárate automaticky, režim vynúťte namiesto spoliehania sa na detekciu.

## Vynútenie režimu

Nastavte `checkoutMode` explicitne, aby sa detekcia úplne preskočila:

```js
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY', checkoutMode: 'popup' });
```

Alebo ho prepíšte pre jednu rezerváciu:

```js
entase.book('EVENT_ID', { checkoutMode: 'popup' });
```

Vynútenie režimu `'pane'` na doméne, ktorá nie je dôveryhodným zdrojom, neudeľuje povolenie – panel sa otvorí, ale platba v ňom nemôže komunikovať s vašou stránkou. Použite `'popup'` ako zámernú voľbu a ponechajte `'auto'`, ak chcete vloženú platbu všade, kde je povolená.

Nerozpoznaná hodnota sa ignoruje a spracuje ako `'auto'`.

## Zistenie a zmena režimu za behu

```js
entase.getCheckoutMode();        // 'pane' or 'popup' — never 'auto'
entase.setCheckoutMode('popup'); // applies to every later book() call
```

`getCheckoutMode()` vracia *vyhodnotený* režim, takže uvádza, čo sa skutočne stane. Nastavením režimu späť na `'auto'` sa detekcia spustí znova.

## Blokovanie vyskakovacích okien

Prehliadače povoľujú `window.open()` iba počas interakcie používateľa. Zavolajte `book()` priamo v obsluhe kliknutia – nie po `await`, `fetch` alebo `setTimeout`, keď už interakcia vypršala a vyskakovacie okno je zablokované.

```js
// 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));
```

Týka sa to iba režimu vyskakovacieho okna. Režim panela vytvára prvok na stránke a nevzťahuje sa naň toto obmedzenie.
