Google Transit के टिकट एक्सटेंशन

इस पेज पर, GTFS-टिकट की सुविधा के निर्देशों के सबसेट के बारे में बताया गया है. इस दस्तावेज़ को बनाते समय, यह सुझाव के तौर पर दिया गया है. इस पेज पर, Google की ओर से लगाई गई कई और पाबंदियां भी शामिल हैं.

ज़रूरी शर्तें

stop_times.txt में departure_time फ़ील्ड ज़रूरी है.

अन्य फ़ील्ड टाइप

इस सेक्शन में, अन्य फ़ील्ड टाइप और Google के एक्सटेंशन के बारे में बताया गया है. कुछ फ़ील्ड में यूआरआई के तौर पर वैल्यू डालनी होती हैं.

फ़ाइल एक्सटेंशन या अन्य चीज़ें जोड़ना

एक्सटेंशन स्टेटस वाली टेक्स्ट फ़ाइलें, पहले से मौजूद फ़ाइलें होती हैं. इन्हें एक्सटेंशन देना होता है. आपको नीचे दी गई टेबल में बताए गए नए फ़ील्ड जोड़ने होंगे.

जोड़ी गई स्थिति वाली टेक्स्ट फ़ाइलें, Google Transit के टिकट बेचने की सुविधा के एक्सटेंशन की नई फ़ाइलें हैं. आपको ये फ़ाइलें, नीचे दी गई टेबल के बाद दी गई फ़ील्ड की परिभाषाओं के मुताबिक बनानी होंगी. अपने फ़ीड में ये फ़ाइलें ज़रूर शामिल करें.

फ़ाइल का नाम स्थिति बताता है
agency.txt Extension agency.ticketing_deep_link_id जोड़ता है.
routes.txt Extension routes.ticketing_deep_link_id जोड़ता है.
trips.txt Extension इसमें trips.ticketing_trip_id और trips.ticketing_type जोड़े जाते हैं.
stop_times.txt Extension stop_times.ticketing_type जोड़ता है.
ticketing_identifiers.txt जोड़ नई फ़ाइल. ज़्यादा जानकारी के लिए, फ़ील्ड की परिभाषाएं देखें.
ticketing_deep_links.txt जोड़ नई फ़ाइल. ज़्यादा जानकारी के लिए, फ़ील्ड की परिभाषाएं देखें.

फ़ील्ड के मतलब

agency.txt (फ़ाइल एक्सटेंड की गई)

फ़ील्ड का नाम मौजूदगी विवरण
ticketing_deep_link_id वैकल्पिक

(ticketing_deep_links.txt से मिला आईडी) इस एजेंसी के लिए इस्तेमाल किए जाने वाले डीप लिंक के बारे में बताता है. routes.txt में जाकर, इसे बदला जा सकता है.

routes.txt (फ़ाइल एक्सटेंड की गई)

फ़ील्ड का नाम मौजूदगी विवरण
ticketing_deep_link_id वैकल्पिक (ticketing_deep_links.txt का आईडी) इस रूट के लिए इस्तेमाल किए जाने वाले डीप लिंक के बारे में बताता है. इस पैरामीटर के मौजूद होने पर, agency.txt में मौजूद फ़ील्ड को बदल दिया जाता है.

trips.txt (फ़ाइल एक्सटेंड की गई)

फ़ील्ड का नाम मौजूदगी विवरण
ticketing_trip_id वैकल्पिक

(आईडी) डीप लिंक में पास करने के लिए आइडेंटिफ़ायर. यह यूनीक होनी ज़रूरी नहीं है.

अगर ticketing_trip_id खाली है, तो सिस्टम इसके बजाय trip_id की वैल्यू का इस्तेमाल करता है.

ticketing_type वैकल्पिक

(Enum) तय करें कि इस यात्रा के लिए, डीप लिंक की मदद से टिकट बुक करने की सुविधा उपलब्ध है या नहीं:

  • 0 या खाली:
    • अगर आपने रूट या एजेंसी के लिए ticketing_deep_link_id तय किया है, तो यह विकल्प उपलब्ध है.
    • ऐसा नहीं करने पर, यह सुविधा उपलब्ध नहीं होगी.
  • 1: उपलब्ध नहीं है.

stop_times.txt (फ़ाइल एक्सटेंड की गई)

फ़ील्ड का नाम मौजूदगी विवरण
ticketing_type वैकल्पिक

(Enum) इससे यह तय होता है कि इस स्टॉप के समय के लिए, डीप लिंक की मदद से टिकट बुक करने की सुविधा उपलब्ध है या नहीं. अगर आपने 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 ज़रूरी है (आईडी) डीप लिंक के लिए आईडी तय करता है.
web_url वैकल्पिक

(यूआरएल) डीप लिंक करने के लिए विज़िट किया जाने वाला यूआरएल.

इस फ़ील्ड का अनुवाद translations.txt की मदद से नहीं किया जा सकता.

android_intent_uri वैकल्पिक

(यूआरआई) android.intent.action.VIEW इंटेंट के साथ किसी नेटिव Android ऐप्लिकेशन को पास करने के लिए यूआरआई.

अगर यह फ़ील्ड खाली है, तो इसका मतलब है कि किसी नेटिव Android ऐप्लिकेशन को डीप लिंक नहीं किया जा सकता.

Android पर डीप लिंक के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन के कॉन्टेंट के लिए डीप लिंक बनाएं लेख पढ़ें.

इस फ़ील्ड का अनुवाद translations.txt की मदद से नहीं किया जा सकता.

ios_universal_link_url वैकल्पिक

(यूआरएल) iOS पर ट्रिगर करने के लिए यूनिवर्सल लिंक का यूआरएल.

अगर यह फ़ील्ड खाली है, तो iOS पर डीप लिंकिंग की सुविधा नहीं दिखती.

ज़्यादा जानकारी के लिए, iOS पर यूनिवर्सल लिंक देखें.

इस फ़ील्ड का अनुवाद, translations.txt की मदद से नहीं किया जा सकता.

एपीआई कॉल में फ़ील्ड प्लेसहोल्डर

Google, ticketing_deep_links.txt में बताए गए यूआरएल को इन पैरामीटर के साथ कॉल करता है:

फ़ील्ड का नाम विवरण
service_date

(तारीख, दोहराया जा सकता है) यात्रा के दौरान सर्विस का दिन.

इस फ़ील्ड का इस्तेमाल, यात्रा के पहले स्टॉप से निकलने की तारीख के लिए करें.

यह फ़ील्ड, JSON कलेक्शन के तौर पर फ़ॉर्मैट होता है.

ticketing_trip_id

(trips.txt से मिला आईडी, दोहराया जा सकता है) यात्रा का आइडेंटिफ़ायर.

यह फ़ील्ड, JSON कलेक्शन के तौर पर फ़ॉर्मैट होता है.

from_ticketing_stop_time_id

(दोहराया जा सकता है) उस stop_time का आइडेंटिफ़ायर जहां से लेग शुरू होता है.

किसी स्टॉप पर बस के रुकने के समय की वैल्यू इस तरह की होती है:

  • ticketing_identifiers.txt में बताई गई ticketing_stop_id, agency_id के लिए और stop_time के stop_id के लिए.

  • अगर ऐसा नहीं है, तो यह stop_sequence पर वापस आ जाता है.

यह फ़ील्ड, JSON कलेक्शन के तौर पर फ़ॉर्मैट होता है.

to_ticketing_stop_time_id

(दोहराया जा सकता है) उस stop_time का आइडेंटिफ़ायर जहां लेग खत्म होता है.

वैल्यू का हिसाब लगाने के बारे में जानने के लिए, from_ticketing_stop_time_id देखें.

यह फ़ील्ड, JSON कलेक्शन के तौर पर फ़ॉर्मैट होता है.

boarding_time

(ISO 8601, दोहराया जा सकता है) stop_time के departure_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, दोहराया जा सकता है) पहुंचने का समय, stop_time पर arrival_time, जहां लेग खत्म होता है.

इस फ़ील्ड में समय की वैल्यू, ISO 8601 के मुताबिक होनी चाहिए. इसके लिए, स्ट्रिंग का यह फ़ॉर्मैट इस्तेमाल करें:

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

यहां दिए गए सभी समय एक ही हैं, लेकिन अलग-अलग टाइम ज़ोन में:

  • यूनाइटेड किंगडम के लंदन में: 29-07-2019T18:46:00+01:00
  • न्यूयॉर्क शहर, अमेरिका-न्यूयॉर्क में: 2019-07-29T13:46:00-04:00
  • जापान के टोक्यो में: 2019-07-30T02:46:00+09:00

यह फ़ील्ड, JSON कलेक्शन के तौर पर फ़ॉर्मैट होता है.

उदाहरण

इस उदाहरण में, यात्री की यात्रा के चरण इस तरह हैं:

  • सेवा की तारीख 20190716 को, ट्रिप टिकट आईडी ti1, स्टॉप समय टिकट आईडी 11 से स्टॉप समय टिकट आईडी 12 तक शुरू होता है. यात्री, यूटीसी के मुताबिक दोपहर 2:00 बजे फ़्लाइट में चढ़ता है और दोपहर 2:50 बजे पहुंचता है.
  • सेवा की तारीख 20190716 को, ट्रिप टिकट आईडी ti2, स्टॉप समय टिकट आईडी 21 से स्टॉप समय टिकट आईडी 22 तक शुरू होता है. यात्री, यूटीसी समय के मुताबिक दोपहर 3:00 बजे फ़्लाइट में चढ़ता है और दोपहर 3:50 बजे पहुंचता है.

इस उदाहरण के लिए, 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"]

एन्कोड करने के बाद, फ़ाइनल यूआरएल यह होगा:

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,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_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 के समय, यूटीसी+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 Transit के टिकट बेचने वाले एक्सटेंशन लागू करने के लिए, इन सुझावों का पालन करें:

दिशा-निर्देश
जब भी हो सके, एजेंसियों या रास्तों के बीच डीप लिंक शेयर करें.

स्टैटिक फ़ीड में, जब भी एक से ज़्यादा एजेंसियों या रूट के एक जैसे डीप लिंक यूआरएल होते हैं, तो उन्हें 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 ऐप्लिकेशन के लिए डीप लिंक की ज़रूरत हो, तो Android ऐप्लिकेशन के लिंक का इस्तेमाल करें.

अगर पार्टनर को डीप लिंक से कोई Android ऐप्लिकेशन खोलना है, तो डीप लिंक को Android ऐप्लिकेशन लिंक के तौर पर सेट अप करें.

iOS ऐप्लिकेशन के लिए डीप लिंक की ज़रूरत होने पर, iOS यूनिवर्सल लिंक का इस्तेमाल करें. अगर पार्टनर को डीप लिंक से iOS ऐप्लिकेशन खोलना है, तो डीप लिंक को iOS यूनिवर्सल लिंक के तौर पर सेट अप करें.