खास जानकारी

Google Wallet Passes एपीआई की मदद से, पार्टनर बस, मेट्रो वगैरह के टिकट को चालू करने के लिए, एंडपॉइंट की जानकारी दे सकते हैं. चालू करने की ज़रूरत पड़ने पर, उपयोगकर्ता को “चालू करें” बटन दिखेगा. इस बटन पर टैप करने पर, बताए गए एंडपॉइंट पर कॉल किया जाएगा. इसके लिए, यहां दिए गए पैरामीटर इस्तेमाल किए जाएंगे. वापस लौटने से पहले, एंडपॉइंट को यह पक्का करना चाहिए कि पास में रिडीम करने की सही जानकारी (बारकोड या विज़ुअल जांच) उपलब्ध हो. इसके बाद, रिडीम करने की जानकारी दिखाने के लिए, उपयोगकर्ता के Wallet में मौजूद पास को अपडेट किया जाएगा. ध्यान दें कि चालू किए जाने से पहले, ऑफ़र रिडीम करने की कोई भी मौजूदा जानकारी नहीं दिखाई जाएगी.

ऐक्टिवेशन एपीआई

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

  activationOptions: {
    activationUrl: string
  }
फ़ील्ड ब्यौरा
activationUrl

string

पार्टनर एंडपॉइंट का यूआरएल, जिसे चालू करने के अनुरोध के लिए कहा जाएगा. यूआरएल को एचटीटीपीएस पर होस्ट किया जाना चाहिए और robots.txt से ऐसा होना चाहिए कि यूआरएल पाथ को UserAgent:Google-Valuables से ऐक्सेस किया जा सके.

चालू होने की स्थिति, activationStatus फ़ील्ड का इस्तेमाल करके ऑब्जेक्ट पर सेव की जाती है. मान्य स्थिति में NOT_ACTIVATED और ACTIVATED शामिल हैं. ऐक्टिवेशन एंडपॉइंट को ऑब्जेक्ट को ACTIVATED स्टेटस से अपडेट करना चाहिए. साथ ही, यह पक्का करना चाहिए कि ऑब्जेक्ट में रिडीम करने की मान्य जानकारी हो, जैसे कि बारकोड या विज़ुअल जांच वाले पैरामीटर. डिवाइस पिन करने के लिए, deviceContext फ़ील्ड का इस्तेमाल किया जा सकता है.

  activationStatus: enum (ActivationStatus),
  deviceContext: {
    deviceToken: string
  },
  hasLinkedDevice: boolean
फ़ील्ड ब्यौरा
activationStatus

enum (ActivationStatus)

इस ट्रांज़िट ऑब्जेक्ट के चालू होने की स्थिति. इस स्टेटस से, टिकट की परफ़ॉर्मेंस बदल जाएगी और उपयोगकर्ता कार्रवाई कर पाएंगे. उदाहरण के लिए, अगर इसे NOT_ACTIVATED पर सेट किया जाता है, तो टिकट की जानकारी पर 'चालू करें' बटन दिखेगा.

स्वीकार की जाने वाली वैल्यू ये हैं:

  • NOT_ACTIVATED
  • ACTIVATED

deviceContext

object (DeviceContext)

डिवाइस का वह कॉन्टेक्स्ट जिसके साथ ऑब्जेक्ट को जोड़ना है. अगर इस नीति को सेट किया जाता है, तो ऑफ़र रिडीम करने की जानकारी सिर्फ़ दिए गए डिवाइस पर ही वापस की जाएगी.

hasLinkedDevice

boolean

फ़िलहाल, यह ऑब्जेक्ट एक ही डिवाइस से जुड़ा है या नहीं.

DeviceContext
फ़ील्ड ब्यौरा
deviceToken

string

अगर इस नीति को सेट किया जाता है, तो ऑब्जेक्ट के चालू होने के बाद ही, ऑफ़र रिडीम करने की जानकारी दिए गए डिवाइस पर दिखेगी. किसी उपयोगकर्ता के डिवाइस को ट्रेस करने के लिए, इसे स्थायी आइडेंटिफ़ायर के तौर पर इस्तेमाल नहीं किया जा सकता. यह एक ही डिवाइस के लिए अलग-अलग पास में या एक ही डिवाइस पर, अलग-अलग चालू होने पर भी बदल सकता है. इसे सेट करते समय, कॉलर को चालू किए जा रहे ऑब्जेक्ट पर hasLinkedDevice को भी सेट करना होगा.

ध्यान दें कि deviceToken, ऐक्टिवेशन पैरामीटर deviceContext फ़ील्ड से मिला है

डिवाइस पिन किया जा रहा है

डिवाइस पिन करने की सुविधा एक ऐसी सुविधा है जिसकी मदद से उपयोगकर्ता, एक डिवाइस पर टिकट चालू कर सकता है और टिकट रिडीम करने की जानकारी सिर्फ़ उसी डिवाइस पर दिखा सकता है. यह ONE_USER_ONE_DEVICE के multipleDevicesAndHoldersAllowedStatus से अलग है, जो टिकट को सिर्फ़ एक डिवाइस पर दिखाने की अनुमति देता है. हमारा सुझाव है कि डिवाइस पिन करने की सुविधा के साथ, ONE_USER_ALL_DEVICES स्थिति का इस्तेमाल करें.

चालू किए जाने से पहले, उपयोगकर्ता अपने किसी भी डिवाइस पर टिकट और 'चालू करें' बटन देख सकता है. जब पिन किया गया डिवाइस चालू हो जाएगा और किसी डिवाइस पर पिन हो जाएगा, तब वह ऑफ़र रिडीम करने की जानकारी दिखाएगा. साथ ही, दूसरे डिवाइस पर 'चालू करें' बटन दिखेगा, ताकि लोग टिकट को किसी दूसरे डिवाइस पर ले जा सकें. अगर टिकट को मूव करना ज़रूरी नहीं है, लेकिन किसी भी डिवाइस पर इसे चालू किया जा रहा है, तो डिवाइस को पिन करने के बजाय, उसे ONE_USER_ONE_DEVICE पर अपडेट किया जा सकता है.

डिवाइस को पिन करने की सुविधा लागू करने के लिए, ऑब्जेक्ट को ऐक्टिवेशन पैरामीटर से मिलने वाले deviceToken फ़ील्ड के साथ अपडेट किया जाना चाहिए. साथ ही, उसी एपीआई कॉल में hasLinkedDevice को 'सही' पर सेट करना चाहिए. अगर आप चाहें, तो आने वाले समय में होने वाले एपीआई कॉल में hasLinkedDevice को 'गलत है' पर सेट करके, टिकट को डिवाइस से अनलिंक किया जा सकता है.

डिवाइस पिन करने के लिए क्रम का डायग्राम

ऐक्टिवेशन पैरामीटर

ऐक्टिवेशन एंडपॉइंट को किए जाने वाले अनुरोध में ये पैरामीटर शामिल होंगे.

JSON का उदाहरण:

  {
    classId: “123.classId”,
    objectIds: [ “123.objectId” ],
    expTimeMillis: 1669671940735,
    eventType: “activate”,
    nonce: “1c6fccce-6f66-11ed-a1eb-0242ac120002”,
    deviceContext: “6fba937a-6f6e-11ed-a1eb-0242ac120002”
  }

पहचानकर्ता ब्यौरा
classId

पूरी तरह क्वालिफ़ाइड क्लास आईडी. इस फ़ॉर्मैट का इस्तेमाल करता है:

<issuer_id.class_id>
objectIds

ऑब्जेक्ट आईडी की पूरी तरह क्वालिफ़ाइड कलेक्शन, जो नीचे दिए गए फ़ॉर्मैट का इस्तेमाल करता है:

<issuer_id.object_id>
expTimeMillis EPOCH के बाद से, समयसीमा खत्म होने का समय, मिलीसेकंड में. समयसीमा खत्म होने के बाद, मैसेज को अमान्य माना जाना चाहिए.
eventType हमेशा "activate".
nonce डुप्लीकेट डिलीवरी को ट्रैक करने की ज़रूरत नहीं है.
deviceContext

Google, जनरेट किया गया एक यूनीक आईडी होता है. यह उस डिवाइस की जानकारी देता है जिस पर उपयोगकर्ता कार्रवाई कर रहा है. ऑब्जेक्ट को किसी डिवाइस से जोड़ने वाले अपडेट करते समय, इस आईडी का इस्तेमाल करना चाहिए.

हो सकता है कि किसी डिवाइस से आने वाले समय में किए जाने वाले अनुरोधों के लिए यह आईडी हमेशा एक जैसा न रहे.