खास जानकारी
Google Pay Online API से, टोकन के लाइफ़साइकल मैनेजमेंट (एलसीएम) से जुड़ी सूचनाएं, ओरिजनल लेन-देन के समय दिए गए tokenUpdateUrl
पर भेजी जाती हैं. ये सूचनाएं तब भेजी जाती हैं, जब किसी टोकन को बंद किया जाता है या मिटाया जाता है. इन्हें, डिलीवरी में गड़बड़ी होने पर, फिर से सूचनाएं भेजने की कोशिश के साथ, जल्द से जल्द लाइव करने की पूरी कोशिश की जाती है. यहां एलसीएम फ़्लो का एक उदाहरण दिया गया है. इसमें बताया गया है कि जब कोई उपयोगकर्ता Google Wallet से कोई कार्ड हटाता है, तो क्या होता है:
MerchantTokenUpdateNotificationRequest
Google Pay Online API से भेजा गया एचटीटीपी पोस्ट मैसेज, सुरक्षित किए गए
पेलोड को शामिल करने वाला JSON बॉडी होता है. पेलोड को, शेयर किए गए सार्वजनिक पासकोड से सुरक्षित किया जाता है. साथ ही, इस पर Google के निजी पासकोड से हस्ताक्षर किए जाते हैं. इसे अपने निजी पासकोड से डिक्रिप्ट किया जा सकता है. साथ ही, Google के रूट साइनिंग पासकोड से इसकी पुष्टि की जा सकती है.
सुरक्षित किए गए पेलोड रैपर का फ़ॉर्मैट,
PaymentMethodToken के तौर पर मिलने वाले फ़ॉर्मैट जैसा ही होता है. इस एलसीएम सूचना को डिक्रिप्ट करने के लिए, उसी लाइब्रेरी का इस्तेमाल किया जा सकता है.
सुरक्षित किए गए पेलोड में, MerchantTokenUpdateNotificationRequest ऑब्जेक्ट
होता है. इसकी ज़्यादा जानकारी यहां दी गई है.
| प्रॉपर्टी | टाइप | ज़रूरी है | ब्यौरा |
|---|---|---|---|
messageId |
स्ट्रिंग | ज़रूरी है | मैसेज को डुप्लीकेट होने से बचाने और डीबग करने के लिए, इस सूचना का यूनीक आईडी. अगर यह सूचना डिलीवर नहीं होती है, तो आने वाले समय में फिर से सूचना भेजने पर भी यही आईडी रहेगा. |
targetNotificationUrl |
स्ट्रिंग | ज़रूरी है | इस सूचना के लिए तय किया गया यूआरएल. आपको इस बात की पुष्टि करनी होगी कि यह यूआरएल, Google Pay से टोकन एलसीएम सूचनाएं पाने के लिए तय किया गया आपका एंडपॉइंट है. |
timestamp |
स्ट्रिंग | ज़रूरी है | इस सूचना को पहली बार कब बनाया गया था, इसका टाइमस्टैम्प. आने वाले समय में फिर से सूचना भेजने पर भी यही टाइमस्टैम्प रहेगा. अगर आपको एक ही टोकन आईडी के लिए कई सूचनाएं मिलती हैं, तो सिर्फ़ सबसे नए टाइमस्टैम्प वाली सूचना को सटीक माना जाता है. |
apiVersion |
int | ज़रूरी है | एपीआई का मुख्य वर्शन. |
apiVersionMinor |
int | ज़रूरी है | एपीआई का माइनर वर्शन. |
merchantTokenId |
स्ट्रिंग | ज़रूरी है | अपडेट के साथ, मर्चेंट टोकन आईडी. यह आईडी, उपयोगकर्ता के एमआईटी के लिए Google Pay फ़्लो पूरा करने पर, पहली बार दिखाया जाता है. यह सुरक्षित किए गए पेलोड में मौजूद एक फ़ील्ड है,
जिसे
Card ऑब्जेक्ट.
|
cardUpdateInfo |
CardUpdateInfo | ज़रूरी है | इसमें टोकन के अपडेट शामिल होते हैं. |
CardUpdateInfo
| प्रॉपर्टी | टाइप | ज़रूरी है | ब्यौरा |
|---|---|---|---|
fpanSuffix |
स्ट्रिंग | कंडीशनल | यह जानकारी, उपयोगकर्ताओं को फ़ंडिंग के प्राथमिक खाता नंबर (एफ़पीएएन) की पहचान करने में मदद करती है. यह चार अंकों वाली स्ट्रिंग होती है, जिसमें एफ़पीएएन के आखिरी चार वर्ण शामिल होते हैं. अगर यह मौजूद है, तो यह माना जा सकता है कि टोकन चालू है. अगर कोई बदलाव नहीं हुआ है, तो यह मौजूद नहीं होती. |
tokenState |
स्ट्रिंग(enum) | कंडीशनल | टोकन की नई स्थिति. यह तब दिखती है, जब शुरुआती लेन-देन या पिछली सूचना के बाद, टोकन की स्थिति में बदलाव हुआ हो. अगर कोई बदलाव नहीं हुआ है, तो यह मौजूद नहीं होती. मान्य वैल्यू |
MerchantTokenUpdateNotificationResponse
एचटीटीपी रिस्पॉन्स कोड
| एचटीटीपी रिस्पॉन्स कोड | इस्तेमाल |
|---|---|
| 200 | सूचना मिल गई है. रिस्पॉन्स बॉडी में, JSON ऑब्जेक्ट के तौर पर, स्टेटस की ज़्यादा जानकारी दी जा सकती है. इसके बारे में अगली टेबल में बताया गया है. |
| 401 | MerchantTokenUpdateNotificationRequest
में मौजूद targetNotificationUrl मान्य नहीं है. इस टोकन के लिए, आने वाले समय में मिलने वाली सभी सूचनाएं बंद की जा सकती हैं. |
| 5xx | सर्वर में कुछ समय के लिए गड़बड़ी. सूचना को बाद में फिर से भेजा जाना चाहिए. |
| अन्य | ऐसी गड़बड़ी जिसे ठीक नहीं किया जा सकता. सूचना को बाद में फिर से नहीं भेजा जाना चाहिए. |
| प्रॉपर्टी | टाइप | ज़रूरी है | ब्यौरा |
|---|---|---|---|
requestMessageId |
स्ट्रिंग | ज़रूरी है | अनुरोध से जनरेट किया गया मैसेज आईडी. यह अनुरोध में मौजूद मैसेज आईडी से मेल खाना चाहिए. ऐसा न होने पर, रिस्पॉन्स को अनदेखा किया जा सकता है. साथ ही, इस टोकन के लिए, आने वाले समय में मिलने वाली सूचनाएं बंद हो जाती हैं. |
status |
स्ट्रिंग(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\"}" }
डिक्रिप्ट किया गया 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को कॉल करके, टेस्ट लेन-देन पूरा करें. साथ ही,tokenUpdateUrlफ़ील्ड में अपना एंडपॉइंट यूआरएल डालें.*TransactionInfo - Google की सेवा, आपके एंडपॉइंट पर टोकन एलसीएम सूचना भेजेगी.
- इस बात की पुष्टि करें कि आपके पास निजी पासकोड का इस्तेमाल करके, सूचना को डिक्रिप्ट करने की सुविधा है. ध्यान दें कि टेस्ट मोड में, इस
सूचना से कार्ड नंबर के आखिरी चार अंक हमेशा "1234" में बदल जाएंगे. साथ ही, इसमें
"tokenState": "DISABLED"शामिल होगा. भले ही, अनुरोध में कोई भी टोकन हो.