Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
api [2020/05/12 13:02] d.gudkov |
api [2020/11/19 21: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 (/) - () | + | |
- | Пример ответа (с пояснениями): | + | |
- | /* ВСЕ АТРИБУТЫ ОБЯЗАТЕЛЬНЫ, | + | |
- | { | + | |
- | " | + | |
- | выполнена та или иная операция (продажа, | + | |
- | { | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | билета; | + | |
- | " | + | |
- | }, | + | |
- | { | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | } | + | |
- | ] | + | |
- | } | + |