Интеграция API
Все вызовы API осуществляются с помощью GET запросов.
Для каждого запроса должны передаваться обязательные параметры:
tr - уникальный идентификатор транзакции (максимум 40 символов).
key - публичный ключ доступа (Access Key). Генерируется на странице настройки API.
sign - подпись запроса. Являет собой MD5 хеш от строки: api_uri:secret_key.
Где api_uri - уже готовый подзапрос операции вместе со всеми параметрами, включая tr и key, начиная с /api/...
secret_key - секретный ключ (Secret Key). Генерируется на странице настройки API.
Обратите внимание: конкатенация строки осуществляется через двоеточие.
Для данного примера запроса:
http://sample-api-domain.net/api/last-jackpots/?tr=555&key=gmi6etd371nub9otgdetpga2bb281ja7&start=19800530043055&end=20150922000000&page=1&psize=25&sign=7932b279113e7828df8e8cf86a9dbe53
api_uri будет:
/api/last-jackpots/?tr=555&key=gmi6etd371nub9otgdetpga2bb281ja7&start=19800530043055&end=20150922000000&page=1&psize=25
если secret_key к примеру взять - d1np2s6e99aqfjb8214699uf9na0n28p2gqc8qg6nca8o7fcliv4mhl87rf56m0h
то sign соответственно должен быть - 7932b279113e7828df8e8cf86a9dbe53
Результат ответа на запрос всегда в "application/json;charset=utf-8" формате и статусом 200.
Каждый ответ всегда содержит как минимум два поля:
success - результат выполнения операции. Успешно - true, ошибка - false.
tr - уникальный идентификатор транзакции который был передан в запросе.
В случае ошибки, в ответе дополнительно передаются:
code - код ошибки.
message - описание ошибки.
{ "success" : false, "tr" : "555", "code" : 6, "message" : "FAIL_TRANSACTION_KEY_NOT_UNIQUE" }
При успешном завершении операции, в ответе дополнительно передаются зависящие от конкретного запроса данные.
Если запрос подразумевает постраничную навигацию - в теле ответа также будет присутствовать информация о ней. Например:
{... "_metadata" : { "totalCount" : 6, "page" : 1, "psize" : 10, "totalPages" : 1 } ...}
Формат представления даты (периода) во входящих и исходящих параметрах - "yyyyMMddHHmmss".
Важно! Если несколько раз вызывать одну и ту же операцию с одинаковым идентификатором транзакции - все резульататы кроме первого будут браться из кеша. Необходимо например, если вы вызвали операцию создания счета и по каким либо причинам (обрыв связи например) не получили ответ. Если повторно сделать вызов этой операции - счет повторно создан не будет, а вернется результат самой первой операции с тем же идентификатором транзакции.
Список операций и их параметры с примерами успешных ответов:
Создание нового счета - /api/invoice/new
sum - начальная сумма на счету.
{ "success" : true, "tr" : "1", "invoice" : "30826184148184", "sum" : 2.99 }
Проверка состояния счета - /api/invoice/check
invoice - номер счета.
{ "success" : true, "tr" : "2", "invoice" : "30826184148184", "sum" : 2.99 }
Пополнить счет - /api/invoice/add
invoice - номер счета.
sum - сумма.
{ "success" : true, "tr" : "3", "invoice" : "30826184148184", "sum" : 10.99 }
Закрыть счет - /api/invoice/close
invoice - номер счета.
{ "success" : true, "tr" : "4", "invoice" : "30826184148184", "sum" : 0 }
Получить джекпот и бонус - /api/jp-bonus
{ "success" : true, "tr" : "5", "jackpot" : 10367.95, "bonus" : 1551.92 }
Общие данные о перечислениях по счету - /api/invoice/total
invoice - номер счета.
start - начальный период.
end - конечный период.
{ "success" : true, "tr" : "10", "invoice" : "40811858280039", "sum" : 0.00, "in" : 82.00, "out" : 63.37, "in-out" : 18.63, "ret" : 0.00 }
Получить список субагентов - /api/subagents
parent - если parent пустой - возвращает весь список субагентов текущего пользователя API. Если parent задан - то его субагентов.
page - текущая страница. (Опционально. По умолчанию - 1)
psize - количество елементов на странице. (Опционально. По умолчанию - 10)
{ "success" : true, "tr" : "20", "_metadata" : { "totalCount" : 6, "page" : 1, "psize" : 10, "totalPages" : 1 }, "sub-agents" : [ { "parent" : "-", "login" : "teller1", "role" : "ROLE_TELLER", "credit" : 10000.00, "enabled" : true }, { "parent" : "-", "login" : "agent1", "role" : "ROLE_AGENT", "credit" : 541664.18, "enabled" : true }, { "parent" : "-", "login" : "teller2", "role" : "ROLE_TELLER", "credit" : 989590.00, "enabled" : true }, { "parent" : "-", "login" : "teller3", "role" : "ROLE_TELLER", "credit" : 10000.00, "enabled" : true }, { "parent" : "-", "login" : "teller4", "role" : "ROLE_TELLER", "credit" : 70356.76, "enabled" : true }, { "parent" : "-", "login" : "teller5", "role" : "ROLE_TELLER", "credit" : 100000.00, "enabled" : true } ] }
Возможные роли: ROLE_TELLER(кассир), ROLE_AGENT(агент) и ROLE_MANAGER(руководитель зала)
Сумарная финансовая информация по субагенту за определенный период - /api/report-user
Баланс, Депозит, Выплата, Результат, Счета
login - логин субагента.
start - начальный период.
end - конечный период.
{ "success" : true, "tr" : "30", "credit" : 541664.18, "deposit" : 17000.00, "close" : 8663.80, "result" : 8336.20, "invoice" : 5986.10 }
Сделать перевод субагенту или вернуть деньги от субагента - /api/transfer
Субагент с ролью ROLE_TELLER(кассир) не имеет права делать перевод.
login - логин субагента которому нужно сделать перевод.
sum - сумма перевода. Если сумма положительная - делаем перевод. Если отрицательная - возвращаем деньги от субагента
{ "success" : true, "tr" : "40", "credit" : 7684013.62 }
Получить историю игр по счету - /api/invoice/games-history
invoice - номер счета.
page - текущая страница. (Опционально. По умолчанию - 1)
psize - количество елементов на странице. (Опционально. По умолчанию - 10)
{ "success" : true, "tr" : "50", "_metadata" : { "totalCount" : 1, "page" : 1, "psize" : 25, "totalPages" : 1 }, "game-history" : [ { "time" : "20140503154701", "name" : "no game", "event" : "login", "value" : 0.00, "credit" : 99406.40 } ] }
Последние джекпоты - /api/last-jackpots
start - начальный период.
end - конечный период.
page - текущая страница. (Опционально. По умолчанию - 1)
psize - количество елементов на странице. (Опционально. По умолчанию - 10)
{ "success" : true, "tr" : "60", "_metadata" : { "totalCount" : 57233, "page" : 2, "psize" : 2, "totalPages" : 28617 }, "last-jackpots" : [ { "type" : 2, "date" : "20141105073936", "login" : "greengrey", "value" : 195.00, "bet" : 2000.00, "ip" : "95.54.253.237", "amount" : 0.00 }, { "type" : 2, "date" : "20141105073725", "login" : "greengrey", "value" : 183.00, "bet" : 2000.00, "ip" : "95.54.253.237", "amount" : 0.00 } ] }