ОБЩАЯ ИНФОРМАЦИЯ

Данный API предоставляет доступ к некоторой информации о картах Game-Keeper и позволяет проводить ряд операций. Этот API является ПО промежуточного слоя, не следует предоставлять к нему доступ конечному пользователю (владельцу карты), т.к. в API отсутствуют возможности аутентификации и авторизации.

Если запрос к API был обработан, API отвечает HTTP кодом 200 OK, и возвращает информацию в json следующего вида

{
  "data": null,
  "errors": []
}

data - запрашиваемые данные, зависят от запроса, 
errors - список ошибок, возникших при выполнении запроса. 
Успешность выполнения запроса определяется отсутствием ошибок.

Самую актуальную информацию всегда можно посмотреть на нашем демо-стенде по ссылке.

ПОДДЕРЖИВАЕМЫЕ ТИПЫ ЗАПРОСОВ


Информация о карте

Запрос

GET 
/api2/cards
? [n=<номер карты>]

Ответ

Различные данные о карте.

Пример:

{

  "errors": null,
  "data": {
    "card": 12047,
    "bonus": 0,
    "bonusI": 0,
    "points": 0,
    "moneyCash": 0,
    "moneyBCard": 0,
    "moneyCS": 0,
    "money": 0,
    "tickets": 0,
    "moneyAccum": 0,
    "cardPrice": 0,
    "level": "Стандартный",
    "state": 1,
    "fullName": "",    "activation": "2023-02-17T16:32:32+03:00"

  }

}


Где:

История операций

Запрос

GET 
/api2/cards/history
? [n=<номер карты>]

Ответ

Последние 100 операций по карте.

Пример:

{

  "errors": null,

  "data": [

    {       "date": "2023-02-17T16:32:32.93+03:00"
      "name": "Продажа пакета \"Активация карты\" (Рубли)",
      "activityName": "Продажа пакета",
      "productName": "Активация карты",
      "value": 0,
      "u1code": "руб.",
      "u2code": "",
      "card": 12047

    },     {       "date": "2023-02-17T16:32:32.927+03:00",
      "name": "Открытие счета \"Активация карты\"",
      "activityName": "Открытие счета",
      "productName": "Активация карты",
      "value": 0,
      "u1code": "",
      "u2code": "",
      "card": 12047

    }

   ]

}

Информация о владельце карты

Запрос

GET 
/api2/cards/owner?n=номер карты

Ответ

Информация о персональных данных гостя.

Пример:

{
  "errors": [
    {
      "app": "string",
      "text": "string",
      "alert": true
    }
  ],
  "data": {
    "card": 0,
    "first_name": "string",
    "last_name": "string",
    "middle_name": "string",
    "birthday": "2024-02-15T07:57:19.866Z",
    "gender": 1,
    "phone": "string",
    "email": "string",
    "address": "string",
    "passport": "string",
    "mailing_consent": true,
    "personalized": true,
    "in_bonus_program": true
  }
}

Где:

Альтернативный код (внешний идентификатор)

Информация о совладельцах

Запрос

GET 
/api2/cards/coowners?n=номер карты

Ответ

Персональные данные совладельцев карты.

Пример:



Пополнение счета

Запрос

POST
/api2/cards/deposit
? [n=<номер карты>]
& [amount=<сумма пополнения>]
& [currid=<идентификатор валюты>]

Пополнение производится только счета очков-денег.

Идентификатор валюты может принимать значения от 911 до 919. Этим значениям соответствуют настраиваемые позиции валюты банковской карты в справочнике Валюты в приложении Редактор. Название валюты из справочника используется только в отчетах. При печати фискального чека на пополнение через WEB API тип оплаты всегда указывается "Банковская карта".

Ответ

Содержит сумму бонусов, начисленную за пополнение, баланс карты после пополнения и номер операции пополнения в 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
}

ОБРАБОТКА ОШИБОК

Ошибка (элемент массива 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
}


К оглавлению.