إضافات بيع التذاكر في "النقل العام من Google"

تحدِّد هذه الصفحة مجموعة فرعية من مواصفات GTFS-Ticketing، وهي في مرحلة الاقتراح أثناء إنشاء هذا المستند. تتضمّن هذه الصفحة أيضًا العديد من القيود الإضافية من Google.

المتطلبات

يجب ملء الحقل departure_time في stop_times.txt.

أنواع الحقول الإضافية

يوضّح هذا القسم أنواع الحقول الإضافية والحقول التي تحتوي على إضافات من Google. تتطلّب بعض الحقول إدخال قيم في شكل معرّف موارد منتظم (URI).

  • معرّف الموارد المنتظم (URI): معرّف موارد منتظم مؤهَّل بالكامل يتضمّن المخطّط. يجب استخدام أي أحرف خاصة في معرّف الموارد المنتظم (URI) مع علامات الإلغاء الصحيحة. للاطّلاع على وصف لكيفية إنشاء قيم معرّفات موارد منتظمة مؤهَّلة بالكامل، اطّلِع على معيار RFC 3986 معرّف الموارد المنتظم (URI): البنية العامة.

امتدادات الملفات أو إضافاتها

الملفات النصية التي تحمل الحالة تمديد هي ملفات حالية تحتاج إلى تمديدها. عليك إضافة الحقول الجديدة التي نحدّدها في الجدول التالي.

الملفات النصية التي تحمل الحالة إضافة هي ملفات جديدة أدخلتها إضافات Google Transit لإصدار التذاكر. عليك إنشاء هذه الملفات وفقًا ل تعريفات الحقول الواردة بعد الجدول التالي. احرص على تضمين هذه الملفات في خلاصتك.

اسم الملف الحالة تعريف
agency.txt الإضافة إضافة agency.ticketing_deep_link_id
routes.txt الإضافة إضافة routes.ticketing_deep_link_id
trips.txt الإضافة يضيف trips.ticketing_trip_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 اختياري

(قائمة بقيم ثابتة) حدِّد ما إذا كانت خدمة شراء التذاكر من خلال رابط لصفحة في التطبيق متاحة لهذه الرحلة:

  • 0 أو فارغ:
    • إذا حدّدت ticketing_deep_link_id للمسار أو الوكالة، يكون هذا الخيار متاحًا.
    • غير متوفّرة بخلاف ذلك.
  • 1: غير متاح.

stop_times.txt (تم تمديد الملف)

اسم الحقل التواجد في المنزل التفاصيل
ticketing_type اختياري

(قائمة بقيم ثابتة) تحدِّد ما إذا كان شراء التذاكر من خلال رابط لصفحة في التطبيق متاحًا في وقت التوقف هذا. إذا حدّدت 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 مطلوب (ID) لتحديد رقم تعريف للرابط لصفحة في التطبيق
web_url اختياري

(عنوان URL) عنوان URL المطلوب الانتقال إليه لإنشاء رابط لصفحة معيّنة في التطبيق.

لا يمكن ترجمة هذا الحقل من خلال translations.txt.

android_intent_uri اختياري

(معرّف الموارد المنتظم) معرّف الموارد المنتظم الذي سيتم تمريره إلى تطبيق Android أصلي باستخدام android.intent.action.VIEW intent

إذا كانت فارغة، يعني ذلك أنّه لا يمكنك إنشاء رابط لصفحة معيّنة في تطبيق Android أصلي.

لمزيد من المعلومات عن الروابط لصفحات في التطبيق على Android، يُرجى الاطّلاع على مقالة إنشاء روابط لصفحات في التطبيق.

لا يمكن ترجمة هذا الحقل من خلال translations.txt.

ios_universal_link_url اختياري

(عنوان URL) عنوان URL للرابط العام المطلوب استخدامه على نظام التشغيل iOS.

إذا كان الحقل فارغًا، لن يتم عرض رابط لصفحة معيّنة في التطبيق على نظام التشغيل iOS.

لمزيد من المعلومات، يُرجى الاطّلاع على الروابط العامة على نظام التشغيل iOS.

لا يمكن ترجمة هذا الحقل من خلال translations.txt.

العناصر النائبة للحقول في طلب البيانات من واجهة برمجة التطبيقات

يطلب محرّك بحث 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، يمكن تكرارها) وقت الوصول، arrival_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. يصعد الراكب إلى الطائرة في الساعة 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"]

في ما يلي عنوان URL النهائي بعد الترميز:

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‏ تموز (يوليو) 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 للرابط لصفحة معيّنة في التطبيق نفسها، يجب أن تتشارك قيمة واحدة لحقل 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 Links عندما يكون مطلوبًا استخدام رابط لصفحة معيّنة في تطبيق Android.

إذا أراد الشريك فتح تطبيق Android من رابط لصفحة في التطبيق، يجب إعداد الرابط لصفحة في التطبيق على أنّه رابط تطبيق Android.

استخدِم الروابط العامة لنظام التشغيل iOS عندما يكون مطلوبًا استخدام رابط لصفحة معيّنة في تطبيق iOS. إذا أراد الشريك فتح تطبيق iOS من رابط لصفحة في التطبيق، يجب إعداد الرابط لصفحة في التطبيق على أنّه "رابط عام لنظام التشغيل iOS".