افزونه‌های فروش بلیط Google Transit

این صفحه زیرمجموعه ای از مشخصات GTFS-Ticketing را تعریف می کند که در مرحله ایجاد این سند در مرحله پیشنهاد است. این صفحه همچنین شامل چندین محدودیت اضافی از جانب Google است.

الزامات

فیلد departure_time در stop_times.txt ضروری است.

انواع فیلد اضافی

این بخش انواع فیلدهای اضافی و آنهایی که پسوندهای Google دارند را تشریح می کند. برخی از فیلدها به مقادیری به شکل URI نیاز دارند.

  • URI : یک شناسه منبع یکنواخت (URI) کاملاً واجد شرایط که شامل این طرح است. هر کاراکتر خاص در URI باید از escape های صحیح استفاده کند. برای توضیح نحوه ایجاد مقادیر URI کاملا واجد شرایط، RFC 3986 Uniform Resource Identifier (URI): Generic Syntax را ببینید.

پسوند یا اضافات فایل

فایل‌های متنی با حالت پسوند فایل‌هایی هستند که از قبل وجود دارند و باید آن‌ها را گسترش دهید. شما باید فیلدهای جدیدی را که در جدول زیر تعریف کرده ایم اضافه کنید.

فایل‌های متنی با حالت Addition، فایل‌های جدیدی هستند که توسط افزونه‌های Google Transit Ticketing معرفی شده‌اند. شما باید این فایل ها را مطابق با تعاریف فیلد ارائه شده بعد از جدول زیر ایجاد کنید. حتما این فایل ها را در فید خود قرار دهید.

نام فایل حالت تعریف می کند
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 اختیاری

(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 را لغو می کند.

  • Empty: از مقدار trip.ticketing_type استفاده می کند.
  • 0 :
    • اگر یک ticketing_deep_link_id برای مسیر یا آژانس تعریف کنید، این در دسترس است.
    • در غیر این صورت در دسترس نیست.
  • 1 : در دسترس نیست.

ticketing_identifiers.txt (فایل اضافه شد)

رایج ترین مورد برای تهیه بلیط این است که هر ایستگاه دارای یک شناسه برای پردازش صورت حساب است. آژانس های مختلف ممکن است از یک شناسه برای هر توقف معین استفاده کنند. هنگامی که چندین آژانس یک ایستگاه را ارائه می دهند، این نقشه برداری را برای هر آژانس تکرار کنید.

نام زمینه حضور جزئیات
ticketing_stop_id ضروری (ID) یک شناسه پیش‌فرض بلیط برای این ایستگاه برای این آژانس تعریف می‌کند.
stop_id ضروری (شناسه از stops.txt ) توقفی که ticketing_stop_id پیش فرض برای آن تعریف شده است.
agency_id ضروری (شناسه از agency.txt ) آژانس توقفی که ticketing_stop_id پیش فرض برای آن تعریف شده است.

ticketing_deep_links.txt (فایل اضافه شد)

نام زمینه حضور جزئیات
ticketing_deep_link_id ضروری (ID) یک شناسه برای پیوند عمیق تعریف می کند.
web_url اختیاری

(URL) URL مورد بازدید برای پیوند عمیق.

این فیلد از طریق translations.txt قابل ترجمه نیست.

android_intent_uri اختیاری

(URI) URI برای انتقال به یک برنامه Android بومی با هدف android.intent.action.VIEW .

اگر خالی باشد، به این معنی است که نمی توانید به یک برنامه اندرویدی بومی پیوند عمیق بدهید.

برای اطلاعات بیشتر درباره پیوندهای عمیق در Android، به ایجاد پیوندهای عمیق به محتوای برنامه مراجعه کنید.

این فیلد از طریق translations.txt قابل ترجمه نیست.

ios_universal_link_url اختیاری

(URL) URL پیوند جهانی برای فراخوانی در iOS.

اگر خالی باشد، پیوند عمیق در 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، قابل تکرار) Time of Departure, 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
  • در توکیو، JP: 2019-07-30T02:26:00+09:00

این فیلد به صورت آرایه JSON فرمت می شود.

arrival_time

(ISO 8601، قابل تکرار) زمان رسیدن، زمان رسیدن_زمان توقف_زمان که در آن پا به پایان می رسد.

مقدار زمانی این فیلد مطابق با ISO 8601 با فرمت رشته ای زیر است:

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

همه زمان‌های زیر در مناطق زمانی مختلف یکسان است:

  • در لندن، بریتانیا: 2019-07-29T18:46:00+01:00
  • در نیویورک، ایالات متحده آمریکا: 2019-07-29T13:46:00-04:00
  • در توکیو، JP: 2019-07-30T02:46:00+09:00

این فیلد به صورت آرایه JSON فرمت می شود.

مثال ها

در این مثال، موارد زیر مراحل سفر یک مسافر است:

  • در تاریخ سرویس 20190716 ، شناسه بلیط سفر ti1 از زمان توقف ID 11 تا زمان توقف بلیت ID 12 شروع می شود. مسافران ساعت 14:00 UTC سوار می شوند و ساعت 14:50 UTC می رسند.
  • در تاریخ سرویس 20190716 ، شناسه بلیط سفر ti2 از زمان توقف ID 21 تا زمان توقف ID 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 "پاریس گار دی لیون"

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، هر روز، ri1، "TGV INOUI 6603"، FR_SNCF_6603

ti2, everyday,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

اگر درخواست در 2019-07-19 انجام شود و زمان 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 دنبال کنید:

رهنمودها
در صورت امکان پیوندهای عمیق را بین آژانس ها یا مسیرها به اشتراک بگذارید.

در فید ایستا، هر زمان که چندین آژانس یا مسیرها URL های پیوند عمیق یکسانی داشته باشند، باید یک مقدار واحد را برای قسمت 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 تنظیم کنید.