Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление
maxLevel3

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

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

...

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"

  }

}

...


Где:

  • card - номер карты;
  • bonus - сумма бонусов;
  • bonusI- сумма неактивных бонусов;
  • points - сумма игровых очков;
  • moneyCash - сумма наличных денег;
  • moneyBCard - сумма, оплаченная банковской картой;
  • moneyCS - сумма, оплаченная безналичным платежом;
  • tickets - сумма тикетов;
  • moneyAccum - общая внесенная сумма;

...

  • state -

...

  • ID статуса карты;

...

  • fullName -

...

...

  • activation - время активации карты.

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

Запрос

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
  }
}

Где:

  • card - номер карты;
  • first_name - имя владельца карты;
  • last_name - фамилия владельца карты;
  • middle_name - отчество владельца карты;
  • birthday - день рождения;
  • gender - пол (1 - жен; 0 - муж);
  • phone - номер телефона;
  • email - электронная почта;
  • address - адрес;
  • passport - паспортные данные;
  • mailing_consent - согласие на рассылку;
  • personalized - стоит галочка персонализированный;
  • in_bonus_program - находится в системе бонусов.

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

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

Запрос

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/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//owneropercancel
? [nopid=<номер карты>операции>]

Ответ

Содержит успешность выполнения отмены.

ПримерДанные о владельце в теле запроса в json.

{
    "first_nameerrors": "Иван"[],
    "last_namedata": null
}

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

Запрос

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

Ответ

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

{
    "errors": []"Иванов",
    "middle_name": "Иванович",
    "birthdaydata": "1999-09-19T00:00:00.0+03:00",
{
        "gendercard": 0208,
    "phone    "first_name": "+71234567890Иван",
     "email   "last_name": "az@b.cИванов",
    "address": "address",
    "mailingmiddle_consentname": true,
"Иванович", "personalized": true, "in_bonus_programbirthday": true
}

Пол: 0-женский, 1-мужской.

Телефон следует передавать строкой в виде последовательности цифр без разделителей предваряемой знаком +, если с номером телефона планируется работа через приложения Гейм-Кипер (касса, редактор и т.п.). Если номер телефона будет использоваться только через web api, то формат строки может быть любой. Корректность и существование номера телефона или e-mail не проверяются.

Ответ

Содержит успешность выполнения запроса.

Пример

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

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

Запрос

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

Ответ

Различные данные о совладельцах карты.

{
    "errors": [],
    "data": ["1999-09-19T00:00:00.0+03:00",
        "gender": 0,
        "phone": "+71234567890",
        "email": "az@b.c",
        "address": "address",
        {
    "mailing_consent": true,
"idpersonalized": 1true, "namein_bonus_program": "Имя", true
} }

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

Запрос

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

Данные о владельце в теле запроса в json.

{
          ""first_name": "Иван",
    "last_name": "Иванов",
    "middle_name": "Иванович",
    "birthday": "20011999-0209-05T0019T00:00:00.0+03:00",
            "gender": 10,
        }"phone": "+71234567890",
        {"email": "az@b.c",
            "id"address": 6"address",
        "mailing_consent": true,
"namepersonalized": "Имя"true, "birthday"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",
   "2009-12-05T00:00:00.0+03:00",
            "gender": 1
        },
        {
            "id": 76,
            "name": "Имя",
            "birthday": "20152009-12-05T00:00:00.0+03:00",
            "gender": 01
        }
    ]
}

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

Запрос

POST
/api2/cards//coowner
? [n=<номер карты>]
& [id=<"id" совладельца при обновлении>]

Данные о совладельце в теле запроса в json.

{
    "name": "Имя",
},
        {
            "id": 7,
            "birthdayname": "2004-12-05T00:00:00.0+03:00Имя",
    "gender": 0
}

Пол: 0-женский, 1-мужской.

Ответ

Содержит успешность выполнения запроса.

Пример

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

Активация электронной карты с альтернативным кодом

апрос

POST
/api2/cards/activate
? [altcode=<альтернативный код карты (внешний ид)>]

Ответ

Содержит номер активированной карты.

Пример

{
  "errors": [],
  "data": {
    "cardNo": 1000000913
  }
}

Поиск карты по альтернативному коду

Запрос

        "birthday": "2015-12-05T00:00:00.0+03:00",
            "gender": 0
        }
    ]
}

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

Запрос

POSTGET
/api2/cards/search/coowner
? [altcode=<альтернативный код карты (внешний ид)>]

Ответ

Если карта найдена, то номер карты, если не найдена, то null.

Пример

n=<номер карты>]
& [id=<"id" совладельца при обновлении>]

Данные о совладельце в теле запроса в json.

{
    "name": "Имя",{
  "errors": [],
  "data": {
    "cardNobirthday": 1000000913
  }
}

или

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

Участник бонусной программы (4.12+ ver)

Раскрыть
titleСвязанные задачи

JIRA
serverGame-Keeper™ Projects
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4e95b925-a0e8-3576-aa92-23b5418e896e
keyDEV-350

JIRA
serverGame-Keeper™ Projects
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4e95b925-a0e8-3576-aa92-23b5418e896e
keyDEV-351

При обновлении с предыдущих версий необходимо учесть, что настройка chargeBonus4NonpersonalizedCards устарела, вместо нее следует использовать chargeBonus4AnyCards.
Если ранее использовалось ограничение по признаку "Персонализирована", то следует установить признак "Участник бонусной программы" всем персонализированным картам.

Для работы функционала, необходимо:

Сделать настройку, управляющую начислением бонусов для карт, не участвующих в бонусной программе. В ини сервера

[Settings]

chargeBonus4AnyCards

=1 - начисление для любых карт (по умолчанию)

=0 - только с установленным признаком "Участник бонусной программы"

...

"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 - код приложения, сгенерировавшего ошибку; при технических ошибках (ошибках подключения) указывает работоспособность какого компонента системы (связи между какими компонентами системы) следует проверять, восстанавливать.

...

{
    "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
}


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