Checkout — Обзор
Размещённый checkout — это страница, на которой покупатель реально
отправляет средства. Вы не отрисовываете сами селектор актива,
депозитный адрес и QR — SDK открывает нашу страницу (по адресу
https://checkout.infraio.xyz/<session_key>), а мы занимаемся UI.
Три режима
Центрированный overlay-popup, по умолчанию ~560×780. Витрина
остаётся на месте. onSuccess срабатывает, когда popup закрывается
после оплаты. Режим по умолчанию.
Жёсткая навигация на checkout. Лучше всего для браузеров,
блокирующих popup’ы, или для mobile web, где оверлеи выглядят
неестественно. Покупатель возвращается через ваш success_url /
cancel_url из сессии.
iframe внутри вашей страницы. Лучше всего, когда вы контролируете layout полностью и хотите нулевое переключение контекста. Авто-resize через postMessage.
EmbedЭвристика выбора режима
| Если… | Используйте |
|---|---|
| Desktop web, обычная e-commerce | Popup |
| Mobile web | Redirect (на mobile popup’ы часто блокируются) |
| Жёсткая CSP-залоченная админ-панель | Redirect |
| In-app webview / нативный checkout на странице | Embed |
| Хотите полностью кастомный поток покупателя с white-label заголовком | Embed + hideHeader + ваш собственный wallet connect |
Что видит покупатель
Независимо от режима страница показывает:
- Сводку заказа (позиции, общая сумма, валюта). Скрывается
через
hideSummary, если вы уже показали это на своей стороне. - Селектор актива — список комбинаций сеть × актив, включённых вами в настройках мерчанта. Покупатель выбирает одну.
- Депозитный адрес + QR + сумму для выбранной комбинации. Покупатель либо сканирует, либо подключает кошелёк (кнопка WalletConnect), либо платит из заранее подключённого кошелька, переданного вами через SDK. В TRON, Solana и TON покупатель платит напрямую на ваш кошелёк; см. Сети с оплатой напрямую на кошелёк.
- Пульс статуса — «Ожидание перевода», «Tx обнаружена (3/12 подтверждений)», «Оплачено».
- Кнопку Cancel (присутствует всегда) → срабатывает
onCancel.
Кастомизация страницы
| Параметр | Как | Ограничения |
|---|---|---|
| Скрыть сводку заказа | hideSummary: true в SDK | Покупатель всё ещё видит сумму в депозитной панели |
| Скрыть заголовок InfraIO Pay | hideHeader: true в SDK | Сочетайте с walletAddress для полного white-label |
| Предподключить кошелёк | walletAddress + walletChainId + onSignRequest | Обходит модал WalletConnect |
| Локаль | locale в SDK — один из en, vi, ja, ko, es, pt-BR, ru, tr, zh-CN, zh-TW | Локализует страницу checkout и страницы возврата (а также модал подключения кошелька). Неизвестное значение или отсутствие → откат к en |
| Логотип, фирменный цвет | Панель мерчанта → Branding | Применяется глобально, не per-session |
Поведение return URL
В режиме redirect покупатель всегда возвращается на один из:
success_urlиз сессии (при успешно проведённом платеже)cancel_urlиз сессии (при отмене/забрасывании)- Если вы не задали их, SDK возвращается на страницу, открывшую
checkout, с добавлением
?session_id=…&status=success|cancel
В режимах popup и embed навигации нет — управление возвращается
на вашу страницу через onSuccess / onCancel. Используйте их, чтобы
решить, какое UI показать дальше.
CSP и встраивание
Если вы используете режим embed, ваш CSP должен разрешить наш
origin в frame-src:
Content-Security-Policy:
frame-src https://checkout.infraio.xyz https://checkout-dev.infraio.xyz;iframe несёт permissions policy allow="payment; clipboard-write" —
он может вызывать Payment Request API и писать в clipboard, не больше.
Не добавляйте HTML-атрибут sandbox к iframe: он ломает подключение
кошелька. Изоляция iframe обеспечивается границей cross-origin и вашим
CSP frame-src.
Особенности mobile
Мобильные браузеры, особенно Safari, часто блокируют popup’ы. Если ваш
трафик в основном мобильный, используйте mode: "redirect". На маленьких
экранах overlay popup’а также перекрывает зону клавиатуры, из-за чего
выбирать актив неудобно.
White-label брендинг
Полный white-label требует:
hideHeader: trueв SDK- Предподключённый
walletAddress(покупатель не видит WalletConnect) - Ваш логотип + фирменный цвет в брендинге панели мерчанта
- (Опционально) Кастомный домен для страницы checkout —
pay.your-shop.comвместоcheckout.infraio.xyz. Настройте его в панели, как только CNAME подтверждён.
Что дальше
- SDK → JavaScript — полный справочник опций по режимам.
- Концепции → Сессии — что происходит на стороне сервера, пока покупатель на странице.
- Концепции → Сети и активы — какие комбинации сеть × актив доступны в селекторе.