Skip to content

Документация по интеграции веб игр

Документация по интеграции партнера с игровым сервисом веб-игр.

Изменения

ДатаВерсияОписание
18.05.170.1Создание документации
20.04.260.2Документация обновлена: удалены неподдерживаемые методы, убран live_slot, обновлен GetListGames, уточнен параметр language, добавлены поддерживаемые валюты

Введение

В этом документе описан процесс интеграции партнера с сервисом веб-игр.

Документация включает методы, необходимые для получения списка игр, запуска демо-режима и запуска игры на реальные деньги через партнерскую авторизацию.

Общее

  • Протокол: HTTPS
  • Публичные методы сервиса вызываются через GET
  • Методы API партнера вызываются через POST
  • Формат тела POST-запросов: application/json
  • Успешный ответ: code = 0

Базовый сценарий интеграции

  1. Партнер запрашивает список доступных игр через GET /GetListGames
  2. Партнер открывает игру через GET /game
  3. Для запуска игры на реальные деньги на стороне партнера должен быть доступен метод POST /Authorization

Подпись запросов

Все подписи считаются через md5.

Строка для подписи собирается по правилу:

text
<MethodName>/ + <value1> + <value2> + ... + <api_key>

Важно:

  • между значениями нет разделителей
  • слеш после имени метода обязателен
  • порядок значений должен строго соответствовать описанию метода

Пример вспомогательной функции:

js
function calcSignature(method, data, apiKey) {
  let sign = method + '/';

  for (const key in data) {
    sign += data[key];
  }

  sign += apiKey;

  return crypto.createHash('md5').update(sign).digest('hex');
}

1. GetListGames

Возвращает список игр, доступных партнеру.

Запрос

GET /GetListGames

Параметры:

ПолеТипОбязательноОписание
partner_idintДаИдентификатор партнера
typestringДаТип игр. Поддерживаемое значение: web_slot
hashstringДаmd5("GetListGames/" + partner_id + type + api_key)

Пример:

text
GET /GetListGames?partner_id=<partner_id>&type=web_slot&hash=<md5_signature>

Успешный ответ

json
{
  "code": 0,
  "message": "Ok",
  "games": [
    {
      "id": 11,
      "title": "Chicago Deluxe",
      "url": "/game",
      "icon": "/icon/novomatic-deluxe/206x206/chicago_deluxe.jpg",
      "class": "Novomatic Deluxe"
    }
  ]
}

Поля ответа:

ПолеТипОписание
codeintКод результата
messagestringОписание результата
gamesarrayСписок игр
games[].idintИдентификатор игры
games[].titlestringНазвание игры
games[].urlstringURL запуска игры
games[].iconstringURL иконки игры
games[].classstringКатегория или класс игры

Коды ответа

КодОписание
0Успешно
10Hash mismatch
15Unavailable type
101Partner is not found
1Internal Error

2. Запуск игры

Для запуска игры используется метод GET /game.

Запрос

GET /game

Параметры:

ПолеТипОбязательноОписание
partner_idintДаИдентификатор партнера
game_idintДаИдентификатор игры
languagestringНетЯзык игры. Параметр опционален
currencystringДаВалюта игрока
player_id`intstring`Для игры на реальные деньги
tokenstringДля игры на реальные деньгиОдноразовый токен игрока

Запуск в браузере и на мобильных устройствах

В браузерной версии игра обычно открывается внутри iframe.

На мобильных устройствах рекомендуется открывать прямую ссылку на игру.

Демо-режим

Для запуска demo-версии используйте валюту DMO.

Пример:

text
GET /game?partner_id=<partner_id>&game_id=<game_id>&language=eng&currency=DMO

Игра на реальные деньги

Пример:

text
GET /game?partner_id=<partner_id>&player_id=<player_id>&game_id=<game_id>&language=eng&currency=<currency>&token=<token>

Для запуска игры на реальные деньги партнер должен передавать player_id и token.

Результат

При успешном запросе сервис возвращает HTML страницы игры.

Коды ответа

КодОписание
12Game is not found
13Partner API return null
101Partner is not found
102Currency is not found
1Internal Error

3. Authorization

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

Запрос

POST <partner_api_url>/Authorization

Тело запроса:

json
{
  "player_id": "<player_id>",
  "game_id": "<game_id>",
  "token": "<token>",
  "hash": "<md5_signature>"
}

Подпись:

text
md5("Authorization/" + player_id + game_id + token + api_key)

Успешный ответ

json
{
  "code": 0,
  "message": "Ok",
  "player_id": 42,
  "currency": "RUB",
  "nick": "Player42",
  "balance": 10000.12,
  "external_session": "session-123"
}

Поля ответа:

ПолеТипОписание
codeintКод результата
messagestringОписание результата
player_id`intstring`
currencystringВалюта игрока
nickstringНик игрока
balancenumberБаланс игрока
external_sessionstringНеобязательный идентификатор внешней сессии

Коды ответа

КодОписание
0Успешно
10Hash mismatch
11Player not found
14Non-valid token
1Internal Error

4. Поддерживаемые валюты

Сейчас поддерживается 122 валютных кода:

AED, ALL, AMD, AOA, ARS, AUD, AZN, BAM, BDT, BGN, BHD, BOB, BRL, BSX, BTC, BYN, CAD, CDF, CFA, CHF, CLP, CNY, COP, CZK, DASH, DEEX, DKK, DMO, DOP, DTC, DZD, EGP, ETB, ETH, EUR, FAU, FBu, GAME, GBP, GEL, GHS, GMC, GMD, GNF, HC, HKD, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JOD, JPY, KES, KGS, KM, KRW, KWD, KZT, LBP, LTC, MAD, MDL, MKD, MMK, MNT, MVR, MXN, MYR, MZN, NGN, NIS, NOK, NZD, OMR, PEN, PHP, PICK, PKR, PLN, PRB, PYG, QAR, RON, RSD, RUB, RUR, SAR, SDG, SEK, SGD, THB, TJS, TMT, TND, TRY, TWD, TZS, UAH, UGX, USD, USDC, USDT, UYU, UZS, VEF, VND, XAF, XEM, XMR, XOF, ZAR, ZEC, ZMW, ZWL, mBT, mETH, uBTC

Примечания:

  • DMO используется для запуска демо-режима
  • при необходимости можно добавить дополнительные валюты по запросу