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

इस पेज पर GTFS-टिकट की खास बातों के एक सबसेट के बारे में बताया गया है जो इस दस्तावेज़ को बनाए जाने के दौरान प्रस्ताव के चरण में है. इस पेज पर Google की ओर से लगाई गई कई अन्य पाबंदियां भी शामिल हैं.

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

stop_times.txt में departure_time फ़ील्ड आवश्यक है.

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

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

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

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

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

फ़ाइल का नाम स्थिति बताता है
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 का आईडी) इस एजेंसी के लिए इस्तेमाल किए जाने वाले डीप लिंक की जानकारी देता है. 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_stop_id के लिए ticketing_identifiers.txt में बताया गया है, जो 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, दोहराया जा सकने वाला) पहुंचने का समय, स्टॉप_टाइम पर उसके आने का समय, जब पैर खत्म होगा.

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

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

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

  • लंदन, यूके में: 29-07-2019T18:46:00+01:00
  • NYC, US-NY में: 29-07-2019T13: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,"पेरिस गैर-दे-लियॉन"

si2,"ल्योन पार्ट-डियू"

routes.txt

route_id,route_long_name,ticketing_deep_link_id

ri1,"टीजीवी इनओई पेरिस-ल्योन",tdl1

trips.txt

trip_id,service_id,route_id,trip_short_name, ticketing_trip_id

ti1,हर दिन,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,एजेंसी1,4924

si2,एजेंसी1,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 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 यूनिवर्सल लिंक के तौर पर सेट अप करें.