Sukces i anulowanie checkout
Po zakończeniu sesji checkout klient trafia na domyślny ekran sukcesu/błędu Zevio albo na successUrl / cancelUrl podane przy tworzeniu sesji (lub dziedziczone z oferty, jeśli sesja ich nie nadpisuje).
Domyślny sukces
- Zielona ikona, tytuł Płatność zakończona sukcesem.
- Krótki opis potwierdzenia.
- Opcjonalny przycisk z resultPages.success (oferta lub sesja).
Domyślny błąd / anulowanie
- Czerwona ikona, tytuł Płatność nie powiodła się.
- Komunikat zachęty do ponowienia.
- Spróbuj ponownie - wraca do formularza tej samej sesji, jeśli status to nadal PENDING i nie minął expiresAt.
- Gdy sesja EXPIRED lub COMPLETED - przycisk nieaktywny; wymagana nowa sesja od merchant API.
Personalizacja resultPages
W ofercie (Zaawansowane) lub w payloadzie sesji możesz ustawić własny tytuł (do 120 znaków), opis (500), opcjonalny przycisk (etykieta 100 znaków + HTTPS URL). Puste pola = domyślne copy Zevio.
postMessage (iframe i popup)
Osadzony checkout wysyła zdarzenia do window.parent (iframe) i window.opener (popup). CHECKOUT_STARTED - po accept complete (sessionId, paymentId?, amount, currency, paymentMethod). CHECKOUT_SUCCESS - status COMPLETED. CHECKOUT_FAILED - CANCELLED/EXPIRED/failed. Filtruj event.data.type z prefiksem CHECKOUT_. successUrl / cancelUrl mogą dodatkowo przekierować top-level window.
Retry a status sesji
- PENDING + przed
expiresAt→ Spróbuj ponownie wraca do formularza sesji. - COMPLETED → brak retry; komunikat o zakończonej sesji.
- EXPIRED / CANCELLED → wymagane
POSTnowej sesji checkout z API.
Integracja iframe - nasłuch zdarzeń
Rodzic strony powinien nasłuchiwać message i reagować na CHECKOUT_SUCCESS (np. zamknij modal, odśwież koszyk) oraz CHECKOUT_FAILED (komunikat użytkownika). Nie polegaj wyłącznie na redirect - successUrl może być puste.
Różnica checkout vs link płatności
Sesja checkout może nadpisać strony wyniku parametrami sesji (successUrl, cancelUrl, resultPages w API). POST /payments/{qrId} może opcjonalnie nadpisać successUrl / cancelUrl oferty dla wygenerowanego linku PayPage (nadpisuje też resultPages oferty dla tego linku).
Bezpieczeństwo postMessage
Weryfikuj event.origin w handlerze message - akceptuj tylko domenę Zevio checkout. Ignoruj zdarzenia bez prefiksu CHECKOUT_.