Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| api [2020/05/12 10:02] – d.gudkov | api [2020/11/19 18:12] (текущий) – d.shiligina | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== API референсного билетного сервиса | + | ===== API референсного билетного сервиса ===== |
| + | В данном документе приведено описание API билетного сервиса, | ||
| - | API референсного билетного сервиса | + | {{ :api_referensnogo_biletnogo_servisa.pdf |}} |
| - | Общая информация. | + | |
| - | В данном документе приведено описание API билетного сервиса, | + | |
| - | билетного шлюза партнёрами компании Ticketland. API сервиса спроектирован по подобию RESTful-сервисов. Кодировка обмениваемых сообщений - | + | |
| - | UTF-8. Обмен запросами и ответами производится по протоколу HTTP(S). Всё описание API разделено на три основные группы: | + | |
| - | с конструктивом, | + | |
| - | Список изменений | + | |
| - | Запросы и ответы. | + | |
| - | Аутентификация и авторизация. | + | |
| - | Типы данных. | + | |
| - | Дата/ | + | |
| - | Дробное число. | + | |
| - | Сообщение об ошибке. | + | |
| - | Конструктив. | + | |
| - | Метод constructive. | + | |
| - | Репертуар. | + | |
| - | Метод repertoire. | + | |
| - | Метод modifiedRepertoire. | + | |
| - | Билеты. | + | |
| - | Схема продажи билета. | + | |
| - | Метод tickets. | + | |
| - | Метод lockTicket. | + | |
| - | Метод unlockTicket. | + | |
| - | Метод lockedTickets. | + | |
| - | Метод createOrder. | + | |
| - | Метод printableOrderData. | + | |
| - | Метод confirmOrder. | + | |
| - | Метод orderedTickets. | + | |
| - | Метод removeOrder. | + | |
| - | Метод returnTickets. | + | |
| - | Метод salesReport. | + | |
| - | Список изменений | + | |
| - | Дата Описание | + | |
| - | 13 января 2019 Добавлен отдельный метод возврата returnTickets билетов, | + | |
| - | закону от 18.07.2019 №193-ФЗ | + | |
| - | В методе salesReport для операции возврата (return) поле price теперь | + | |
| - | возвращает возвращенную клиенту стоимость билета | + | |
| - | 26 марта 2015 Добавил информацию о зарезервированных кодах ошибок в разделе | + | |
| - | " | + | |
| - | 10 апреля 2015 Добавил свойство " | + | |
| - | repertoire. | + | |
| - | 2 июня 2015 Добавил описание метода modifiedRepertoire. | + | |
| - | 4 июня 2015 Добавил свойство " | + | |
| - | removeOrder | + | |
| - | Запросы и ответы. | + | |
| - | Сервис должен поддерживать два типа запроса: | + | |
| - | GET - клиент хочет получить некоторые данные; | + | |
| - | POST - клиент хочет выполнить некоторую операцию, | + | |
| - | В каждом GET-запросе от клиента, | + | |
| - | В каждом GET-запросе от клиента, | + | |
| - | Accept - указывает ожидаемый формат сообщения в теле ответа. Например, | + | |
| - | минимум, | + | |
| - | понадобится, | + | |
| - | клиентской стороне - это указать в запросе " | + | |
| - | форматом по-умолчанию считается JSON. | + | |
| - | Authorization - аутентификационная информация клиента (см. Аутентификация и авторизация). | + | |
| - | В каждом POST-запросе от клиента, | + | |
| - | Accept (см. выше) | + | |
| - | Content-Type - указывает на формат сообщения, | + | |
| - | принять запрос с сообщением в формате JSON (application/ | + | |
| - | форматом по-умолчанию считается JSON. | + | |
| - | Authorization - аутентификационная информация клиента (см. Аутентификация и авторизация). | + | |
| - | Если название параметра в запросе заканчивается двумя квадратными скобками " | + | |
| - | запросе несколько раз. Пример: | + | |
| - | В каждом ответе, | + | |
| - | Content-Type - указывает на формат сообщения, | + | |
| - | Аутентификация и авторизация. | + | |
| - | Для аутентификации клиента, | + | |
| - | простую Basic-аутентификацию. В сочетании с шифрованием канала связи, это даст минимально необходимый уровень безопасности. В конечном | + | |
| - | счете, выбор методики аутентификации остается за разработчиком данного сервиса. Клиенту остается лишь передавать в заголовке Authorization | + | |
| - | то значение, | + | |
| - | Если клиент не предоставил данный заголовок, | + | |
| - | предоставленные клиентом аутентификационные данные не верны, или же клиент не авторизован на выполнение запрошенной операции, | + | |
| - | должен вернуть ответ с кодом 403. | + | |
| - | Типы данных. | + | |
| - | Дата/ | + | |
| - | Для обмена датой/ | + | |
| - | yyyy-MM-ddTHH-mm-ss | + | |
| - | yyyy - год (четыре цифры), | + | |
| - | - секунда (две цифры). | + | |
| - | В качестве тайм-зоны следует использовать некую оговоренную тайм-зону, | + | |
| - | реализующего данный сервис. | + | |
| - | Пример: | + | |
| - | Дробное число. | + | |
| - | Любое дробное число следует указывать в виде строки строго с двумя знаками после разделителя, | + | |
| - | Пример: | + | |
| - | Сообщение об ошибке. | + | |
| - | В случае любой ошибки, | + | |
| - | с кодом 500, а в теле ответа должно быть сообщение, | + | |
| - | Пример сообщения (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | Следует иметь ввиду, что коды от 1 до 100 зарезервированы под определенные конкретные ситуации, | + | |
| - | компании Ticketland. Эти коды будут перечислены здесь позже. Соответственно, | + | |
| - | сервиса должен воспользоваться кодами в незарезервированном подмножестве от 101 и далее. Если же возникла ситуация (ошибка), | + | |
| - | описании зарезервированных кодов, то разработчик сервиса в этом случае должен вернуть зарезервированный код, соответствующий возникшей | + | |
| - | ситуации. Также, разработчик сервиса может использовать один и тот же код (от 101 и выше) для информирования о различных ситуациях. | + | |
| - | Например, | + | |
| - | Конструктив. | + | |
| - | Конструктив - это общее название всего, что связано с местом проведения мероприятия. Здание, | + | |
| - | конструктив. Для получения информации о конструктиве в API представлен один метод: constructive. | + | |
| - | Метод constructive. | + | |
| - | Пример вызова: | + | |
| - | =hall& | + | |
| - | Входные параметры: | + | |
| - | hallId (строка) - идентификатор зала (сцены), | + | |
| - | hallVersion (строка) - версия этого зала (сцены). Как известно, | + | |
| - | мероприятия, | + | |
| - | идентификатором 15 может быть 10 версий различных схем рассадок. Следовательно, | + | |
| - | можно определить парой атрибутов: | + | |
| - | однозначно определять свой уникальный вариант рассадки в этом зале. | + | |
| - | segment[] (строка) - указание, | + | |
| - | значения: | + | |
| - | информация о секциях в зале и place - информация о местах в зале. Как видно из примера, | + | |
| - | несколько раз, это следует трактовать как желание вызывающей стороны получить несколько сегментов конструктива. | + | |
| - | Параметры hallId и hallVersion не являются обязательными, | + | |
| - | не указаны, | + | |
| - | быть указан как минимум один раз. Если параметр segment[] не был указан ни разу, то сервис может завершить обработку запроса с ошибкой. | + | |
| - | Пример ответа: | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | /* | + | |
| - | Сегмент " | + | |
| - | присутствовать в ответе, | + | |
| - | Как правило, | + | |
| - | Если в запросе были указаны параметры hallId и hallVersion, | + | |
| - | объект, | + | |
| - | */ | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | базе данных | + | |
| - | " | + | |
| - | } | + | |
| - | ], | + | |
| - | ], | + | |
| - | /* | + | |
| - | Сегмент " | + | |
| - | присутствовать в ответе, | + | |
| - | Если в запросе были указаны параметры hallId и hallVersion, | + | |
| - | объект, | + | |
| - | */ | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | отличается от значения свойства name. | + | |
| - | " | + | |
| - | }, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | ], | + | |
| - | /* | + | |
| - | Сегмент " | + | |
| - | присутствовать в ответе, | + | |
| - | Если в запросе были указаны параметры hallId и hallVersion, | + | |
| - | которые включены в запрашиваемый зал. | + | |
| - | */ | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | данных | + | |
| - | " | + | |
| - | " | + | |
| - | отличается от значения свойства name. | + | |
| - | /* | + | |
| - | Массив объектов, | + | |
| - | но весьма желательное свойство, | + | |
| - | Начало координат в левом верхнем углу. С помощью указанных точек будет изображена фигура, | + | |
| - | контуры секции. может быть указано любое количество точек, но не менее трех. | + | |
| - | */ | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | }, | + | |
| - | {" | + | |
| - | {" | + | |
| - | {" | + | |
| - | {" | + | |
| - | ] | + | |
| - | }, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | {" | + | |
| - | {" | + | |
| - | {" | + | |
| - | {" | + | |
| - | {" | + | |
| - | ] | + | |
| - | }, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | {" | + | |
| - | {" | + | |
| - | {" | + | |
| - | {" | + | |
| - | ] | + | |
| - | } | + | |
| - | ], | + | |
| - | /* | + | |
| - | Данный сегмент является вспомогательным и должен автоматически появиться в ответе, | + | |
| - | параметры hallId и hallVersion. | + | |
| - | Этот сегмент представляет из себя массив из одного объекта, | + | |
| - | запрошенного зала и секциями, | + | |
| - | */ | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | запрашиваемый зал; может быть пустым, | + | |
| - | } | + | |
| - | ], | + | |
| - | /* | + | |
| - | Сегмент " | + | |
| - | присутствовать в ответе, | + | |
| - | Если в запросе были указаны параметры hallId и hallVersion, | + | |
| - | которые включены в лишь те секции, | + | |
| - | */ | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | данных | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | использовано название по усмотрению компании Ticketland. | + | |
| - | " | + | |
| - | " | + | |
| - | использовано название по усмотрению компании Ticketland. | + | |
| - | /* | + | |
| - | Координата места в двумерной системе координат. Начало координат в левом верхнем углу. Свойство является | + | |
| - | обязательным для тех мест, которые должны быть отображены на схеме зала. | + | |
| - | */ | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | }, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | Репертуар. | + | |
| - | Под репертуаром подразумевается информация обо всех мероприятиях, | + | |
| - | мероприятиях в API представлен один метод: repertoire. | + | |
| - | Метод repertoire. | + | |
| - | Пример вызова: | + | |
| - | 3T00-00-00 | + | |
| - | Входные параметры: | + | |
| - | fromInclusive (дата/ | + | |
| - | будет представлена в ответе; | + | |
| - | отсутствие необходимости фильтрации отдаваемых мероприятий по данному критерию. | + | |
| - | tillExclusive (дата/ | + | |
| - | которых будет представлена в ответе; | + | |
| - | трактовать как отсутствие необходимости фильтрации отдаваемых мероприятий по данному критерию. | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | /* | + | |
| - | Сегмент " | + | |
| - | (ниже). Здесь должны быть перечислены только те организаторы, | + | |
| - | сегменте. | + | |
| - | */ | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | организаторов в базе данных | + | |
| - | " | + | |
| - | }, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | ], | + | |
| - | /* | + | |
| - | Сегмент " | + | |
| - | мероприятия, | + | |
| - | мероприятия, | + | |
| - | */ | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | данных | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | }, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | ], | + | |
| - | /* | + | |
| - | Сегмент " | + | |
| - | рамках своего шоу. | + | |
| - | */ | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | мероприятий в базе данных | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | }, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | Метод modifiedRepertoire. | + | |
| - | Метод предназначен для получения списка мероприятий, | + | |
| - | уменьшить нагрузку на сеть и вычислительные ресурсы при постоянном запрашивании (polling) информации о мероприятиях у билетного сервиса. С | + | |
| - | мена названия мероприятия, | + | |
| - | идентификатор мероприятия попадает в результат вызова данного метода. В конечном счете, разработчик билетного сервиса сам определяет список | + | |
| - | факторов, | + | |
| - | интеграции с разрабатываемым билетным сервисом его разработчик должен сообщить о том, был ли им реализован данный метод или нет. | + | |
| - | Пример вызова: | + | |
| - | Входные параметры: | + | |
| - | modificationTag (строка, | + | |
| - | разработчик сервиса определяет, | + | |
| - | идентификатор последней транзакции в базе данных билетного сервиса, | + | |
| - | в этом параметре передается та информация, | + | |
| - | как некая " | + | |
| - | будут перечислены в результате вызова данного метода. Также следует иметь ввиду, что если данный аргумент не был указан при вызове | + | |
| - | метода, | + | |
| - | данный аргумент не указывается, | + | |
| - | dificationTag следует передать. | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | /* | + | |
| - | Метка, которую билетная система готова получить при следующем вызове данного метода. На основании ЭТОЙ метки, | + | |
| - | которая будет передана в СЛЕДУЮЩЕМ вызове, | + | |
| - | изменились с момента завершения ТЕКУЩЕГО вызова данного метода. | + | |
| - | */ | + | |
| - | " | + | |
| - | /* | + | |
| - | Массив идентификаторов мероприятий, | + | |
| - | при при вызове данного метода. Массив может быть пустым, | + | |
| - | не изменилось. | + | |
| - | */ | + | |
| - | " | + | |
| - | } | + | |
| - | Билеты. | + | |
| - | Работу с билетами можно разделить на две части: импорт информации о свободных билетах и выполнение билетных операций. Здесь сразу следует | + | |
| - | пояснить, | + | |
| - | (идентификатор места в зале). С помощью этих двух идентификаторов всегда можно четко обозначить продаваемый билет. При всех операциях с | + | |
| - | билетами будут передаваться эти два идентификатора. | + | |
| - | Для получения информации о свободных билетах в API представлен метод tickets. | + | |
| - | Схема продажи билета. | + | |
| - | Для продажи билета сначала его следует заблокировать с помощью метода lockTicket. Данный метод возвращает идентификатор корзины (в | + | |
| - | Для продажи билета сначала его следует заблокировать с помощью метода lockTicket. Данный метод возвращает идентификатор корзины (в | + | |
| - | которую помещен билет). Этот идентификатор, | + | |
| - | будет вызван метод printableOrderData, | + | |
| - | денег от покупателя) будет вызван метод confirmOrder, | + | |
| - | Для удаления билета из корзины вызывается метод unlockTicket. Для удаления заказа (независимо от того, был он подтвержден или нет) | + | |
| - | вызывается метод removeOrder. | + | |
| - | Метод tickets. | + | |
| - | Пример вызова: | + | |
| - | Входные параметры: | + | |
| - | performanceId (строка) - идентификатор мероприятия, | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | /* | + | |
| - | Сегмент " | + | |
| - | */ | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | }, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | Метод lockTicket. | + | |
| - | Добавление билета в корзину. Если билет уже находится в этой или другой корзине, | + | |
| - | Пример вызова: | + | |
| - | Пример запроса (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | как первое добавление билета в корзину, | + | |
| - | быть возвращен в ответном сообщении. Если же данный параметр указан, | + | |
| - | существующую корзину. | + | |
| - | } | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | заблокированном состоянии до того, как билет будет разблокирован автоматически | + | |
| - | } | + | |
| - | Метод unlockTicket. | + | |
| - | Удаление билета из корзины. Если билет уже был удален из корзины ранее, метод должен отработать идемпотентно и вернуть такой же результат, | + | |
| - | если бы билет присутствовал в корзине и был успешно удален из неё. | + | |
| - | Пример вызова: | + | |
| - | Пример запроса (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | {/* | + | |
| - | Просто пустой JSON. | + | |
| - | Если на момент вызова метода билета не было в корзине ответ также должен представлять из себя пустой JSON. | + | |
| - | */} | + | |
| - | Метод lockedTickets. | + | |
| - | Получение списка билетов, | + | |
| - | ошибке. | + | |
| - | Пример вызова: | + | |
| - | Входные параметры: | + | |
| - | basketId (строка) - идентификатор корзины. | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | Метод createOrder. | + | |
| - | Создание заказа на основе корзины. Метод может вернуть сообщение об ошибке только в случае, | + | |
| - | каких-то ограничений или ошибок, | + | |
| - | некоторыми билетами, | + | |
| - | Пример вызова: | + | |
| - | Пример запроса (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | }, | + | |
| - | " | + | |
| - | которой будет создан заказ; может быть пустым. | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | сервиса, | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | истечении этого времени, | + | |
| - | " | + | |
| - | билету в корзине должен соответствовать один элемент в этом массиве | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | свойство должно отсутствовать. | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | Метод printableOrderData. | + | |
| - | Получение данных для печати заказа. Фактически, | + | |
| - | печатью билетов, | + | |
| - | Пример вызова: | + | |
| - | Входные параметры: | + | |
| - | orderId (строка) - идентификатор заказа. | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | соответствовать один элемент в этом массиве | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | случае, | + | |
| - | " | + | |
| - | " | + | |
| - | принято значение " | + | |
| - | " | + | |
| - | }, | + | |
| - | " | + | |
| - | ошибок нет, то данное свойство должно отсутствовать | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | Метод confirmOrder. | + | |
| - | Подтверждение (оплата) заказа. После вызова этого метода заказ считается проданным. Это финальное состояние успешного жизненного цикла | + | |
| - | заказа. Метод может вернуть сообщение об ошибке только в случае, | + | |
| - | ограничений или ошибок. Если же при подтверждении заказа возникли ошибки лишь с некоторыми билетами, | + | |
| - | проинформировать об этом в теле своего ответа (см. пример ниже). | + | |
| - | Пример вызова: | + | |
| - | Пример запроса (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | если подтверждение прошло успешно, | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | Метод orderedTickets. | + | |
| - | Получение списка билетов, | + | |
| - | метод может быть вызван как до подтверждения заказа так и после. | + | |
| - | Пример вызова: | + | |
| - | Входные параметры: | + | |
| - | orderId (строка) - идентификатор заказа. | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | Метод removeOrder. | + | |
| - | Удаление заказа. Данный метод может быть вызван как для неподтвержденного, | + | |
| - | одинаково, | + | |
| - | целиком в силу каких-то ограничений или ошибок. Если же при удалении заказа возникли ошибки лишь с некоторыми билетами, | + | |
| - | то метод должен проинформировать об этом в теле своего ответа (см. пример ниже). Если на момент вызова метода заказ уже был удален, | + | |
| - | должен отработать идемпотентно и вернуть такой же результат, | + | |
| - | Пример вызова: | + | |
| - | Пример запроса (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | /* | + | |
| - | Массив объектов, | + | |
| - | Если при удалении заказа, | + | |
| - | ДОЛЖНА попасть в данный массив. | + | |
| - | Если на момент вызова метода заказа уже не существовало, | + | |
| - | */ | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | Метод returnTickets. | + | |
| - | Возврат билетов. Данный метод может быть вызван только для подтвержденного заказа. Позволяет вернуть как все билеты, | + | |
| - | может вернуть сообщение об ошибке по каждому отдельному билету. Может вызываться несколько раз для одного заказа, | + | |
| - | невозвращенные билеты. Если на момент вызова метода билет возвращен, | + | |
| - | как если бы билет еще не был возвращен и был успешно возвращен. | + | |
| - | Пример вызова: | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | №193-ФЗ | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | /* | + | |
| - | Массив объектов, | + | |
| - | Если при возврате билетов, | + | |
| - | ДОЛЖНА попасть в данный массив. | + | |
| - | Если на момент вызова метода билет был уже возвращен, | + | |
| - | */ | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | Метод salesReport. | + | |
| - | Получение отчета о продажах билетов. Данный метод вызывается для проведения сверки продаж по данным системы компании Ticketland и данным | + | |
| - | реализуемого сервиса с целью поиска и корректировки возможных расхождений. Идеологически, | + | |
| - | Пример вызова: | + | |
| - | 24T00-00-00 | + | |
| - | Входные параметры: | + | |
| - | fromInclusive (дата/ | + | |
| - | tillExclusive (/) - () | + | |
| - | Пример ответа (с пояснениями): | + | |
| - | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
| - | { | + | |
| - | " | + | |
| - | выполнена та или иная операция (продажа, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | билета; | + | |
| - | " | + | |
| - | }, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |