टोकन के लाइफ़साइकल मैनेजमेंट से जुड़ी सूचनाएं

खास जानकारी

आने वाले समय में, टोकन के लाइफ़साइकल मैनेजमेंट (एलसीएम) से जुड़ी सूचनाएं, Google Pay Online API से tokenUpdateUrl को भेजी जाती हैं. यह tokenUpdateUrl, ओरिजनल लेन-देन के समय दिया गया था. ये सूचनाएं तब भेजी जाती हैं, जब किसी टोकन को बंद कर दिया जाता है या मिटा दिया जाता है. इन्हें भी जल्द से जल्द भेजने की पूरी कोशिश की जाती है. अगर ये डिलीवर नहीं हो पाते हैं, तो इन्हें फिर से भेजने की कोशिश की जाती है. यहां एलसीएम फ़्लो का एक उदाहरण दिया गया है. इसमें दिखाया गया है कि जब कोई उपयोगकर्ता Google Wallet से कार्ड हटाता है, तो क्या होता है:

MerchantTokenUpdateNotificationRequest

Google Pay Online API से मिला HTTP POST मैसेज, एक JSON बॉडी ले जाता है. इसमें एन्क्रिप्ट (सुरक्षित) किया गया पेलोड होता है. पेलोड को एन्क्रिप्ट (सुरक्षित) करने के लिए, शेयर की गई आपकी सार्वजनिक कुंजी का इस्तेमाल किया जाता है. साथ ही, इस पर Google के निजी पासकोड से हस्ताक्षर किया जाता है. निजी एन्क्रिप्शन कुंजी का इस्तेमाल करके डिक्रिप्ट किया जा सकता है. साथ ही, Google की रूट साइनिंग कुंजी का इस्तेमाल करके पुष्टि की जा सकती है. एन्क्रिप्ट किए गए इस पेलोड रैपर का फ़ॉर्मैट, आपको PaymentMethodToken के तौर पर मिलने वाले फ़ॉर्मैट जैसा ही होता है. इस एलसीएम सूचना को डिक्रिप्ट करने के लिए, उसी लाइब्रेरी का इस्तेमाल किया जा सकता है. एन्क्रिप्ट (सुरक्षित) किए गए पेलोड में, यहां दी गई जानकारी के मुताबिक MerchantTokenUpdateNotificationRequest ऑब्जेक्ट होता है.

प्रॉपर्टी टाइप ज़रूरत ब्यौरा
messageId स्ट्रिंग ज़रूरी है

यह सूचना का यूनीक आईडी है. इसका इस्तेमाल, मैसेज को डुप्लीकेट होने से बचाने और डीबग करने के लिए किया जाता है.

अगर यह सूचना डिलीवर नहीं होती है, तो आने वाले समय में फिर से कोशिश करने पर भी यह सूचना नहीं भेजी जाएगी.

targetNotificationUrl स्ट्रिंग ज़रूरी है

इस सूचना के लिए, टारगेट किया गया यूआरएल. आपको यह पुष्टि करनी होगी कि यह यूआरएल, Google Pay से टोकन एलसीएम सूचनाएं पाने के लिए आपका तय किया गया एंडपॉइंट है.

timestamp स्ट्रिंग ज़रूरी है

इस सूचना को पहली बार कब बनाया गया था, उसका टाइमस्टैंप. यह आने वाले समय में फिर से कोशिश करने पर भी यही रहेगा.

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

apiVersion int ज़रूरी है एपीआई का मेजर वर्शन.
apiVersionMinor int ज़रूरी है एपीआई का माइनर वर्शन.
merchantTokenId स्ट्रिंग ज़रूरी है अपडेट किया गया कारोबारी या कंपनी का टोकन आईडी. यह वह आईडी है जो उपयोगकर्ता को तब मिला था, जब उसने एमआईटी के लिए Google Pay की प्रोसेस पूरी की थी. यह एन्क्रिप्ट (सुरक्षित) किए गए पेलोड में मौजूद एक फ़ील्ड है. इसे Card ऑब्जेक्ट.
cardUpdateInfo CardUpdateInfo ज़रूरी है इसमें टोकन के अपडेट होते हैं.

CardUpdateInfo

प्रॉपर्टी टाइप ज़रूरत ब्यौरा
fpanSuffix स्ट्रिंग कंडीशनल

यह जानकारी, उपयोगकर्ताओं को फ़ंडिंग के प्राइमरी खाते के नंबर (एफ़पीएएन) की पहचान करने में मदद करती है. यह चार अंकों वाली स्ट्रिंग होती है. इसमें FPAN के आखिरी चार वर्ण शामिल होते हैं.

इसकी मौजूदगी से, टोकन की स्थिति को चालू माना जा सकता है.

अगर कोई बदलाव नहीं होता है, तो यह मौजूद नहीं होता.

tokenState string(enum) कंडीशनल

अगर शुरुआती लेन-देन या पिछली सूचना के बाद टोकन की स्थिति में बदलाव हुआ है, तो टोकन की नई स्थिति.

अगर कोई बदलाव नहीं होता है, तो यह मौजूद नहीं होता.

मान्य वैल्यू DISABLED है.

MerchantTokenUpdateNotificationResponse

एचटीटीपी रिस्पॉन्स कोड

एचटीटीपी रिस्पॉन्स कोड इस्तेमाल
200 सूचना मिल गई है. जवाब के मुख्य हिस्से में, स्थिति के बारे में अतिरिक्त जानकारी दी जा सकती है. इसके लिए, JSON ऑब्जेक्ट का इस्तेमाल किया जा सकता है. इसके बारे में अगली टेबल में बताया गया है.
401 MerchantTokenUpdateNotificationRequest में मौजूद targetNotificationUrl अमान्य है. इस टोकन के लिए, आने वाले समय में मिलने वाली सभी सूचनाएं बंद की जा सकती हैं.
5xx सर्वर में कुछ समय के लिए गड़बड़ी. सूचना को बाद में फिर से भेजा जाना चाहिए.
अन्य ऐसी गड़बड़ी जिसे ठीक नहीं किया जा सकता. सूचना को बाद में फिर से नहीं भेजा जाना चाहिए.
प्रॉपर्टी टाइप ज़रूरत ब्यौरा
requestMessageId स्ट्रिंग ज़रूरी है

अनुरोध से जनरेट किया गया मैसेज आईडी.

यह अनुरोध में दिए गए मैसेज आईडी से मेल खाना चाहिए. ऐसा न होने पर, जवाब को अनदेखा किया जा सकता है और इस टोकन के लिए आने वाली सूचनाएं बंद कर दी जाती हैं.

status string(enum) ज़रूरी है

कारोबारी, कंपनी या पेमेंट की सेवा देने वाली कंपनी (पीएसपी) ऐसा स्टेटस दिखा सकती है जिससे पता चले कि उन्होंने सूचना को स्वीकार कर लिया है और टोकन का इस्तेमाल कर लिया है.

मान्य मान हैं:

  • SUCCESS
  • TOKEN_NOT_IN_USE
  • TOKEN_NOT_FOUND

उदाहरण

लाइफ़साइकल से जुड़ी सूचना

सूचना पाने का अनुरोध

यह एचटीटीपी पोस्ट अनुरोध है. इसमें टोकन एलसीएम की सूचना होती है. इसे Google Pay से आपके एंडपॉइंट पर भेजा जाता है. मुख्य हिस्सा, एन्क्रिप्ट किया गया पेलोड होता है.

एचटीटीपी अनुरोध

  HTTP POST /token/notification/123
  Host: api.merchant.com
  Content-Type: application/json

  {
    "protocolVersion":"ECv2",
    "signature":"MEQCIH6Q4OwQ0jAceFEkGF0JID6sJNXxOEi4r+mA7biRxqBQAiAondqoUpU/bdsrAOpZIsrHQS9nwiiNwOrr24RyPeHA0Q\u003d\u003d",
    "intermediateSigningKey":{
      "signedKey": "{\"keyExpiration\":\"1542323393147\",\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/1+3HBVSbdv+j7NaArdgMyoSAM43yRydzqdg1TxodSzA96Dj4Mc1EiKroxxunavVIvdxGnJeFViTzFvzFRxyCw\\u003d\\u003d\"}",
      "signatures": ["MEYCIQCO2EIi48s8VTH+ilMEpoXLFfkxAwHjfPSCVED/QDSHmQIhALLJmrUlNAY8hDQRV/y1iKZGsWpeNmIP+z+tCQHQxP0v"]
    },
    "signedMessage":"{\"tag\":\"jpGz1F1Bcoi/fCNxI9n7Qrsw7i7KHrGtTf3NrRclt+U\\u003d\",\"ephemeralPublicKey\":\"BJatyFvFPPD21l8/uLP46Ta1hsKHndf8Z+tAgk+DEPQgYTkhHy19cF3h/bXs0tWTmZtnNm+vlVrKbRU9K8+7cZs\\u003d\",\"encryptedMessage\":\"mKOoXwi8OavZ\"}"
  }

Decrypted MerchantTokenUpdateNotificationRequest

  {  // MerchantTokenUpdateNotificationRequest
    "messageId": "ZlxoWhLC3su",
    "targetNotificationUrl":
      "https://api.merchant.com/token/notification/123",
    "timestamp": "2025-03-28T07:53:12.39Z",
    "apiVersion": 1,
    "apiVersionMinor": 0,
    "merchantTokenId": "123",
    "cardUpdateInfo": {
      "tokenState": "DISABLED"
    }
  }

सूचना का जवाब

  HTTP 200 OK
  Content-Type: application/json

  {  // MerchantTokenUpdateNotificationResponse
    "requestMessageId": "ZlxoWhLC3su",
    "status": "SUCCESS",
  }

अपने tokenUpdateUrl एंडपॉइंट के साथ टेस्ट करना

टेस्ट मोड में, Google Pay आपके tokenUpdateUrl पर टोकन एलसीएम की सूचना भेजता है. इस सुविधा को ट्रिगर करने के लिए, यह तरीका अपनाएं:

  • loadPaymentData ऑब्जेक्ट के साथ loadPaymentData को कॉल करके, टेस्ट ट्रांज़ैक्शन पूरा करें. साथ ही, tokenUpdateUrl फ़ील्ड में अपना एंडपॉइंट यूआरएल डालें.*TransactionInfo
  • Google की सेवा, आपके एंडपॉइंट पर टोकन एलसीएम की सूचना भेजेगी.
  • पुष्टि करें कि आपके पास अपनी निजी कुंजी का इस्तेमाल करके सूचना को डिक्रिप्ट करने का विकल्प है. ध्यान दें कि टेस्ट मोड में, यह सूचना हमेशा कार्ड नंबर के आखिरी चार अंकों को "1234" में बदल देगी. साथ ही, इसमें अनुरोध में मौजूद टोकन के बावजूद "tokenState": "DISABLED" शामिल होगा.