Данное API предназначено для описания общих принципов.
Вы сможете узнать об авторизации, общих принципах запросов и ответов, баллах и других моментах.
Вы точно не сможете узнать о конкретных запросах кроме общих.
Начало адреса запросов: https://api2.quicktickets.ru/
Тип запроса
Окончание адреса запроса
Стоимость запроса
Обязательный параметр запроса
Необязательный параметр запроса
Поле ответа
Токен (token) — это уникальный набор символов, выданный Вам сервисом Quick Tickets, для авторизации при осуществлении запросов. Ни в коем случае не раскрывайте его третьим лицам.
Соль (salt) — это набор символов, выданный Вам сервисом Quick Tickets. Ни в коем случае не раскрывайте его третьим лицам, для подписывании даных в запросах.
Баллы — это ресурс токена, расходуемый на запросы и автоматически пополняемый с течением времени.
Токен обновления (refreshToken) — это уникальный набор символов, выданный Вам сервисом Quick Tickets, для обновления токена и соли, в случае если они имеют срок. Ни в коем случае не раскрывайте его третьим лицам.
Для получения/обновления временного токена не нужно соблюдать принципы описанные в этом разделе.
Для авторизации в каждом запросе необходимо передать "Authorization" заголовок со значением "Bearer token".
Например, если Ваш токен это "oWrITm0CUHWiKhbM", то заголовок будет:
Authorization: Bearer oWrITm0CUHWiKhbM
Кодировка — utf-8.
Тип (get, post и т. д.) запроса, должен соответствовать указанному в документации.
Параметры запроса передаются либо в формате URL-encoded строки, например:
2=111&1=222&b=aaa&a=bbb&c[]=1&c[]=5&c[]=3
Либо параметры запроса передаются в формате json строки, например:
{"2":111,"1":222,"b":"aaa","a":"bbb","c":[1,5,3]}
В случае использования формата json строки необходимо добавить заголовок:
Content-Type: application/json
Для получения/обновления временного токена не нужно соблюдать принципы описанные в этом разделе.
Все запросы можно (некоторые обязательно необходимо) подписать, с помощью параметра "signature" (подпись).
Параметр "signature" формируется как хэш (sha256) от строки. Строка состоит из значений параметров запроса (в алфавитном порядке названия этих параметров, то есть на положение не влияет значение) и хэша (sha256) соли, объединённых через точку с запятой. Если один из параметров является массивом, то все его значения складываются в одну строку через запятую.
Например, если параметры запроса имеют следующий вид:
{
"2": 111,
"1": 222,
"b": "aaa",
"a": "bbb",
"c": [1, 5, 3],
}
Если Ваша соль это "dJWwhktwqMAsPPXfaJlpZzGWTHZrZJw1", то подпись рассчитывается по следующей формуле:
sha256("bbb;aaa;1,5,3;222;111;" + sha256("dJWwhktwqMAsPPXfaJlpZzGWTHZrZJw1"))
Получаем подпись равную:
377e07773ae4d3b278edd5f48b1c5e15070a843ba3f7bc200ffe3c66ffab51fb
Тогда, параметры запроса должны выглядеть следующим образом:
{
"2": 111,
"1": 222,
"b": "aaa",
"a": "bbb",
"c": [1, 5, 3],
"signature": "377e07773ae4d3b278edd5f48b1c5e15070a843ba3f7bc200ffe3c66ffab51fb"
}
Если Вы передаёте в параметрах только подпись, в таком случае она формируется как двойной хэш (sha256) от соли (никаких точек с запятой):
sha256(sha256("dJWwhktwqMAsPPXfaJlpZzGWTHZrZJw1"))
Саму соль передавать в запросе нельзя, передаётся только подпись в формировании которой участвует соль.
Формат — json.
Ответ всегда содержит поля "status" и "data", ответ об успехе также содержит поле "points" (подробнее в разделе "Баллы").
Пример ответа (json и декодированный) об успехе:
HTTP/1.1 200 OK {"status":"success","data":{"point":994,"active":1},"points":"1\/994"}
HTTP/1.1 200 OK
{
"status": "success",
"data": {
"point": 999,
"active": 1,
},
"points": "1/999",
}
Пример ответа (json и декодированный) об ошибке:
HTTP/1.1 4** ... {"status":"error","data":{"alias":"api-token-not-found","text":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438."}}
HTTP/1.1 4** ...
{
"status": "error",
"data": {
"alias": "api-token-not-found",
"text": "Описание ошибки.",
},
}
Каждый токен имеет свой баланс баллов.
Каждый запрос имеет стоимость, она указана в описании запросов.
В ответе об успехе всегда присутствует поле "points", хранящее 2 числа через символ "/".
Первое число — это количество израсходованных баллов за совершённый запрос.
Второе число — это количество оставшихся баллов.
Чем реже меняются данные, которые возвращает запрос, тем больше баллов он стоит.
Чем больше данных возвращает запрос, тем больше баллов он стоит.
Чем чаще изменяются данные возвращаемые запросом, тем меньше баллов он стоит.
Если Вам не хватает баллов для работы, Вы используете API неверно. Сократите количество запросов. Кэшируйте (запоминайте) все получаемые данные на своих серверах, для последующего повторного использования, без обращения к API.
Раз в 10 минут баланс каждого токена пополняется на небольшое количество баллов.
При превышении определённого, максимального значения, баланс не пополняется, пока вновь не будет потрачен.
get token/info 0
Параметры запроса: нет
Ответ по запросу:
Название | Тип | Описание |
---|---|---|
module | string | Модуль:
|
point | integer | Баланс баллов. |
maxPoint | integer | Максимальное количество баллов. |
addPoint | integer | Колличество баллов, начисляемых раз в 10 минут. |
tokenExpirationTime | integer | Срок действия токена:
|
refreshTokenExpirationTime | integer | Срок действия токена обновления:
|
Постоянный токен выдаётся в ручном режиме, клиентам, нуждающимся в той или иной интеграции.
Постоянный токен не нужно обновлять.
Временный токен получается в результате запроса "Получение временного токена". Временный токен выдаётся на 24 часа. Вместе с временным токеном выдаётся токен обновления и соль.
С помощью запроса "Обновление временного токена" с использованием токена обновления и текущей соли, можно получить новый временный токен, новый токен обновления и новую соль.
Токен обновления действует в течении 30 дней после выдачи.
Для получения/обновления временного токена не нужно соблюдать принципы описанные в разделах "Авторизация" и "Формирование запросов" - "Подпись".
post main/auth 0 или 100 или 200
При получении временного токена в первый раз или после истечения срока действия токена обновления, запрос не затрачивает баллы с временного токена.
При получении временного токена с не истёкшим сроком действия токена обновления запрос затрачивает 100 баллов с временного токена.
При получении временного токена с не истекшим сроком действия временного токена запрос затрачивает 200 баллов с временного токена.
Параметры запроса:
Название | Тип | По умолчанию | Описание |
---|---|---|---|
module | string | Нет | Модуль:
|
login | string | Нет | Логин от личного кабинета на panel.quicktickets.ru. |
password | string | Нет | Пароль от личного кабинета на panel.quicktickets.ru. |
Ответ по запросу:
Название | Тип | По умолчанию | Описание |
---|---|---|---|
module | string | Модуль:
| |
token | string | Токен. | |
salt | string | Соль. | |
point | integer | Баланс баллов. | |
maxPoint | integer | Максимальное количество баллов. | |
addPoint | integer | Колличество баллов, начисляемых раз в 10 минут. | |
refreshToken | string | Токен обновления. | |
tokenExpirationTime | integer | Срок действия токена, время в формате Unix timestamp. | |
refreshTokenExpirationTime | integer | Срок действия токена обновлени, время в формате Unix timestamp. | |
data | null|array | Дополнительные даные. |
post main/deauth 0
При анулировании временного токена происходит сброс всех доступных баллов токена до 0.
Параметры запроса:
Название | Тип | По умолчанию | Описание |
---|---|---|---|
token | string | Нет | Токен. |
refreshToken | string | Нет | Токен обновления. |
Ответ по запросу:
Нет данных.
post main/refresh 0 или 100
При обновлении временного токена, по которому до окончания срока действия менее 12 часов или срок действия истёк, запрос не затрачивает баллы с временного токена. При обновлении временного токена, по которому до окончания срока действия более 12 часов, запрос затрачивает 100 баллов с временного токена.
Параметры запроса:
Название | Тип | По умолчанию | Описание |
---|---|---|---|
refreshToken | string | Нет | Токен обновления. |
Ответ по запросу:
Название | Тип | По умолчанию | Описание |
---|---|---|---|
module | string | Модуль:
| |
token | string | Токен. | |
salt | string | Соль. | |
point | integer | Баланс баллов. | |
maxPoint | integer | Максимальное количество баллов. | |
addPoint | integer | Колличество баллов, начисляемых раз в 10 минут. | |
refreshToken | string | Токен обновления. | |
tokenExpirationTime | integer | Срок действия токена, время в формате Unix timestamp. | |
refreshTokenExpirationTime | integer | Срок действия токена обновлени, время в формате Unix timestamp. | |
data | null|array | Дополнительные даные. |