Интеграция с серверной частью
Seamless Wallet API введение
Партнер - сторона, интегрирующая игры.
Бренд - вебсайт казино партнера на котором пользователи играют в игры и делают ставки.
Провайдер - сторона, предоставляющая игры (Aviatrix).
В данной секции описаны основные методы, которые партнеру необходимо реализовать на своей стороне. Эти методы будут вызываться провайдером непосредственно во время игры.
Для старта игры ознакомьтесь с документом Game API
Не совместимо с Transfer Wallet API
IP Whitelisting & Firewalls
Для обеспечения безопасного соединения и контроля над трафиком мы рекомендуем всем нашим партнерам использовать L7 Firewall и фильтрацию по заголовку запроса. В частности, каждый наш исходящий запрос содержит X-Auth-Signature поле в заголовке, которое необходимо для подтверждения подлинности хоста.
Мы крайне не рекомендуем использовать технологии IP Whitelisting и L4 Firewall. Такой подход накладывает серьезные ограничения на полноценное использование современных облачных технологий, которые предоставляют хостинг сервисы.
Если партнер настаивает на использовании IP Whitelisting и L4 Firewall значит он соглашается на периодический даунтайм наших сервисов и обновление своих whitelist-списков в течение одного рабочего дня.
Seamless Wallet API методы
Все POST запросы содержат HTTP заголовок X-Auth-Signature, необходимый для подтверждения подлинности хоста. Эта операция позволяет отказаться от IP whitelist при интеграции, так как последний лишает возможности провайдера оперативно масштабироваться (горизонтально), не предупреждая при этом партнера.
Если бренд недоступен или отвечает ошибками 5xx, то запрос будет отправлен несколько раз с увеличением интервала повторения. Пример интервалов повторения [1s, 2s, 5s ... 1h, 3h]
Все бонусные ставки рассчитываются внутри игры и не передаются платформе. Только выигрыши по бонусам будут переданы через
/transactions/promoWin. Этот запрос также используется для начисления внутри-игровых наград.
Для /bet, /win и /transactions/promoWin мы ожидаем идемпотентное поведение в случае дублирования.
Если первая транзакция была успешно обработана, то при повторной транзакции изменений не производится, и возвращается такой же успешный ответ, как если бы она была обработана в первый раз.
В рамках интеграции клиентского приложения, бренд должен передать в URL sessionToken пользователя.
Рекомендуем выбирать время жизни (TTL) токена между 1 час - 24 часа.
В случае, когда в бренд придет /bet или /playerInfo запрос с истекшим токеном пользователя - необходимо ответить соответствующей ошибкой (см. раздел ошибок клиента).
/win и /transactions/promoWin должны быть обработаны на стороне бренда, даже если sessionToken к этому времени истек.
На все исходящие запросы установлено стандартное время жизни в X сек. После истечения этого времени запрос будет отменен и отправлен повторно. Внимательно ознакомьтесь с описанием каждого эндпоинта, чтобы узнать конкретные значения.
/health
Метод вызывается для проверки работоспособности. Желательно, чтобы он выполнял запрос в базу данных или в кэш. Метод не требует аутентификации.
В ответ ожидается получение HTTP кода 200 (OK).
Ожидаемое время ответа (latency) < 500 мс, превышение 2 сек не должно допускаться. По истечении 2 сек запрос отменяется и считается ошибочным.
Пример запроса
GET /health HTTP/1.1
/playerInfo
Метод вызывается, когда необходимо получить информацию о пользователе (баланс, валюту, страну). При этом передается sessionToken пользователя, который был вставлен партнером в URL клиентской части провайдера при интеграции.
Ожидаемое время ответа (latency) < 500 мс, превышение 2 сек не должно допускаться. По истечении 2 сек запрос отменяется и считается ошибочным.
Пример запроса
POST /playerInfo HTTP/1.1
Content-Type: application/json
X-Auth-Signature: <signature>
{
"cid": "somebrand",
"sessionToken": "some4session7token5",
"timestamp": 1234567890
}
| Параметр | Описание | Тип | Требования | Пояснение |
|---|---|---|---|---|
| cid | уникальный идентификатор бренда партнера | string | обязательный | значение из URL параметров провайдера игр при интеграции |
| sessionToken | токен с пользовательской сессией | string | обязательный | значение из URL параметров провайдера игр при интеграции |
| timestamp | время операции | integer | обязательный | Unix time формат |