Rozszerzenia dotyczące sprzedaży biletów w środkach transportu publicznego Google

Ta strona definiuje podzbiór specyfikacji GTFS dotyczących biletów, która jest na etapie składania oferty podczas tworzenia tego dokumentu. Strona ta zawiera również kilka dodatkowych ograniczeń: Google.

Wymagania

Pole departure_time w stop_times.txt jest wymagane.

Dodatkowe typy pól

W tej sekcji przedstawiamy dodatkowe typy pól oraz te z rozszerzeniami od Google. Niektóre wymagają wartości w postaci identyfikatora URI.

  • URI: pełny kwalifikowany identyfikator URI zawierający schemat. Dowolne znaki specjalne w identyfikatorze URI muszą zawierać odpowiednie znaki zmiany znaczenia. Opis sposobu tworzenia w pełni kwalifikowane wartości identyfikatora URI znajdziesz w dokumencie RFC 3986 Uniform Resource Identifier (URI): Ogólna składnia.

Rozszerzenia plików lub dodatki

Pliki tekstowe ze stanem Rozszerzenie to pliki, które już istnieją i które jest wymagane i rozszerzenia. Musisz dodać nowe pola zdefiniowane w poniższej tabeli.

Pliki tekstowe ze stanem Addition (dodawanie) to nowe pliki wprowadzone przez funkcję Transport publiczny Google. Rozszerzenia biletów. Musisz utworzyć te pliki zgodnie z Definicje pól podane za tabelą. Koniecznie uwzględnianie tych plików w pliku danych.

Nazwa pliku Stan Definiuje
agency.txt Rozszerzenie Dodaje agency.ticketing_deep_link_id.
routes.txt Rozszerzenie Dodaje routes.ticketing_deep_link_id.
trips.txt Rozszerzenie Dodaje trips.ticketing_trip_id i trips.ticketing_type.
stop_times.txt Rozszerzenie Dodaje stop_times.ticketing_type.
ticketing_identifiers.txt Dodanie Nowy plik. Więcej informacji znajdziesz w artykule Definicje pól.
ticketing_deep_links.txt Dodanie Nowy plik. Więcej informacji znajdziesz w artykule Definicje pól.

Definicje pól

agency.txt (plik rozszerzony)

Nazwa pola Obecność Szczegóły
ticketing_deep_link_id Opcjonalnie

(Identyfikator z ticketing_deep_links.txt) Określa precyzyjny link, który ma być używany w tym przypadku agencjami. Można zastąpić w: routes.txt.

routes.txt (plik rozszerzony)

Nazwa pola Obecność Szczegóły
ticketing_deep_link_id Opcjonalnie (Identyfikator z ticketing_deep_links.txt) Określa precyzyjny link, który ma być używany w tym przypadku . Jeśli ta opcja jest dostępna, zastępuje pole w agency.txt.

trips.txt (plik rozszerzony)

Nazwa pola Obecność Szczegóły
ticketing_trip_id Opcjonalnie

(ID) Identyfikator do przekazywania precyzyjnego linku. Nie musi być niepowtarzalna.

Jeśli pole ticketing_trip_id jest puste, system używa wartości trip_id.

ticketing_type Opcjonalnie

(Enum) Określ, czy w przypadku tej podróży dostępna jest sprzedaż biletów za pomocą precyzyjnego linku:

  • 0 lub puste:
    • Jeśli określisz właściwość ticketing_deep_link_id dla trasy lub agencji, jest to i dostępności informacji.
    • W innym przypadku niedostępne.
  • 1: niedostępne.

stop_times.txt (plik rozszerzony)

Nazwa pola Obecność Szczegóły
ticketing_type Opcjonalnie

(Enum) Określa, czy dla tego czasu przestoju dostępna jest sprzedaż biletów za pomocą precyzyjnego linku. Jeśli zdefiniowanej przez Ciebie w funkcji stop_times.ticketing_type, zastąpi ona wartość ustawioną w trip.ticketing_type

  • Pusta: używa wartości z trip.ticketing_type.
  • 0:
    • Jeśli określisz właściwość ticketing_deep_link_id dla trasy lub agencji, jest to i dostępności informacji.
    • W innym przypadku niedostępne.
  • 1: niedostępne.

ticketing_identifiers.txt (plik dodany)

Najczęściej jest to związane z tym, że każdy przystanek ma identyfikator potrzebny do przetworzenia płatności. Różne agencje mogą używać tego samego identyfikatora dla danego przystanku. Gdy wiele agencji wyświetla reklamy ten sam przystanek, powtórz mapowanie dla każdej agencji.

Nazwa pola Obecność Szczegóły
ticketing_stop_id Wymagany (ID) Określa domyślny identyfikator biletu dla tego przystanku dla agencji.
stop_id Wymagany (Identyfikator z stops.txt) Przystanek, dla którego domyślna Zdefiniowano ticketing_stop_id.
agency_id Wymagany (Identyfikator od agency.txt) Agencja przystanku, dla którego domyślna Zdefiniowano ticketing_stop_id.

ticketing_deep_links.txt (plik dodany)

Nazwa pola Obecność Szczegóły
ticketing_deep_link_id Wymagany (ID) – definiuje identyfikator precyzyjnego linku.
web_url Opcjonalnie

(URL) Adres URL strony, na którą należy przejść na potrzeby precyzyjnych linków.

Tego pola nie można przetłumaczyć za pomocą funkcji translations.txt.

android_intent_uri Opcjonalnie

(URI) Identyfikator URI przekazywany do natywnej aplikacji na Androida ze znakiem Intencja android.intent.action.VIEW.

Jeśli to pole jest puste, oznacza to, że nie można utworzyć precyzyjnego linku do natywnej aplikacji na Androida.

Więcej informacji o precyzyjnych linkach na Androidzie znajdziesz w artykule Tworzenie precyzyjnych linków zawartości aplikacji.

Tego pola nie można przetłumaczyć za pomocą funkcji translations.txt.

ios_universal_link_url Opcjonalnie

(URL) Uniwersalny adres URL linku do wywołania w iOS.

Jeśli to pole jest puste, precyzyjne linki nie będą się wyświetlać w iOS.

Więcej informacji znajdziesz w artykule Uniwersalne linki na iOS.

Tego pola nie można przetłumaczyć za pomocą funkcji translations.txt.

Zmienne pól w wywołaniu interfejsu API

Google wywołuje adresy URL zdefiniowane w elemencie ticketing_deep_links.txt za pomocą: parametry:

Nazwa pola Szczegóły
service_date

(Data, powtarzalna) Dzień obsługi podróży.

W tym polu podaj datę odjazdu z pierwszego przystanku.

To pole jest formatowane jako tablica JSON.

ticketing_trip_id

(Identyfikator z trips.txt, powtarzalny) Identyfikator podróży.

To pole jest formatowane jako tablica JSON.

from_ticketing_stop_time_id

(Powtarzalne) Identyfikator elementu stop_time, od którego zaczyna się etap.

Dla określonego czasu zakończenia wartość jest następująca:

  • Pole ticketing_stop_id zdefiniowane w: ticketing_identifiers.txt dla agency_id i stop_id stop_time.

  • W przeciwnym razie zostanie zwrócona na stop_sequence.

To pole jest formatowane jako tablica JSON.

to_ticketing_stop_time_id

(Powtarzalne) Identyfikator elementu stop_time, na którym kończy się etap.

Wyjaśnienie dotyczące wyprowadzania wartości znajdziesz w opisie from_ticketing_stop_time_id

To pole jest formatowane jako tablica JSON.

boarding_time

(ISO 8601, powtarzalna) Godzina odjazdu: departure_time, stop_time, od której zaczyna się noga.

Użyj tego pola, aby podać rzeczywistą datę i godzinę wejścia do pojazdu przez pasażera.

Wartość czasu w tym polu jest zgodna z ISO 8601 z następujący format ciągu:

YYYY-MM-DDThh:mm:ss±hh:mm

Wszystkie podane niżej godziny są takie same, w różnych strefach czasowych:

  • W Londynie (Wielka Brytania): 2019-07-29T18:26:00+01:00
  • W Nowym Jorku (USA): 2019-07-29T13:26:00-04:00
  • W Tokio (Japonia): 2019-07-30T02:26:00+09:00

To pole jest formatowane jako tablica JSON.

arrival_time

(ISO 8601, powtarzalna) Godzina przybycia, czas przyjazdu w strefie stop_time, w której kończy się.

Wartość czasu w tym polu jest zgodna z wartością ISO 8601 z następującym formatem ciągu znaków:

YYYY-MM-DDThh:mm:ss±,hh:mm

Wszystkie podane niżej godziny są takie same, w różnych strefach czasowych:

  • Londyn (Wielka Brytania): 2019-07-29T18:46:00+01:00
  • Nowy Jork (USA): 2019-07-29T13:46:00+04:00
  • W Tokio, JP: 2019-07-30T02:46:00+09:00

To pole jest formatowane jako tablica JSON.

Przykłady

W tym przykładzie są to etapy podróży pasażera:

  • W dniu usługi (20190716) identyfikator biletu w podróży (ti1) zaczyna się od przystanku. identyfikator biletu na czas: 11, aby zatrzymać bilet na czas o identyfikatorze 12. Pasażer wejście na pokład o 14:00 czasu UTC i przylot o 14:50 czasu UTC.
  • W dniu usługi (20190716) identyfikator biletu w podróży (ti2) zaczyna się od przystanku. identyfikator biletu na czas: 21, aby zatrzymać bilet na czas o identyfikatorze 22. Pasażer wejście na pokład o 15:00 czasu UTC i przylot o 15:50 czasu UTC.

W tym przykładzie web_url to https://examplepetstore.com.

Biorąc pod uwagę wszystkie te informacje, w pliku danych użyj podanych niżej wartości podróż:

Nazwa pola Szczegóły
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"]

Oto końcowy identyfikator URI po zakodowaniu:

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

Przykłady różnych ticketing_stop_id wartości

Przystanki mogą mieć różne identyfikatory na potrzeby sprzedaży biletów, ticketing_identifiers.txt. Wartości, które są pogrubione, to wartości znalezione w wywołaniu internetowym i opisanej po plikach.

stop.txt

stop_idstop_name

si1,„Paryż Gare-de-Lyon”

si2,„Lyon Part-Dieu”

routes.txt

route_id, route_long_name, ticketing_deep_link_id

ri1,"TGV inOui Paris-Lyon",tdl1

trips.txt

trip_id,service_id,route_id,trip_short_name, ticketing_trip_id

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

trip_id,stop_sequence,stop_id,arrival_time, departure_time

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

stop_id, agency_id, ticketing_stop_id

si1,agencja1,4924

si2,agencja1,4676

ticketing_deep_links.txt

ticketing_deep_link_id, web_url, android_intent_uri ios_universal_link_url

tdl1, https://examplepetstore.com/api/gtfs/web, https://examplepetstore.com/api/gtfs/android, https://przykladowysklepzoologiczny.com/api/gtfs/ios

Jeśli żądanie zostało przesłane 19.07.2019, a godziny GTFS są podane w strefie czasowej UTC+1, wtedy mamy do czynienia z internetem:

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

Aby wdrożyć rozszerzenia sprzedaży biletów w transporcie publicznym, postępuj zgodnie z tymi zaleceniami:

Wytyczne
Jeśli to możliwe, udostępniaj precyzyjne linki między agencjami lub trasami.

Jeśli w statycznym pliku danych wiele agencji lub tras ma te same adresy URL precyzyjnych linków, muszą mieć jedną wartość w polu ticketing_deep_link_id. Ten umożliwia przesyłanie danych między agencjami lub trasami.

Ustaw spójne wartości dla funkcji ticketing_type.

Wartość ticketing_type dla danego przystanku musi być spójna we wszystkich wiersze w pliku stop_times.txt.

Zmapuj ticketing_stop_id na przystanki nadrzędne i podrzędne. Przeprowadź mapowanie wszystkich przystanków nadrzędnych i podrzędnych, które wymagają biletów. W ticketing_identifiers.txt, wartości ticketing_stop_id nie zawierają propaguje się między przystankiem nadrzędnym a jego podrzędnymi.
Mapa ticketing_stop_id dla każdej agencji, która korzysta z tego samego przystanku w kanału.

Jeśli w statycznym pliku danych wiele agencji, które umożliwiają sprzedaż biletów, ma ten sam przystanek, dla każdej agencji musi być dostępne mapowanie.

Więcej informacji znajdziesz w sekcji Definicje pól. za ticketing_identifiers.txt.

Używaj linków aplikacji na Androida, gdy wymagany jest precyzyjny link do aplikacji na Androida.

Jeśli partner chce otwierać aplikację na Androida za pomocą precyzyjnego linku, ustaw precyzyjny link jako link aplikacji na Androida.

Jeśli wymagany jest precyzyjny link do aplikacji na iOS, użyj uniwersalnych linków na iOS. Jeśli partner chce otwierać aplikację na iOS za pomocą precyzyjnego linku, ustaw precyzyjny link jako Uniwersalny link na iOS.