Perluasan penjualan tiket Google Transit

Halaman ini menentukan subkumpulan spesifikasi Penjualan Tiket GTFS, yang berada di tahap proposal selama pembuatan dokumen ini. Halaman ini juga berisi beberapa batasan tambahan dari Google.

Persyaratan

Kolom departure_time di stop_times.txt harus disediakan.

Jenis Kolom Tambahan

Bagian ini menguraikan jenis kolom tambahan, serta jenis kolom dengan perluasan dari Google.

  • URI: Uniform Resource Identifier (URI) yang sepenuhnya memenuhi syarat yang berisi skema. Karakter khusus dalam URI ini harus menggunakan escape yang benar. Untuk deskripsi cara membuat nilai URI yang sepenuhnya memenuhi syarat, lihat RFC 3986 Uniform Resource Identifier (URI): Generic Syntax.

Perluasan atau penambahan file

Nama file Negara bagian/Provinsi Definisi
agency.txt Perluasan Menambahkan agency.ticketing_deep_link_id
routes.txt Perluasan Menambahkan routes.ticketing_deep_link_id
trips.txt Perluasan Menambahkan trips.trip_ticketing_id, trips.ticketing_type
stop_times.txt Perluasan Menambahkan stop_times.ticketing_type
ticketing_identifiers.txt Tambahan
ticketing_deep_links.txt Tambahan

Definisi Tabel

agency.txt (file yang diperluas)

Nama kolom Ketersediaan Detail
ticketing_deep_link_id Opsional (ID dari ticketing_deep_links.txt) Menentukan deep link yang akan digunakan untuk perusahaan transportasi ini. Dapat ditimpa di routes.txt.

routes.txt (file yang diperluas)

Nama kolom Ketersediaan Detail
ticketing_deep_link_id Opsional (ID dari ticketing_deep_links.txt) Menentukan deep link yang akan digunakan untuk rute ini. Jika ada, akan menimpa ID yang ada di agency.txt.

trips.txt (file yang diperluas)

Nama kolom Ketersediaan Detail
ticketing_trip_id Opsional

(ID) ID yang akan diteruskan dalam deep link. Tidak harus unik.

Akan fallback ke trip_id.

ticketing_type Opsional

(Enum) Tentukan apakah penjualan tiket melalui deep link tersedia untuk perjalanan ini:

  • 0 atau empty: diasumsikan:
    • Tersedia jika ticketing_deep_link_id ditentukan di rute atau perusahaan transportasi umum.
    • Tidak tersedia jika sebaliknya.
  • 1: Tidak tersedia.

stop_times.txt (file yang diperluas)

Nama kolom Ketersediaan Detail
ticketing_type Opsional

(Enum) Tentukan apakah penjualan tiket melalui deep link tersedia untuk perjalanan ini. Jika ditentukan, akan mengganti nilai yang ditetapkan di trip.ticketing_type.

  • Kosong: Seperti yang ditentukan oleh trip.ticketing_type.
  • 0: diasumsikan:
    • Tersedia jika ticketing_deep_link_id ditentukan di rute atau perusahaan transportasi umum.
    • Tidak tersedia jika sebaliknya.

ticketing_identifiers.txt (file yang ditambahkan)

Kasus yang paling umum untuk penjualan tiket adalah setiap perhentian memiliki ID untuk memproses penagihan. Perusahaan transportasi umum yang berbeda-beda mungkin menggunakan ID yang sama untuk perhentian tertentu. Jika sejumlah perusahaan transportasi umum melayani perhentian yang sama, ulangi pemetaan ini untuk setiap perusahaan transportasi umum tersebut.

Nama kolom Ketersediaan Detail
ticketing_stop_id Wajib (ID) Tentukan ID penjualan tiket default untuk perhentian ini untuk perusahaan transportasi umum ini.
stop_id Wajib (ID dari stops.txt) Perhentian yang diberi ticketing_stop_id default.
agency_id Wajib (ID dari agency.txt) Perusahaan transportasi umum yang perhentiannya diberi ticketing_stop_id default.

ticketing_deep_links.txt (file yang ditambahkan)

Nama kolom Ketersediaan Detail
ticketing_deep_link_id Wajib (ID) Tentukan ID untuk deep link.
web_url Opsional

(URL) URL yang akan dikunjungi untuk deep linking.

Terjemahan dapat disediakan melalui translations.txt untuk mengirim penumpang ke URL spesifik per lokalitas.

android_intent_uri Opsional

(URI) URI yang akan diteruskan ke aplikasi Android native dengan intent android.intent.action.VIEW.

Jika kosong, artinya tidak ada deep linking ke aplikasi Android native.

Untuk informasi selengkapnya tentang deep link di Android, lihat Membuat Deep Link ke Konten Aplikasi.

Kolom ini tidak dapat diterjemahkan melalui translations.txt.

ios_universal_link_url Opsional

(URL) URL link universal yang akan dipanggil di iOS.

Jika kosong, deep linking tidak akan ditampilkan di iOS.

Untuk informasi selengkapnya, lihat Link Universal di iOS.

Kolom ini tidak dapat diterjemahkan melalui translations.txt.

Placeholder Kolom di panggilan API

Google memanggil URL sebelumnya dengan parameter berikut:

Nama kolom Ketersediaan Detail
service_date Wajib

(Tanggal, Dapat Diulang) Hari layanan perjalanan.

Kolom ini diformat sebagai array JSON.

ticketing_trip_id Wajib

(ID dari trips.txt, Dapat Diulang) ID perjalanan.

Kolom ini diformat sebagai array JSON.

from_ticketing_stop_time_id Wajib

(Dapat diulang) ID stop_time untuk awal segmen perjalanan.

Untuk waktu perhentian tertentu, nilainya adalah:

  • ticketing_stop_id yang ditentukan di ticketing_identifiers.txt untuk agency_id dan stop_id dari stop_time.
  • Atau, nilai tersebut akan fallback ke stop_sequence.

Kolom ini diformat sebagai array JSON.

to_ticketing_stop_time_id Wajib

(Dapat diulang) ID stop_time untuk akhir segmen perjalanan.

Lihat from_ticketing_stop_time_id untuk penjelasan tentang asal nilai.

Kolom ini diformat sebagai array JSON.

boarding_time Wajib

(ISO 8601, Dapat Diulang) Waktu keberangkatan (departure_time) stop_time untuk awal segmen perjalanan.

Nilai waktu kolom ini sesuai dengan ISO 8601, dengan string format berikut:

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

Semua waktu di bawah ini sama, tetapi dalam zona waktu yang berbeda-beda:

  • Di London, Inggris Raya: 2019-07-29T18:26:00+01:00
  • Di NYC, AS-NY: 2019-07-29T13:26:00-04:00
  • Di Tokyo, Jepang: 2019-07-30T02:26:00+09:00

Kolom ini diformat sebagai array JSON.

Contoh

Jika segmen perjalanannya adalah:

  • Pada tanggal layanan 20190716, ID penjualan tiket perjalanan ti1 dari ID penjualan tiket waktu perhentian 11 ke ID penjualan tiket waktu perhentian 12, naik pukul 14.00 UTC
  • Pada tanggal layanan 20190716, ID penjualan tiket perjalanan ti2 dari ID penjualan tiket waktu perhentian 21 ke ID penjualan tiket waktu perhentian 22, naik pukul 15.00 UTC

Kemudian, web_url adalah: http://myawesomebookingwebsite.com

Nilai parameternya adalah:

Nama kolom Detail
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"]

URI akhir (setelah encoding) adalah:

http://myawesomebookingwebsite.com?service_date=%5B%2220190716%22,%22%2019071622%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

Contoh nilai ticketing_stop_id yang berbeda-beda

Perhentian dapat memiliki ID yang berbeda-beda untuk tujuan penjualan tiket dengan kolom ticketing_identifiers.txt. Nilai yang dicetak tebal adalah nilai yang ditemukan di panggilan web yang dideskripsikan setelah file.

stop.txt

stop_id,stop_name

si1,"Paris 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,agency1,4924

si2,agency1,4676

ticketing_deep_links.txt
ticketing_deep_link_id, web_url, android_intent_url, ios_universal_urltdl1, https://www.thetrainline.com/api/gtfs/web, https://www.thetrainline.com/api/gtfs/android, https://www.thetrainline.com/api/gtfs/ios

Panggilan untuk web, jika permintaan dibuat pada 19-07-2019 dan waktu GTFS berada dalam zona waktu UTC+1, adalah:

http://www.thetrainline.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-19T07:59:00%2B00:00%22%5D