ส่วนขยายการจำหน่ายตั๋วของ Google แผนการเดินทาง

หน้านี้ระบุชุดย่อยของข้อกำหนดการจำหน่ายตั๋ว GTFS ซึ่งอยู่ในขั้นตอนของข้อเสนอในระหว่างการสร้างเอกสารนี้ หน้านี้ยังมีข้อจำกัดเพิ่มเติมอื่นๆ จาก Google อีกด้วย

ข้อกำหนด

จำเป็นต้องกรอกข้อมูลในช่อง departure_time ใน stop_times.txt

ประเภทช่องเพิ่มเติม

ส่วนนี้จะแสดงประเภทช่องเพิ่มเติมและช่องที่มีส่วนขยายจาก Google บางช่องต้องมีค่าในรูปแบบ URI

  • URI: รหัส Uniform Resource Identifier (URI) ที่มีคุณสมบัติครบถ้วนที่มีรูปแบบ สัญลักษณ์พิเศษใน URI ต้องใช้อักขระหลีกที่ถูกต้อง โปรดดูคำอธิบายวิธีสร้างค่า URI แบบเต็มตามเกณฑ์ได้ที่ RFC 3986 Uniform Resource Identifier (URI): ไวยากรณ์ทั่วไป

นามสกุลไฟล์หรือส่วนเพิ่มเติม

ไฟล์ข้อความที่มีสถานะ Extension คือไฟล์ที่มีอยู่แล้วและคุณจำเป็นต้องขยาย คุณต้องเพิ่มฟิลด์ใหม่ที่เราให้คำจำกัดความในตารางต่อไปนี้

ไฟล์ข้อความที่มีสถานะ Addition คือไฟล์ใหม่ที่ส่วนขยายการจำหน่ายตั๋วของ 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 ไม่บังคับ

(รหัสจาก ticketing_deep_links.txt) กำหนด Deep Link ที่จะใช้กับเอเจนซีนี้ สามารถเขียนทับใน routes.txt

routes.txt (ขยายไฟล์แล้ว)

ชื่อช่อง การมีบุคคลอยู่ รายละเอียด
ticketing_deep_link_id ไม่บังคับ (รหัสจาก ticketing_deep_links.txt) กำหนด Deep Link ที่จะใช้สำหรับเส้นทางนี้ หากมี จะเขียนทับช่องใน agency.txt

trips.txt (ขยายไฟล์แล้ว)

ชื่อช่อง การมีบุคคลอยู่ รายละเอียด
ticketing_trip_id ไม่บังคับ

(รหัส) ตัวระบุที่จะส่งผ่าน Deep Link ไม่จำเป็นต้องไม่ซ้ำกัน

หาก ticketing_trip_id ว่างเปล่า ระบบจะใช้ค่าของ trip_id แทน

ticketing_type ไม่บังคับ

(แจกแจง) ระบุว่าการจำหน่ายตั๋วผ่าน Deep Link พร้อมใช้งานสำหรับการเดินทางนี้ไหม

  • 0 หรือว่างเปล่า
    • หากคุณกำหนด ticketing_deep_link_id สำหรับเส้นทางหรือตัวแทน ข้อมูลนี้จะพร้อมใช้งาน
    • ไม่มีให้บริการ
  • 1: ไม่พร้อมใช้งาน

stop_times.txt (ขยายไฟล์แล้ว)

ชื่อช่อง การมีบุคคลอยู่ รายละเอียด
ticketing_type ไม่บังคับ

(Enum) ระบุว่าการจำหน่ายตั๋วผ่าน Deep Link พร้อมใช้งานสำหรับเวลาหยุดนี้หรือไม่ หากกำหนด stop_times.ticketing_type ค่านี้จะลบล้างค่าที่ตั้งไว้ใน trip.ticketing_type

  • ว่างเปล่า: ใช้ค่าจาก trip.ticketing_type
  • 0:
    • หากคุณกำหนด ticketing_deep_link_id สำหรับเส้นทางหรือตัวแทน ข้อมูลนี้จะพร้อมใช้งาน
    • ไม่มีให้บริการ
  • 1: ไม่พร้อมใช้งาน

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 จำเป็น (รหัส) กำหนดรหัสสำหรับ Deep Link
web_url ไม่บังคับ

(URL) URL ที่จะเข้าชมสําหรับการทำ Deep Link

ช่องนี้ไม่สามารถแปลผ่าน translations.txt ได้

android_intent_uri ไม่บังคับ

(URI) URI ที่จะส่งต่อไปยังแอป Android ที่มาพร้อมเครื่องด้วย Intent android.intent.action.VIEW

หากเว้นว่างไว้ หมายความว่าคุณจะไม่สามารถทำ Deep Link ไปยังแอป Android ที่มาพร้อมเครื่อง

ดูข้อมูลเพิ่มเติมเกี่ยวกับ Deep Link ใน Android ได้ที่สร้าง Deep Link ไปยังเนื้อหาแอป

ช่องนี้ไม่สามารถแปลผ่าน translations.txt ได้

ios_universal_link_url ไม่บังคับ

(URL) URL ของลิงก์สากลที่จะเรียกใช้ใน iOS

หากเว้นว่างไว้ การทำ Deep Link จะไม่แสดงบน iOS

ดูข้อมูลเพิ่มเติมได้ที่ลิงก์ทั่วไปใน iOS

ช่องนี้ไม่สามารถแปลผ่าน translations.txt ได้

ตัวยึดตำแหน่งช่องในการเรียก API

Google เรียกใช้ URL ที่กำหนดไว้ใน ticketing_deep_links.txt ด้วยพารามิเตอร์ต่อไปนี้

ชื่อช่อง รายละเอียด
service_date

(วันที่ สามารถเกิดซ้ำ) วันให้บริการของการเดินทาง

ใช้ช่องนี้สำหรับวันที่ที่การเดินทางจะออกเดินทางจากจุดแวะพักแรก

ช่องนี้จัดรูปแบบเป็นอาร์เรย์ JSON

ticketing_trip_id

(รหัสจาก trips.txt ซ้ำกันได้) ตัวระบุการเดินทาง

ช่องนี้จัดรูปแบบเป็นอาร์เรย์ JSON

from_ticketing_stop_time_id

(ทำซ้ำ) ตัวระบุของ stop_time ที่เริ่มเลกได้

สำหรับเวลาสิ้นสุดที่ระบุ ค่าจะเป็นดังนี้

  • ticketing_stop_id ที่กำหนดไว้ใน ticketing_identifiers.txt สำหรับ agency_id และ stop_id ของ stop_time

  • ไม่เช่นนั้นจะกลับอยู่ในstop_sequence

ช่องนี้จัดรูปแบบเป็นอาร์เรย์ JSON

to_ticketing_stop_time_id

(ซ้ำได้) ตัวระบุของ stop_time ที่สิ้นสุดขา

ดูคําอธิบายเกี่ยวกับแหล่งที่มาของค่าได้ที่ from_ticketing_stop_time_id

ช่องนี้จัดรูปแบบเป็นอาร์เรย์ JSON

boarding_time

(ISO 8601, ซ้ำได้) เวลาออกเดินทาง departure_time จาก stop_time ที่เริ่มการเดินทาง

ใช้ช่องนี้เพื่อดูวันที่และเวลาจริงที่ผู้โดยสารขึ้นรถ

ค่าเวลาของช่องนี้สอดคล้องกับ ISO 8601 ที่มีรูปแบบสตริงต่อไปนี้

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

เวลาด้านล่างทั้งหมดเหมือนกันในเขตเวลาที่ต่างกัน

  • ในลอนดอน สหราชอาณาจักร: 2019-07-29T18:26:00+01:00
  • ในนิวยอร์ก สหรัฐอเมริกา-นิวยอร์ก: 2019-07-29T13:26:00-04:00
  • ในโตเกียว ประเทศญี่ปุ่น: 2019-07-30T02:26:00+09:00

ช่องนี้จัดรูปแบบเป็นอาร์เรย์ JSON

arrival_time

(ISO 8601, สามารถทำซ้ำ) เวลาถึง, Reach_time ที่ Stop_time ที่สิ้นสุด

ค่าเวลาของช่องนี้สอดคล้องกับ ISO 8601 โดยมีรูปแบบสตริงต่อไปนี้

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

เวลาด้านล่างทั้งหมดเหมือนกันในเขตเวลาที่ต่างกัน

  • ในลอนดอน สหราชอาณาจักร: 2019-07-29T18:46:00+01:00
  • ในนิวยอร์ก สหรัฐอเมริกา-นิวยอร์ก: 2019-07-29T13:46:00-04:00
  • ในโตเกียว, ญี่ปุ่น: 2019-07-30T02:46:00+09:00

ช่องนี้จัดรูปแบบเป็นอาร์เรย์ 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

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,Daily,ri1,"TGV INOUI 6603",FR_SNCF_6603

ti2,งบประมาณรายวัน,ri1,"TGV INOUI 6681",FR_SNCF_6681

ti3,ทุกวัน,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_uri ios_universal_link_url

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

หากส่งคำขอในวันที่ 19/07/2019 และเวลา GTFS อยู่ในเขตเวลา UTC+1 ต่อไปนี้เป็นการเรียกใช้เว็บ

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 ของ Deep Link เดียวกัน เอเจนซีหรือเส้นทางเหล่านั้นจะต้องแชร์ค่าเดียวสำหรับช่อง ticketing_deep_link_id การดำเนินการนี้จะทำให้สามารถโอนระหว่างตัวแทนหรือเส้นทางได้

ตั้งค่าที่สอดคล้องกันสำหรับ ticketing_type

ค่า ticketing_type สำหรับจุดแวะหนึ่งๆ จะต้องสอดคล้องกันในทุกแถวในไฟล์ stop_times.txt

แมป ticketing_stop_id สำหรับจุดแวะพักของทั้งระดับบนสุดและรายย่อย ทำการแมปสำหรับจุดแวะพักหลักและจุดย่อยทั้งหมดที่ต้องมีการจำหน่ายตั๋ว ในไฟล์ ticketing_identifiers.txt ค่า ticketing_stop_id จะไม่ถ่ายทอดระหว่างหยุดระดับบนสุดและองค์ประกอบย่อย
แมป ticketing_stop_id สําหรับแต่ละเอเจนซีที่ใช้จุดแวะพักเดียวกันในฟีด

ในฟีดแบบคงที่ หากเอเจนซีหลายรายที่เปิดใช้การจำหน่ายตั๋วร่วมกันใช้จุดแวะพักเดียวกัน ก็จะต้องมีการแมปสำหรับเอเจนซีแต่ละแห่ง

ดูรายละเอียดเพิ่มเติมได้ที่ส่วนคําจํากัดความของช่องสำหรับ ticketing_identifiers.txt

ใช้ Android App Link เมื่อต้องใช้ Deep Link ไปยังแอป Android

หากพาร์ทเนอร์ต้องการเปิดแอป Android จาก Deep Link ให้ตั้งค่า Deep Link เป็น Android App Link

ใช้ Universal Link ของ iOS เมื่อต้องใช้ Deep Link ไปยังแอป iOS หากพาร์ทเนอร์ต้องการเปิดแอป iOS จาก Deep Link ให้ตั้งค่า Deep Link เป็น Universal Link ของ iOS