ОБЩАЯ ИНФОРМАЦИЯ
Данный API предоставляет доступ к некоторой информации о картах Game-Keeper и позволяет проводить ряд операций. Этот API является ПО промежуточного слоя, не следует предоставлять к нему доступ конечному пользователю (владельцу карты), т.к. в API отсутствуют возможности аутентификации и авторизации.
Если запрос к API был обработан, API отвечает HTTP кодом 200 OK, и возвращает информацию в json следующего вида
{ "data": null, "errors": [] }
data - запрашиваемые данные, зависят от запроса,
errors - список ошибок, возникших при выполнении запроса.
Успешность выполнения запроса определяется отсутствием ошибок.
ПОДДЕРЖИВАЕМЫЕ ТИПЫ ЗАПРОСОВ
Информация о карте
Запрос
GET /api2/cards ? [n=<номер карты>]
Ответ
Различные данные о карте.
Пример
{ "errors": [], "data":{ "card": 200, "bonus": 24, "bonusI": 0, "points": 11585.5, "moneyCash": 9903, "moneyBCard": 1658.5, "moneyCS": 0, "tickets": 0, "moneyAccum": 13498.5, "cardPrice": 0, "level": "Стандартный", "state": 1, "activation": "2018-02-15T20:13:52.0+03:00" } }
История операций
Запрос
GET /api2/cards/history ? [n=<номер карты>]
Ответ
Последние 100 операций по карте.
Пример
{ "errors": [], "data": [ { "date": "2018-05-04T14:37:20.160+03:00", "name": "Возврат пополнения баланса (ОчкиД_ПК)", "value": -11, "u1code": "", "u2code": "ОчкиД_ПК" }, { "date": "2018-05-04T14:37:20.157+03:00", "name": "Возврат пополнения баланса", "value": -11, "u1code": "Visa", "u2code": "" }, { "date": "2018-04-12T14:43:50.847+03:00", "name": "Покупка очков", "value": 12, "u1code": "руб.", "u2code": "" }, { "date": "2018-04-12T14:43:50.843+03:00", "name": "Покупка очков (ОчкиДеньги)", "value": 12, "u1code": "", "u2code": "ОчкиДеньги" } ] }
Пополнение счета
Запрос
POST /api2/cards/deposit ? [n=<номер карты>] & [amount=<сумма пополнения>] & [currid=<идентификатор валюты>]
Ответ
Содержит сумму бонусов, начисленную за пополнение, баланс карты после пополнения и номер операции пополнения в Game-Keeper. Этот номер используется при отмене операции.
Пример
{ "errors": [], "data": { "orderNo": 67508, "points": 17847, "bonus": 0 } }
Отмена пополнения счета
Запрос
POST /api2/cards/opercancel ? [opid=<номер операции>]
Ответ
Содержит успешность выполнения отмены.
Пример
{ "errors": [], "data": null }
Информация о владельце карты
Запрос
GET /api2/cards//owner ? [n=<номер карты>]
Ответ
Различные данные о владельце карты.
{ "errors": [], "data": { "card": 208, "first_name": "Иван", "last_name": "Иванов", "middle_name": "Иванович", "birthday": "1999-09-19T00:00:00.0+03:00", "gender": 0, "phone": "+71234567890", "email": "az@b.c", "address": "address", "mailing_consent": true } }
Изменение информации о владельце карте
Запрос
POST /api2/cards//owner ? [n=<номер карты>]
Данные о владельце в теле запроса в json.
{ "first_name": "Иван", "last_name": "Иванов", "middle_name": "Иванович", "birthday": "1999-09-19T00:00:00.0+03:00", "gender": 0, "phone": "+71234567890", "email": "az@b.c", "address": "address", "mailing_consent": true }
Пол: 0-женский, 1-мужской.
Телефон следует передавать строкой в виде последовательности цифр без разделителей предваряемой знаком +, если с номером телефона планируется работа через приложения Гейм-Кипер (касса, редактор и т.п.). Если номер телефона будет использоваться только через web api, то формат строки может быть любой. Корректность и существование номера телефона или e-mail не проверяются.
Ответ
Содержит успешность выполнения запроса.
Пример
{ "errors": [], "data": null }
Информация о совладельцах карты
Запрос
GET /api2/cards//coowners ? [n=<номер карты>]
Ответ
Различные данные о совладельцах карты.
{ "errors": [], "data": [ { "id": 1, "name": "Имя", "birthday": "2001-02-05T00:00:00.0+03:00", "gender": 1 }, { "id": 6, "name": "Имя", "birthday": "2009-12-05T00:00:00.0+03:00", "gender": 1 }, { "id": 7, "name": "Имя", "birthday": "2015-12-05T00:00:00.0+03:00", "gender": 0 } ] }
Изменение информации о совладельце карте
Запрос
POST /api2/cards//coowner ? [n=<номер карты>] & [id=<"id" совладельца при обновлении>]
Данные о совладельце в теле запроса в json.
{ "name": "Имя", "birthday": "2004-12-05T00:00:00.0+03:00", "gender": 0 }
Пол: 0-женский, 1-мужской.
Ответ
Содержит успешность выполнения запроса.
Пример
{ "errors": [], "data": null }
ОБРАБОТКА ОШИБОК
Ошибка (элемент массива errors) имеет свойства:
text - текст ошибки,
app - код приложения, сгенерировавшего ошибку; при технических ошибках (ошибках подключения) указывает работоспособность какого компонента системы (связи между какими компонентами системы) следует проверять, восстанавливать.
Возможные значения:
ApiSrv - сервер, обрабатывающий вызовы api
ExtSrv - промежуточный сервер
PosSrv - кассовый сервер
Unknown
Примеры
{ "errors": [ { "app": "ApiSrv", "text": "gender: The field gender must be between 0 and 1." }, { "app": "ApiSrv", "text": "first_name: The field first_name must be a string with a maximum length of 42." } ], "data": null } { "errors": [ { "app": "ExtSrv", "text": "Socket Error # 10061\r\nConnection refused." } ], "data": null } { "errors": [ { "app": "PosSrv", "text": "Карта не зарегистрирована." } ], "data": null }