Merchant Center खातों में डेटा बदलने पर पुश नोटिफ़िकेशन पाने के लिए, सूचनाएं पाने की सुविधा देने वाले सब-एपीआई का इस्तेमाल किया जा सकता है. बदलावों का पता लगाने के लिए, एपीआई को समय-समय पर पोल करने के बजाय, रीयल-टाइम इवेंट फ़ीड की सदस्यता ली जा सकती है. ये फ़ीड, सीधे उस एचटीटीपीएस एंडपॉइंट पर डिलीवर किए जाते हैं जिसे आपने कॉन्फ़िगर किया है.
Notifications सब-एपीआई, इनके लिए सूचनाएं पाने की सुविधा देता है:
- प्रॉडक्ट के स्टेटस में किए गए बदलाव: किसी प्रॉडक्ट के स्टेटस में बदलाव होने पर, रीयल-टाइम में सूचनाएं पाएं. जैसे, जब किसी प्रॉडक्ट को अस्वीकार या स्वीकार किया जाता है. ऐसा आपके किसी भी लिंक किए गए खाते या उप-खाते के लिए किया जा सकता है.
- खाते से जुड़ी सेवा में बदलाव:
जब कोई
AccountServiceसंसाधन बनाया जाता है, अपडेट किया जाता है या मिटाया जाता है, तब रीयल-टाइम में सूचनाएं पाएं. जैसे, जब खाते से जुड़ी सेवा का संबंध बनाया जाता है, उसमें बदलाव किया जाता है या उसे हटाया जाता है.
ज़रूरी शर्तें और कॉलबैक यूआरआई सेटअप करना
पुश नोटिफ़िकेशन पाने के लिए, आपको callBackUri देना होगा. आपके कॉलबैक यूआरआई में ये ज़रूरी शर्तें पूरी होनी चाहिए:
- यह ऐसा एचटीटीपीएस पता होना चाहिए जिसे कोई भी ऐक्सेस कर सके. साथ ही, इसमें सर्टिफ़िकेट देने वाली किसी मान्य संस्था के हस्ताक्षर वाला मान्य एसएसएल सर्टिफ़िकेट होना चाहिए.
- एचटीटीपी
POSTअनुरोधों को स्वीकार करना होगा. साथ ही,Content-Typeहेडर कोapplication/jsonपर सेट करना होगा. यह पुष्टि करने के लिए कि सूचना मिल गई है, इनमें से कोई एक एचटीटीपी स्टेटस कोड दिखाना ज़रूरी है:
102200201202204
एक ही कॉलबैक यूआरआई का इस्तेमाल, कई सदस्यताओं के लिए किया जा सकता है. किसी एक एंडपॉइंट पर लोड कम करने के लिए, हर ऐडवांस खाते और इवेंट टाइप के लिए, यूनीक कॉलबैक यूआरआई का इस्तेमाल करें.
सदस्यताएं प्रबंधित करें
सूचनाओं से जुड़ा सब-एपीआई, सूचनाओं के कॉन्फ़िगरेशन बनाने, उनकी सूची बनाने, उन्हें वापस पाने, अपडेट करने, और मिटाने के तरीके उपलब्ध कराता है.
सदस्यता बनाना
सदस्यता बनाने की प्रोसेस, उस इवेंट टाइप के हिसाब से होती है जिसके लिए आपको सूचनाएं चाहिए. हर इवेंट टाइप के लिए, कॉन्फ़िगरेशन के अलग-अलग फ़ील्ड की ज़रूरत होती है. साथ ही, हर इवेंट टाइप के लिए अलग-अलग पेलोड स्ट्रक्चर होते हैं.
सदस्यताएं बनाने और हर इवेंट टाइप के लिए अनुरोध के सैंपल देखने का तरीका जानने के लिए, यहां दी गई गाइड देखें:
- प्रॉडक्ट के स्टेटस में हुए बदलावों के बारे में सूचना पाने के लिए सदस्यता लें
- खाते की सेवा में हुए बदलावों के बारे में सूचना पाने के लिए सदस्यता लेना
सदस्यताएं लिस्ट करना
किसी खाते के लिए सूचना पाने की सभी सदस्यताओं की सूची बनाने के लिए, notificationsubscriptions कलेक्शन को GET यह अनुरोध भेजें:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions
सदस्यता वापस पाना
किसी खास सदस्यता की जानकारी पाने के लिए, सदस्यता के संसाधन का नाम इस्तेमाल करें:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
सदस्यता अपडेट करना
किसी मौजूदा सदस्यता के लिए, कॉलबैक यूआरआई को अपडेट करने के लिए, PATCH अनुरोध भेजें. इसमें update_mask के साथ, अपडेट किए जाने वाले फ़ील्ड की जानकारी दें:
PATCH https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}?update_mask=callBackUri
{
"callBackUri": "https://example.com/updated-callback"
}
सदस्यता मिटाना
सूचनाएं पाना बंद करने के लिए, सदस्यता मिटाएं:
DELETE https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
सूचनाओं को डिकोड करना
जब कोई इवेंट होता है, तो Google आपके रजिस्टर किए गए callBackUri पर एक सूचना भेजता है. पुश नोटिफ़िकेशन, JSON फ़ॉर्मैट में मिलता है. इसमें base64-encoded data पेलोड होता है:
{"message":{"data":"{base64_encoded_string}"}}
JSON इवेंट पेलोड को ऐक्सेस करने के लिए, डेटा स्ट्रिंग को डिकोड करें. यहां दिए गए Spring Boot कंट्रोलर के सैंपल में, पुश नोटिफ़िकेशन पाने और उन्हें डिकोड करने का तरीका बताया गया है:
@RestController
public class ExampleController {
@RequestMapping(value = "/push",
method = RequestMethod.POST,
consumes = {"application/json"},
produces = {"text/plain"})
@ResponseStatus(HttpStatus.OK)
public void handleNotification(@RequestBody String message) {
JSONObject jsonObject = new JSONObject(message);
JSONObject jsonMessage = jsonObject.getJSONObject("message");
String encodedData = jsonMessage.getString("data");
byte[] decodedBytes = Base64.getDecoder().decode(encodedData);
String decodedPayload = new String(decodedBytes);
// Process decodedPayload according to the registered event type
}
}
अगले चरण
सदस्यताएं कॉन्फ़िगर करने और खास इवेंट के लिए डिकोड किए गए पेलोड को मैनेज करने के लिए, यह लेख पढ़ें:
- प्रॉडक्ट की स्थिति में बदलाव होने पर पुश नोटिफ़िकेशन पाना:
प्रॉडक्ट के अस्वीकार और स्वीकार किए जाने से जुड़े अपडेट पाने के लिए सदस्यता लेने का तरीका जानें. साथ ही,
ProductStatusChangeMessageपेलोड को पार्स करने का तरीका जानें. - खाते से जुड़ी सेवा में हुए बदलावों के लिए पुश नोटिफ़िकेशन पाना:
खाते के संबंध से जुड़े अपडेट पाने के लिए सदस्यता लेने का तरीका जानें. साथ ही,
ResourceChangeMessageपेलोड को पार्स करने का तरीका जानें.