इस पेज पर, पब्लिक ट्रांज़िट ऑपरेटर (पीटीओ) और तकनीकी जानकारी दी गई है अपने सिस्टम इंटिग्रेटर को Google के साथ इंटिग्रेट करना होगा, ताकि Motics के टिकट उपलब्ध कराए जा सकें के लिए, Google Wallet का इस्तेमाल करें. यह समाधान, Google Wallet API का इस्तेमाल करता है और एक ऐक्टिवेशन एंडपॉइंट लागू करने के लिए पीटीओ पर.
सिस्टम आर्किटेक्चर
इस सेक्शन में सिस्टम आर्किटेक्चर और Motics सेव फ़्लो दिखाया गया है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है पहली इमेज. मोटिक टिकट सेव फ़्लो
पहली इमेज में, मोटिक टिकट बनाने, चालू करने, और पिन करने का फ़्लो दिखाया गया है कई इकाइयों के लिए Google Wallet:
- Google के सर्वर पर
- पीटीओ (सिस्टम इंटिग्रेटर) सर्वर
- Motics SCE सर्वर
- वेब शॉप
यहां फ़्लो के बारे में ज़्यादा जानकारी दी गई है:
- सेट अप के शुरुआती चरण में पीटीओ सर्वर
transitClass
बनाता है, transitClass:Insert का इस्तेमाल करके,ownerId
औरactivationUrl
को पास करना Google Wallet API एंडपॉइंट. यह एक बार की जाने वाली गतिविधि है. - इसके बाद, जब कोई उपयोगकर्ता वेब शॉप से टिकट खरीदता है, तो पीटीओ सर्वर transitObject:Insert होता है, जिसमें टिकट बेचने की बुनियादी जानकारी होती है. साथ ही, इसमें कुछ अन्य जानकारी भी होती है यह एक मोटिक टिकट है.
- फिर PTO सर्वर और वेब शॉप एक साथ काम करके Google Wallet बटन में जोड़ें और टिकट के JWT को इस पर वापस कर दें Google सेव करें लिंक का इस्तेमाल करके.
- अब टिकट पिन करने की प्रोसेस तब शुरू हो सकती है, जब Google का सर्वर
activationUrl
के पीछे मौजूद ऐक्टिवेशन एंडपॉइंट. - चौथे चरण के मुताबिक, पीटीओ सर्वर हस्ताक्षर (sigSTB) जनरेट करता है जिसमें SAM के साथ हस्ताक्षर किया गया SCE_ID शामिल हो.
activationUrl
कॉल का उत्तर देने से पहले, पीटीओ सर्वर को सबसे पहले transitObject:Patch को कॉल करें, जिसमें Motics से जुड़ी सभी ज़रूरी जानकारी शामिल है, जिसमें Motics applicationData भी शामिल है.- transitObject:Patch कॉल सफल होने के बाद ही, पीटीओ
सर्वर को
activationUrl
के लिए एक सफल (HTTP-200) प्रतिक्रिया देनी चाहिए कॉल.
सामाजिक बदलाव लाने के लिए, फ़्लो अनलिंक करें
अच्छा उपयोगकर्ता अनुभव देने के लिए, उपयोगकर्ता को अपने मोटिक्स को स्थानांतरित करने में सक्षम होना चाहिए टिकट जारी करने वाले बैंक या कंपनी की तय की गई कुछ सीमाओं के अंदर, एक डिवाइस से दूसरे डिवाइस पर टिकट भेजना. इसके लिए, जारी करने वाले को डेटा ट्रांसफ़र और अनलिंक करने की प्रोसेस लागू करनी होगी.
ऐक्टिवेशन एंडपॉइंट
टिकट जारी करने वाले/पीटीओ (या उनके सिस्टम इंटिग्रेटर) को टिकट लागू करना होगा ऐक्टिवेशन एंडपॉइंट जिसे Google, टिकट सेव किए जाने पर शुरू करेगा. यूआरएल इस एंडपॉइंट को शुरू करने की प्रक्रिया में transitClass:Insert को शामिल किया जाना चाहिए. ऐक्टिवेशन एंडपॉइंट, सिग्नेचर (sigSTB) जनरेट करेगा और नीचे दिए गए पैरामीटर के साथ transitObject:Patch तरीका सेक्शन में जाएं.
अनुरोध
ऐक्टिवेशन एंडपॉइंट के अनुरोध का फ़ॉर्मैट ऐसा होता है:
Content-Type: application/json
Body: {
"classId": "123.classId",
"expTimeMillis": 1669671940735,
"eventType": "activate",
"objectId": string - base64 encoded ID of the TransitObject,
"deviceContext": string - base64 encoded SCE_ID,
}
जवाब
खाली मुख्य भाग के साथ HTTP-200
सफलता की प्रतिक्रिया, अगर:
- SCE_ID वाला sigSTB, SAM के साथ जनरेट करके उस पर हस्ताक्षर किया गया
- ट्रांज़िट ऑब्जेक्ट:पैच विधि को सफलतापूर्वक कॉल किया गया था
Status: 200 - OK
Body: {}
इंतज़ार के समय वाले टारगेट
ऐक्टिवेशन एंडपॉइंट को इन इंतज़ार के समय के टारगेट का पालन करना चाहिए:
- सभी अनुरोधों में से कम से कम
50%
का जवाब200ms
के अंदर दिया जाना चाहिए - सभी अनुरोधों में से कम से कम
95%
का जवाब2s
के अंदर दिया जाना चाहिए - ज़्यादा से ज़्यादा
10s
पॉइंट हासिल किए जा सकते हैं
Google Wallet API से जुड़े बदलाव
नीचे दिए गए लिंक में, Google Wallet API के एंडपॉइंट में होने वाले बदलावों के बारे में बताया गया है. जो सिस्टम आर्किटेक्चर में बताए गए Motics के साथ काम करते हैं.
तरीका: transitClass:insert
यह Google के वॉलेट पर transitClass
बनाने के लिए Google Wallet API एंडपॉइंट है
बैकएंड. सिस्टम इंटिग्रेटर को इस एपीआई को इन चीज़ों के साथ शुरू करना होगा
पैरामीटर के साथ-साथ लागू होने वाले अन्य फ़ील्ड का अनुरोध करें. इससे संदर्भ लें
transitClass और की पूरी सूची देखने के लिए transitClass.Insert एपीआई दस्तावेज़
(नॉन-मोटिक्स) पैरामीटर और अन्य विवरण.
POST: https://walletobjects.googleapis.com/walletobjects/v1/transitClass
JSON के काेड में दिखाना
Motics इंटिग्रेशन के लिए, कम से कम नीचे दी गई JSON इमेज का इस्तेमाल करना ज़रूरी है
transitClass:insert
अनुरोध के मुख्य हिस्से में मौजूद transitClass
. अन्य ज़रूरी शर्तें
transitClass
मेटाडेटा फ़ील्ड को भी सेट करना होगा.
{
"id": string,
"multipleDevicesAndHoldersAllowedStatus": ONE_USER_ONE_DEVICE (MultipleDevicesAndHoldersAllowedStatus),
"deviceCertificationSupport": {
"vdvCertDetails": {
"ownerId" string,
"certEnvironment": PRODUCTION/STAGING,
},
},
"activationOptions": {
"activationUrl": string
},
...
}
CERTEnvironment = PRODUCTION पर Google सर्वर, प्रमाणपत्र फ़ेच करेगा प्रोडक्शन मोटिक सर्वर से मिलेगी. जब certEnvironment = Google को सुरक्षित रखना सर्वर, सैंडबॉक्स मोटिक्स सर्वर से सर्टिफ़िकेट फ़ेच करेगा.
तरीका: transitObject:insert
यह Google Wallet API एंडपॉइंट है, जिसमें नई प्रॉपर्टी के लिए transitObject
शामिल किया जा सकता है
वह टिकट जिसे कोई उपयोगकर्ता खरीदना चाहता है और Google Wallet में जोड़ना चाहता है. सिस्टम
इंटिग्रेटर को transitObject
पास करना होगा. साथ ही, मुख्य तौर पर यहां टिकट की जानकारी देनी होगी
इस पॉइंट से. transitObject देखें और transitObject.Insert एपीआई
(नॉन-मोटिक्स) पैरामीटर की पूरी सूची और अन्य विवरण के लिए दस्तावेज़.
POST
: https://walletobjects.googleapis.com/walletobjects/v1/transitObject
JSON के काेड में दिखाना
Motics इंटिग्रेशन के लिए, कम से कम नीचे दी गई JSON इमेज का इस्तेमाल करना ज़रूरी है
transitObject:insert
अनुरोध के मुख्य हिस्से में मौजूद transitObject
. अन्य ऑब्जेक्ट
मेटाडेटा फ़ील्ड को भी सेट किया जा सकता है और अन्य सभी ज़रूरी फ़ील्ड को भी
शामिल हैं.
{
"id": string,
"classId": string,
"validTimeInterval": {
object (TimeInterval)
},
"activationStatus": {
"state": NOT_ACTIVATED (State)
},
"rotatingBarcode": {
"type": AZTEC (BarcodeType),
"valuePattern": "{vdv_barcode}",
"deviceEntitlementSupport": {
"vdvEntitlementDetails": {
"applicationData": "",
},
},
},
...
}
ध्यान दें:
- एपीआई के लिए
applicationData
फ़ील्ड को शामिल करना ज़रूरी है. इस समय Motics के ऐक्टिवेशन फ़्लो में,applicationData
वैल्यू अब तक नहीं मिली है, इसलिए, इसे खाली स्ट्रिंग पर सेट किया जाना चाहिए.applicationData
को बाद मेंtransitObject:Patch
में सेट किया जाएगा कॉल.
validTimeInterval
DateTime ऑब्जेक्ट में समय क्षेत्र ऑफ़सेट होना चाहिए तय किया गया है, उदाहरण के लिए:2024-04-12T19:20:50.52-04:00
.
तरीका: transitObject:पैच
यह Google Wallet API एंडपॉइंट है, जिसकी मदद से transitObject
को पैच किया जा सकता है.
इसका इस्तेमाल Google, Motics बारकोड बनाने और VDV ई-टिकट सेवा फ़ेच करने के लिए करता है
सर्टिफ़िकेट. transitObject देखें और transitObject.Patch एपीआई
(नॉन-मोटिक्स) पैरामीटर की पूरी सूची और अन्य विवरण के लिए दस्तावेज़.
PATCH:
https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}
JSON के काेड में दिखाना
मोटिक इंटिग्रेशन के लिए, नीचे दी गई चीज़ों की ज़रूरत होती है
transitObject:patch
अनुरोध का मुख्य भाग में transitObject
. ध्यान दें कि यह इस पर है
इससे पता चलता है कि applicationData
फ़ील्ड में अपने-आप जानकारी भरी गई है.
{
"activationStatus": {
"state": ACTIVATED (State)
},
"rotatingBarcode": {
"type": AZTEC (BarcodeType),
"valuePattern": "{vdv_barcode}",
"deviceEntitlementSupport": {
"vdvEntitlementDetails": {
"applicationData": string - Hex encoded,
},
},
}
}
ऐप्लिकेशन डेटा की खास बातें
इस
applicationData
(टैग:0x5F07
). applicationData
को जनरेट करना चाहिए
टैग-अवधि-वैल्यू (टीएलवी) फ़ॉर्मैट में सिस्टम इंटिग्रेटर. यह डेटा बाद का है
बड़े डेटा स्ट्रक्चर में एन्कोड किया गया हो, ताकि उसे क्यूआर कोड के हिस्से के तौर पर एन्कोड किया जा सके
कोड.
टैग | अवधि | वैल्यू |
0x9E
|
81x80 |
हस्ताक्षरOctetString , साइन किए गए एनटाइटलमेंट डेटा के शुरुआती 128 बाइटGoogle शब्द: sigSTB
|
0x9A
|
डेटा रीफ़्रेश होने की दर अलग-अलग हो सकती है |
रेज़िड्यूअल डेटाOctetString , सदस्यता का बचा हुआ डेटाGoogle शब्द: sigSTB cont.
|
0x7F21
|
81 सी8 |
जारी करने का सर्टिफ़िकेटOctetString , सर्टिफ़िकेट का डेटाGoogle शब्द: Cert(puk_SAM)
|
0x42
|
08 |
सर्टिफ़िकेट देने वाली संस्था का रेफ़रंस (सीएआर)OctetString , कार की वैल्यूGoogle शब्द: CAR
|