Данный API предоставляет доступ к некоторой информации о картах Game-Keeper и позволяет проводить ряд операций. Этот API является ПО промежуточного слоя, не следует предоставлять к нему доступ конечному пользователю (владельцу карты), т.к. в API отсутствуют возможности аутентификации и авторизации.
Если запрос к API был обработан, API отвечает HTTP кодом 200 OK, и возвращает информацию в json следующего вида
{ "data": null, "errors": [] }
data - запрашиваемые данные, зависят от запроса,
errors - список ошибок, возникших при выполнении запроса.
Успешность выполнения запроса определяется отсутствием ошибок.
GET /api2/cards ? [n=<номер карты>]
Различные данные о карте.
Пример
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,
"personalized": true, "in_bonus_program": 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,
"personalized": true, "in_bonus_program": 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
}
POST /api2/cards/activate ? [altcode=<альтернативный код карты (внешний ид)>]
Содержит номер активированной карты.
Пример
{ "errors": [], "data": { "cardNo": 1000000913 } }
GET /api2/cards/search ? [altcode=<альтернативный код карты (внешний ид)>]
Если карта найдена, то номер карты, если не найдена, то null.
Пример
{ "errors": [], "data": { "cardNo": 1000000913 } }
или
{ "errors": [], "data": null }
При обновлении с предыдущих версий необходимо учесть, что настройка chargeBonus4NonpersonalizedCards устарела, вместо нее следует использовать chargeBonus4AnyCards.
Если ранее использовалось ограничение по признаку "Персонализирована", то следует установить признак "Участник бонусной программы" всем персонализированным картам.
Для работы функционала, необходимо:
Сделать настройку, управляющую начислением бонусов для карт, не участвующих в бонусной программе. В ини сервера
[Settings]
chargeBonus4AnyCards
=1 - начисление для любых карт (по умолчанию)
=0 - только с установленным признаком "Участник бонусной программы"
Данная настройка заменила более не используемую настройку chargeBonus4NonpersonalizedCards. Бонус за персонализацию начисляется в любом случае.
Ошибка (элемент массива 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 }