खास जानकारी
आने वाले समय में, टोकन के लाइफ़साइकल मैनेजमेंट (एलसीएम) से जुड़ी सूचनाएं, 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) | कंडीशनल | अगर शुरुआती लेन-देन या पिछली सूचना के बाद टोकन की स्थिति में बदलाव हुआ है, तो टोकन की नई स्थिति. अगर कोई बदलाव नहीं होता है, तो यह मौजूद नहीं होता. मान्य वैल्यू |
MerchantTokenUpdateNotificationResponse
एचटीटीपी रिस्पॉन्स कोड
| एचटीटीपी रिस्पॉन्स कोड | इस्तेमाल |
|---|---|
| 200 | सूचना मिल गई है. जवाब के मुख्य हिस्से में, स्थिति के बारे में अतिरिक्त जानकारी दी जा सकती है. इसके लिए, JSON ऑब्जेक्ट का इस्तेमाल किया जा सकता है. इसके बारे में अगली टेबल में बताया गया है. |
| 401 | MerchantTokenUpdateNotificationRequest में मौजूद targetNotificationUrl अमान्य है. इस टोकन के लिए, आने वाले समय में मिलने वाली सभी सूचनाएं बंद की जा सकती हैं. |
| 5xx | सर्वर में कुछ समय के लिए गड़बड़ी. सूचना को बाद में फिर से भेजा जाना चाहिए. |
| अन्य | ऐसी गड़बड़ी जिसे ठीक नहीं किया जा सकता. सूचना को बाद में फिर से नहीं भेजा जाना चाहिए. |
| प्रॉपर्टी | टाइप | ज़रूरत | ब्यौरा |
|---|---|---|---|
requestMessageId |
स्ट्रिंग | ज़रूरी है | अनुरोध से जनरेट किया गया मैसेज आईडी. यह अनुरोध में दिए गए मैसेज आईडी से मेल खाना चाहिए. ऐसा न होने पर, जवाब को अनदेखा किया जा सकता है और इस टोकन के लिए आने वाली सूचनाएं बंद कर दी जाती हैं. |
status |
string(enum) | ज़रूरी है | कारोबारी, कंपनी या पेमेंट की सेवा देने वाली कंपनी (पीएसपी) ऐसा स्टेटस दिखा सकती है जिससे पता चले कि उन्होंने सूचना को स्वीकार कर लिया है और टोकन का इस्तेमाल कर लिया है. मान्य मान हैं:
|
उदाहरण
लाइफ़साइकल से जुड़ी सूचना
सूचना पाने का अनुरोध
यह एचटीटीपी पोस्ट अनुरोध है. इसमें टोकन एलसीएम की सूचना होती है. इसे 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"शामिल होगा.