Руководство: оформление платежа
Правильная архитектура интеграции: клиентский браузер общается с вашим сервером, а ваш сервер — с Eleven Pay. API‑ключ никогда не попадает в браузер.
Архитектура
Клиент (браузер/приложение)
│ (ваш сайт/приложение)
▼
Ваш сервер (backend) ── Authorization: Bearer <API_KEY> ──► Eleven Pay API
▲
│ (безопасные данные: reference, действие оплаты)Никогда не делайте так:
Клиент (браузер) ── Authorization: Bearer <API_KEY> ──► Eleven Pay API ← НЕЛЬЗЯКлюч Merchant API — серверный секрет. Его раскрытие в клиенте компрометирует вашу интеграцию.
Поток
- Клиент оформляет заказ на вашем сайте.
- Ваш сервер определяет
amountиmerchant_order_id(не доверяйте сумме из браузера без серверной проверки). - Ваш сервер вызывает
POST /v1/paymentsсIdempotency-Key(см. Создание платежа). - Ваш сервер возвращает браузеру только безопасные данные:
referenceи, при наличии, действие оплаты (qr/redirect). - Клиент выполняет действие оплаты.
- Eleven Pay доставляет вебхук
payment.succeededна ваш сервер — выдайте товар/услугу (обработчик). - При неопределённости сервер сверяется через GET.
Владение суммой
amount и merchant_order_id определяет ваш сервер. Не принимайте сумму, присланную из браузера, без серверной проверки против вашего заказа — иначе клиент сможет подменить цену.
Данные действия оплаты в браузере
Если вы передаёте action.value (QR) или action.url (redirect) в браузер, относитесь к ним как к материалу платёжной сессии: не сохраняйте без необходимости, не логируйте, не отправляйте в сторонние сервисы (см. Действия оплаты).