Перейти к основному содержимому

Интеграция с серверной частью

Game API введение

примечание

Партнер - сторона, интегрирующая игры.

Провайдер - сторона, предоставляющая игры (Aviatrix).

В данном разделе описаны методы, которые уже реализованы на стороне провайдера. Они вызываются партнером для запуска игры и для получения информации по прошедшему игровому раунду.

Game API методы

к сведению

Все POST запросы содержат HTTP заголовок X-Auth-Signature, необходимый для подтверждения подлинности хоста. Эта операция позволяет отказаться от IP whitelist при интеграции, так как последний лишает возможности провайдера оперативно масштабироваться (горизонтально), не предупреждая при этом бренд.

подсказка

Базовый url можно получить по запросу у интеграционного менеджера.

/game/url

Метод используется для генерации URL-адреса для запуска игры с заданными параметрами.

Пример запроса

Внимание

Заголовки запроса, указанные в примере, обязательны: Accept, Content-Type, X-Auth-Signature

POST /game/url HTTP/1.1
Content-Type: application/json
Accept: application/json
X-Auth-Signature: <signature>

{
"cid": "someplatform",
"productId": "nft-aviatrix",
"sessionToken": "5fc0cbd8-6328-43a5-a016-c075950d5393",
"lang": "en",
"lobbyUrl": "https://example.com",
"isDemo": false,
"promoCode": "ABCD2025",
"hideExitButton": false
}
ПараметрОписаниеТипТребованияПояснение
cidуникальный идентификатор платформыstringобязательныйидентификатор может быть одинаковым для всех сред в рамках бренда
productIdидентификатор игрыstringобязательныйтекущие идентификаторы: nft-aviatrix, second-chance, aviatrix-fruits
sessionTokenтокен игровой сессииstringобязательный при isDemo=falseтокен должен быть сгенерирован брендом для дальнейших запросов от серверной части провайдера. Ожидаемая длина: 1-255 символов. Не требуется для демо режима
langкод языкаstringопциональныйформат кода ISO 639-1. Значение по умолчанию en
lobbyUrlURL лоббиstringопциональныйнеобходим для перенаправлений на главную страницу бренда
isDemoфлаг демо режимаboolобязательный для демо режиманеобходим для включения демо режима игры. Обязательный параметр для демо режима
promoCodeпромокодstringопциональныйнужен для прямого открытия формы ввода промокода. Если значение передано (promoCode=promocode1&…), произойдет открытие модального окна и заполнение инпута. Если параметр пустой (promoCode=&…), откроется форма ввода с пустым значением инпута.
hideExitButtonпозволяет управлять видимостью кнопки выхода в менюboolопциональныйпозволяет управлять видимостью кнопки выхода в меню, переопределяя её отображение, если оно включено в конфигурации

Пример ответа от сервера

HTTP/1.1 200 OK
{
"url": "https://domain.com?cid=somebrand&productId=nft-aviatrix&sessionToken=qwerty12345&lang=en&lobbyUrl=https://example.com"
}
ПараметрОписаниеТипПояснение
urlURL запуска игрыstringполный URL для запуска игры с параметрами

/game/list

Метод используется для отображения списка доступных для бренда игр.

Пример запроса

Внимание

Заголовки запроса, указанные в примере, обязательны: Accept, Content-Type, X-Auth-Signature

POST /game/list HTTP/1.1
Content-Type: application/json
Accept: application/json
X-Auth-Signature: <signature>

{
"cid": "someplatform"
}
ПараметрОписаниеТипТребованияПояснение
cidуникальный идентификатор платформыstringобязательныйидентификатор может быть одинаковым для всех сред в рамках бренда

Пример ответа от сервера

HTTP/1.1 200 OK
{
"games": [
{
"productId": "nft-aviatrix",
"name": "Aviatrix",
"rtp": "97.00"
}
]
}
ПараметрОписаниеТипПояснение
gamesсписок игрarrayв списке отображаются только игры доступные для указанного бренда
productIdидентификатор игрыstringтекущие идентификаторы: nft-aviatrix, second-chance, aviatrix-fruits
nameнаименование игрыstringдоступные языки: en
rtpпроцент возвратов игрокамstringвысчитывается в долгосрочной перспективе

/game/round

Предоставление информации о результатах раунда или конкретной ставки пользователя.
По умолчанию используется формат ответа application/json, для получения HTML страницы необходимо передать HTTP заголовок ACCEPT со значением text/html

Пример запроса для любой игры

Внимание

Заголовки запроса, указанные в примере, обязательны: Accept, Content-Type, X-Auth-Signature

POST /game/round HTTP/1.1
Content-Type: application/json
Accept: application/json
X-Auth-Signature: <signature>

{
"cid": "someplatform",
"playerId": "john",
"productId": "nft-aviatrix",
"roundId": "2028207"
}
ПараметрОписаниеТипТребованияПояснение
cidуникальный идентификатор платформыstringобязательныйзначение из URL параметров провайдера игр при интеграции
playerIdидентификатор пользователяstringобязательныйзначение из запроса /playerInfo
productIdидентификатор игры в рамках платформыstringобязательныйтекущие идентификаторы: nft-aviatrix, second-chance, aviatrix-fruits
roundIdидентификатор матча (раунда игры)stringобязательный при отсутствии betIdзначение из запроса /bet
betIdидентификатор ставкиstringобязательный при отсутствии roundIdзначение из запроса /bet

Примеры ответов от сервера для Aviatrix

HTML

Game Round

JSON
HTTP/1.1 200 OK

{
"roundId": "3838216",
"roundOdd": 4.19,
"finishedAt": "2024-10-18T08:38:02Z",
"bets": [
{
"id": "af5ec231-42dd-4c3d-5eaf-ebe859da69da",
"currency": "EUR",
"betAmount": 100,
"winAmount": 140,
"odds": 1.40
},
{
"id": "c4d3312c-69da-475c-af5e-be8e59dadd42",
"currency": "EUR",
"betAmount": 100,
"winAmount": 152,
"odds": 1.52
}
]
}
Детали параметров
ПараметрОписаниеТипПояснение
roundIdидентификатор матча (раунда игры)stringзначение из запроса /game/round
roundOddsкоэффициент завершения матча (раунда игры)doubleкоэффициент, с которым завершился раунд
finishedAtвремя завершения матча (раунда игры)timestampformat: yyyy-MM-dd’T’HH:mm:ss.SSSZ
betsставки пользователяarrayвсе или указанная в betId ставка пользователя
bet.idидентификатор ставкиstringid ставки
bet.currencyвалюта ставкиstringISO-4217-3 format. валюта, в которой пользователь сделал ставку
bet.oddsкоэффициент выигрышаdoubleкоэффициент, на котором игрок забрал выигрыш. odds = 0, если игрок проиграл
bet.betAmountсумма ставкиintegerсумма ставки пользователя в формате minor currency unit (учитывая центы, т.е. число умноженное на 100)
bet.winAmountсумма выигрышаintegerсумма выигрыша пользователя в формате minor currency unit (учитывая центы, т.е. число умноженное на 100)

Примеры ответов от сервера для Aviatrix Fruits

HTML

Slots Game Round

JSON
HTTP/1.1 200 OK

{
"roundId": "699252",
"finishedAt": "2026-05-08T12:18:10Z",
"bets": [
{
"id": "8a36e6cd-882d-4595-82c2-d9ed77e15a6e",
"currency": "EUR",
"betAmount": 1000,
"winAmount": 5000,
"odds": 5
}
],
"reels": [
[
"c",
"c",
"c",
"g",
"f"
],
[
"f",
"c",
"d",
"e",
"g"
],
[
"f",
"d",
"d",
"g",
"f"
]
],
"winLines": [
{
"line": 1,
"symbol": "C",
"count": 3,
"winAmount": 5000
}
]
}
Детали параметров
ПараметрОписаниеТипПояснение
roundIdидентификатор матча (раунда игры)stringзначение из запроса /game/round
finishedAtвремя завершения матча (раунда игры)timestampformat: yyyy-MM-dd’T’HH:mm:ss.SSSZ
betsставки пользователяarrayвсе или указанная в betId ставка пользователя
bet.idидентификатор ставкиstringid ставки
bet.currencyвалюта ставкиstringISO-4217-3 format. валюта, в которой пользователь сделал ставку
bet.oddsкоэффициент выигрышаdoubleкоэффициент, на котором игрок забрал выигрыш. odds = 0, если игрок проиграл
bet.betAmountсумма ставкиintegerсумма ставки пользователя в формате minor currency unit (учитывая центы, т.е. число умноженное на 100)
bet.winAmountсумма выигрышаintegerсумма выигрыша пользователя в формате minor currency unit (учитывая центы, т.е. число умноженное на 100)
reelsфинальная комбинацияarrayразмер: 5 барабанов по 3 символа
winLinesвыигрышные линииarrayпустой список в случае проигрыша
winLines.lineномер выигрышной линииintegerпорядковый номер
winLines.symbolсимвол выигрышной линииstringтекущие идентификаторы: SC, A, B, C, D, E, F, G
winLines.countколичество символов данной линииintegerзначения в диапазоне: 3-5
winLines.winAmountсумма выигрыша данной линииintegerвалюта выигрыша указана в bet.currency