Эта страница использует машинный перевод. При любых несоответствиях обращайтесь к английской документации.
Колбэки
Общая информация
- Представляет собой HTTP-запрос POST к системе клиента, отправляемый на URL, указанный в личном кабинете
- Данные в теле запроса и ответа передаются в формате JSON
- Запрос содержит следующие заголовки:
Content-Type: application/jsonUser-Agent: информация о вызывающей системе
- Даты передаются в UTC в формате ISO 8601. Например:
2024-07-02T12:50:30Z
Требования к URL колбэка
- Должен использоваться безопасный протокол HTTPS
- Должны использоваться доменные имена, а не IP-адреса
Аутентификация
Аутентификация колбэка выполняется путём передачи заголовков в запросе, аналогичных заголовкам, используемым для авторизации API-запросов (см. раздел Авторизация).
Проверка колбэка
Чтобы предотвратить мошенничество, система клиента должна проверять значения указанных заголовков колбэка следующим образом:
- Разница между текущим временем сервера и значением заголовка
X-Processing-Timestampне превышает значения заголовкаX-Processing-RecvWindow - Значение заголовка
X-Processing-Keyсовпадает со значением активного публичного ключа доступа к API клиента - Значение заголовка
X-Processing-Signatureсовпадает с подписью данных запроса, подписанных секретным ключом
Обработка колбэков
Успешный ответ
Если запрос колбэка обработан успешно, система клиента должна ответить HTTP-кодом 200 OK.
Идемпотентность
Если после успешного ответа на запрос колбэка поступает ещё один аналогичный запрос, должен быть сформирован тот же ответ, что и на предыдущий.
Запросы считаются аналогичными, если у них совпадают значения следующих параметров в теле запроса:
type- тип транзакцииid- идентификатор транзакции в процессинговой системе (для проверки адреса -checkId)status- статус транзакции
Уникальность транзакции
Чтобы определить, относятся ли несколько колбэков к одной и той же транзакции или к разным, используйте комбинацию параметров type и id из корневого элемента JSON колбэка. Эта комбинация уникальна для всех транзакций.
Для колбэков проверки адреса (type = AddressCheck) вместо id используется параметр checkId.
Политика повторных попыток
Коды без повторных попыток
Колбэк не будет повторно отправлен, если система клиента отвечает следующими HTTP-кодами:
- 1xx
- 3xx
- 4xx
Коды с повторными попытками
Если ответ содержит HTTP-код из диапазона 5xx, колбэк остаётся в очереди отправки, и попытки доставки продолжаются согласно политике экспоненциальной задержки.
Формула расчёта задержки:
60 seconds + {retry count}^4
Максимальное количество попыток: 10
Интервалы повторных попыток
| Попытка | Интервал | Общее время |
|---|---|---|
| 1 | 61 сек | 61 сек |
| 2 | 76 сек | 137 сек |
| 3 | 141 сек | 278 сек |
| 4 | 361 сек | 594 сек |
| 5 | 685 сек | 1 279 сек |
| 6 | 1 356 сек | 2 635 сек |
| 7 | 2 461 сек | 5 096 сек |
| 8 | 4 156 сек | 9 252 сек |
| 9 | 6 621 сек | 15 873 сек |
| 10 | 10 060 сек | 25 933 сек (~7,2 часа) |