A fizetési felület két mód egyikében nyílik meg.
A Panel egy, közvetlenül az oldaladon belül megjelenített beágyazott panel. Asztali gépen jobbról csúszik be, maximális szélessége pane.width; mobileszközön alulról csúszik fel. A látogató az oldaladon marad, a panel pedig akkor záródik be, ha megnyomja az Escape billentyűt, vagy a halványított területre kattint.
A felugró ablak egy különálló, a látogató képernyőjének közepén megjelenő böngészőablak. Az ügyfél figyeli, hogy az ablak bezárul-e, hogy eltávolíthassa a hátteret elsötétítő réteget.
A beágyazott fizetési felülethez megbízható forrás szükséges
A paneles mód az Entase fizetési felületét a domaineden lévő iframe-ben jeleníti meg, ezért csak az általad kifejezetten engedélyezett domaineken használható. Add hozzá minden, a fizetési felületet megnyitó domaint a Beállítások → Integrációk menü Megbízható források listájához – lásd: Integrációk és a fizetési felület testreszabása.
Számít, hogy szerepel-e a www. előtag. Ha nem vagy biztos abban, melyik változatot szolgálja ki az oldalad, add hozzá mindkettőt.
Ha a domained nem szerepel a listán, a fizetési felület továbbra is működik – egyszerűen felugró ablakban nyílik meg.
Az 'auto' feloldása
Az alapértelmezett checkoutMode: 'auto' beállítás esetén az ügyfél a következő sorrendben dönt:
- Nem HTTPS → felugró ablak. Nem biztonságos oldalon a beágyazott fizetési felület soha nem használható.
localhostvagy127.0.0.1→ panel, a konzolba naplózott figyelmeztetéssel. Ez a fejlesztést segítő kényelmi funkció, hogy a beágyazott elrendezéssel fejleszthess; nem mond semmit arról, hogy az éles domained engedélyezett-e.- Egyéb esetben → az ügyfél a fiók azonosításához elküldött
pkhasználatával megkérdezi az Entase-t, hogy ez a forrás használhat-e beágyazott fizetési felületet. Ha a válasz tartalmazza apaneértéket, a mód panelesre vált.
Amíg ez a válasz meg nem érkezik, a mód popup. Ez az a viselkedés, amely a leginkább meglephet: az ellenőrzés aszinkron, ezért egy közvetlenül az oldal betöltésekor – még mielőtt a látogatónak lehetősége lenne bármire kattintani – meghívott book() hívás egy tökéletesen beállított domainen is megnyithat felugró ablakot. A gyakorlatban egy valódi kattintás mindig jóval az ellenőrzés befejeződése után történik. Ha automatikusan nyitod meg a fizetési felületet, az észlelés helyett kényszerítsd ki a módot.
Mód kényszerítése
Az észlelés teljes kihagyásához állítsd be kifejezetten a checkoutMode értékét:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY', checkoutMode: 'popup' });Vagy írd felül egyetlen foglaláshoz:
entase.book('EVENT_ID', { checkoutMode: 'popup' });A 'pane' mód kényszerítése olyan domainen, amely nem megbízható forrás, nem ad engedélyt – a panel megnyílik, de a benne lévő fizetési felület nem tud kommunikálni az oldaladdal. Tudatos választásként használd a 'popup' módot, és hagyd meg az 'auto' beállítást, ha minden olyan helyen beágyazott fizetési felületet szeretnél, ahol az engedélyezett.
A rendszer figyelmen kívül hagyja a nem felismert értékeket, és 'auto' értékként kezeli őket.
A mód lekérése és módosítása futásidőben
entase.getCheckoutMode(); // 'pane' or 'popup' – never 'auto'
entase.setCheckoutMode('popup'); // applies to every later book() callA getCheckoutMode() a feloldott módot adja vissza, tehát azt jelzi, ami ténylegesen történni fog. A mód 'auto' értékre való visszaállítása újra lefuttatja az észlelést.
Felugró ablakok blokkolása
A böngészők csak felhasználói művelet közben engedélyezik a window.open() hívását. A book() hívást közvetlenül egy kattintáskezelőn belül végezd – ne await, fetch vagy setTimeout után, mert addigra a művelet érvényessége lejár, és a felugró ablak blokkolva lesz.
// 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));Ez csak a felugró ablakos módot érinti. A paneles mód egy elemet hoz létre az oldalon, ezért nem vonatkozik rá ez a korlátozás.