На этой странице представлена спецификация GTFS Ticketing, которая на момент создания документа рассматривается как предложение. Также, здесь приведены несколько дополнительных ограничений от Google.
Требования
Поле departure_time
в файле stop_times.txt
является обязательным.
Дополнительные типы полей
В этом разделе описаны дополнительные типы полей, а также поля с расширениями от Google. В некоторых полях требуются значения в форме URI.
- URI – унифицированный идентификатор ресурсов, включающий схему. Любые специальные символы в URI должны быть экранированы. Чтобы узнать, как правильно составить URI, прочитайте документ Унифицированный идентификатор ресурса: общий синтаксис (RFC 3986).
Расширения или добавления в файлах
Текстовые файлы со статусом Расширение – это существующие файлы, которые необходимо расширить. Вы должны добавить новые поля, определенные в таблице ниже.
Текстовые файлы со статусом Добавление – это новые файлы, представленные в расширениях Google Транспорта для продажи билетов. Вы должны создать эти файлы в соответствии с определениями полей, приведенными ниже. Обязательно добавьте эти файлы в свой фид.
Название файла | Статус | Что определяет |
---|---|---|
agency.txt |
Расширение | Добавляет agency.ticketing_deep_link_id . |
routes.txt |
Расширение | Добавляет routes.ticketing_deep_link_id . |
trips.txt |
Расширение | Добавляет trips.trip_ticketing_id и trips.ticketing_type . |
stop_times.txt |
Расширение | Добавляет stop_times.ticketing_type . |
ticketing_identifiers.txt |
Добавление | Новый файл. См. определения полей. |
ticketing_deep_links.txt |
Добавление | Новый файл. См. определения полей. |
Определения полей
agency.txt
(используется расширение)
Название поля | Тип поля | Описание |
---|---|---|
ticketing_deep_link_id |
Необязательное |
Идентификатор из файла |
routes.txt
(используется расширение)
Название поля | Тип поля | Описание |
---|---|---|
ticketing_deep_link_id |
Необязательное | Идентификатор из файла ticketing_deep_links.txt . Определяет ссылку на контент, используемую для этого маршрута. Если присутствует, перезаписывает поле в файле agency.txt . |
trips.txt
(используется расширение)
Название поля | Тип поля | Описание |
---|---|---|
ticketing_trip_id |
Необязательное |
Идентификатор, используемый в ссылке на контент. Не требуется, чтобы он был уникальным. Если значение |
ticketing_type |
Необязательное |
Перечисление, которое определяет, доступна ли для этого рейса продажа билетов по ссылке на контент.
|
stop_times.txt
(используется расширение)
Название поля | Тип поля | Описание |
---|---|---|
ticketing_type |
Необязательное |
Перечисление, которое определяет, доступна ли для этого времени остановки продажа билетов по ссылке на контент. Если поле
|
ticketing_identifiers.txt
(используется добавление)
Самый распространенный вариант продажи билетов реализуется следующим образом: для каждой остановки задается идентификатор, используемый для обработки платежей. Если разные агентства используют одинаковый идентификатор для обозначения определенной остановки, то нужно повторить настройку этого параметра для каждого из таких агентств.
Название поля | Тип поля | Описание |
---|---|---|
ticketing_stop_id |
Обязательное | Идентификатор. Определяет идентификатор продажи билетов по умолчанию, используемый для определенной остановки в конкретном агентстве. |
stop_id |
Обязательное | Идентификатор из файла stops.txt . Обозначает остановку, для которой задан параметр ticketing_stop_id по умолчанию. |
agency_id |
Обязательное | Идентификатор из файла agency.txt . Обозначает агентство, использующее остановку, для которой задан параметр ticketing_stop_id по умолчанию. |
ticketing_deep_links.txt
(используется добавление)
Название поля | Тип поля | Описание |
---|---|---|
ticketing_deep_link_id |
Обязательное | Идентификатор. Определяет идентификатор для ссылки на контент. |
web_url |
Необязательное |
URL, который используется для перехода по ссылке на контент. Содержимое этого поля нельзя перевести с помощью файла |
android_intent_uri |
Необязательное |
Идентификатор URI, используемый для приложений Android с действием Пустое поле означает отсутствие ссылки на контент приложения для Android. Подробнее о том, как создавать ссылки на контент приложения для Android… Содержимое этого поля нельзя перевести с помощью файла |
ios_universal_link_url |
Необязательное |
URL универсальной ссылки для iOS. Если значение не указано, ссылки на контент не показываются на платформе iOS. Подробнее об iOS Universal Links… Содержимое этого поля нельзя перевести с помощью файла |
Теги полей для вызова API
Google вызывает URL, определенные в файле ticketing_deep_links.txt
, со следующими параметрами:
Название поля | Описание |
---|---|
service_date |
День обслуживания рейса (дата, повторяющиеся данные). Формат этого поля соответствует массиву JSON. |
ticketing_trip_id |
Идентификатор рейса из файла Формат этого поля соответствует массиву JSON. |
from_ticketing_stop_time_id |
Идентификатор времени остановки ( Значение времени остановки задается следующим образом:
Формат этого поля соответствует массиву JSON. |
|
Идентификатор времени остановки ( Значение для этого параметра определяется так же, как и для поля Формат этого поля соответствует массиву JSON. |
boarding_time |
Время отправления ( Значение времени для этого поля соответствует стандарту ISO 8601. Используется следующий формат:
Ниже указано одно и то же время для разных часовых поясов:
Формат этого поля соответствует массиву JSON. |
arrival_time |
Время прибытия (arrival_time) для параметра stop_time в конце отрезка пути (ISO 8601, повторяющиеся данные). Значение времени для этого поля соответствует стандарту ISO 8601. Используется следующий формат:
Ниже указано одно и то же время для разных часовых поясов:
Формат этого поля соответствует массиву JSON. |
Примеры
Исходные данные по отрезкам маршрута:
- Дата обслуживания –
20190716
, идентификатор рейса –ti1
, идентификатор времени остановки в начале отрезка маршрута –11
, идентификатор времени остановки в конце отрезка маршрута –12
. Пассажир садится в транспортное средство в 14:00 (UTC) и прибывает в 14:50 (UTC). - Дата обслуживания –
20190716
, идентификатор рейса –ti2
, идентификатор времени остановки в начале отрезка маршрута –21
, идентификатор времени остановки в конце отрезка маршрута –22
. Пассажир садится в транспортное средство в 15:00 (UTC) и прибывает в 15:50 (UTC).
Сайт бронирования (web_url
): https://examplepetstore.com
.
Значения параметров:
Название поля | Описание |
---|---|
service_date |
["20190716" , "20190716"] |
ticketing_trip_id |
["ti1" , "ti2"] |
from_ticketing_stop_time_id |
["11" , "21"] |
to_ticketing_stop_time_id |
["12" , "22"] |
boarding_time |
["2019-07-16T14:00:00+00:00" , "2019-07-16T15:00:00+00:00"] |
arrival_time |
["2019-07-16T14:50:00+00:00" , "2019-07-16T15:50:00+00:00"] |
Конечный URI (после кодирования):
https://examplepetstore.com?service_date=%5B%2220190716%22,%2220190716%22%5D
&ticketing_trip_id=%5B%22ti1%22,%22ti2%22%5D&from_ticketing_stop_time_id=%5B%2211%22,%2221%22%5D
&to_ticketing_stop_time_id=%5B%2212%22,%2222%22%5D&boarding_time=%5B%222019-07-16T14:00:00%2B00:00
%22,%222019-07-16T15:00:00%2B00:00%22%5D&arrival_time=%5B%222019-07-16T14:50:00%2B00:00 %22,%222019-07-16T15:50:00%2B00:00%22%5D
Примеры разных значений параметра ticketing_stop_id
У остановок могут быть разные идентификаторы при использовании полей из файла ticketing_identifiers.txt
. Ниже жирным шрифтом выделены примеры таких значений.
stop.txt |
---|
|
routes.txt |
---|
|
trips.txt |
---|
ti1,everyday,ri1,"TGV INOUI 6603",FR_SNCF_6603 ti2,everyday,ri1,"TGV INOUI 6681",FR_SNCF_6681 ti3,everyday,ri1,"TGV INOUI 6607",FR_SNCF_6607 |
stop_times.txt |
---|
ti1,1,si1,06:59:00,06:59:00 ti1,2,si2,08:56:00,08:56:00 ti2,1,si1,07:53:00,07:53:00 ti2,2,si2,10:00:00,10:00:00 ti3,1,si1,08:59:00,08:59:00 ti3,2,si2,10:56:00,10:56:00 |
ticketing_identifiers.txt |
---|
si1,agency1,4924 si2,agency1,4676 |
ticketing_deep_links.txt |
---|
tdl1, https://examplepetstore.com/api/gtfs/web, https://examplepetstore.com/api/gtfs/android, https://examplepetstore.com/api/gtfs/ios |
Если запрос выполнен 19 июля 2019 г., а время для GTFS указывается в формате UTC+1, то финальный URL будет иметь следующий вид:
https://examplepetstore.com/api/gtfs/web?service_date=%5B%2220190719%22%5D&ticketing_trip_id=
%5B%22FR_SNCF_6603%22%5D&from_ticketing_stop_time_id=%5B%224924%22%5D&to_ticketing_stop_time_id=
%5B%224676%22%5D&boarding_time=%5B%222019-07-19T05:59:00%2B00:00%22%5&arrival_time=%5B%222019-07-19T07:56:00%2B00:00%22%5D
Рекомендации
При внедрении расширений Google Транспорта для продажи билетов следуйте приведенным ниже рекомендациям.
Рекомендации | |
---|---|
По возможности используйте одинаковые ссылки на контент для всех агентств и маршрутов. |
Если в фиде статических данных для нескольких агентств или маршрутов используются одинаковые URL ссылок на контент, то в поле |
Согласуйте значения ticketing_type . |
В файле |
Сопоставьте значения ticketing_stop_id для родительских и дочерних остановок. |
Выполните сопоставление для всех родительских и дочерних остановок, включенных в продажу билетов. В файле ticketing_identifiers.txt значения ticketing_stop_id не передаются между родительскими и их дочерними остановками. |
Сопоставьте значения ticketing_stop_id для всех агентств, использующих эту остановку в фиде. |
Если несколько агентств с продажей билетов используют в фиде статических данных одну и ту же остановку, то сопоставление должно быть выполнено для всех этих агентств. Подробная информация приведена в разделе Определения полей ( |
Если требуется ссылка на контент приложения для Android, используйте Android App Links. |
Если партнер хочет, чтобы по ссылке на контент открывалось приложение для Android, настройте ее с помощью Android App Links. |
Если требуется ссылка на контент приложения для iOS, используйте iOS Universal Links. | Если партнер хочет, чтобы по ссылке на контент открывалось приложение для iOS, настройте ее с помощью iOS Universal Links. |