Merchant Center खातों में डेटा बदलने पर पुश नोटिफ़िकेशन पाने के लिए, Notifications sub-API का इस्तेमाल किया जा सकता है. बदलावों का पता लगाने के लिए, समय-समय पर एपीआई को पोल करने के बजाय, रीयल-टाइम इवेंट फ़ीड की सदस्यता ली जा सकती है. ये फ़ीड, सीधे आपके कॉन्फ़िगर किए गए एचटीटीपीएस एंडपॉइंट पर डिलीवर किए जाते हैं.
सूचनाओं के सब-एपीआई की मदद से, इन चीज़ों के लिए सूचनाएं भेजी जा सकती हैं:
- प्रॉडक्ट के स्टेटस में किए गए बदलाव: लिंक किए गए किसी भी खाते या उप-खाते में, प्रॉडक्ट की समीक्षा की स्थिति में बदलाव होने पर, रीयल-टाइम में सूचनाएं पाएं. उदाहरण के लिए, जब किसी प्रॉडक्ट को अस्वीकार या स्वीकार किया जाता है.
- खाते की सेवा में बदलाव:
जब कोई
AccountServiceसंसाधन बनाया जाता है, अपडेट किया जाता है या मिटाया जाता है, तो रीयल-टाइम में सूचनाएं पाएं. जैसे, जब खाते की सेवा का संबंध बनाया जाता है, उसमें बदलाव किया जाता है या उसे हटाया जाता है.
ज़रूरी शर्तें और कॉलबैक यूआरआई सेटअप
पुश नोटिफ़िकेशन पाने के लिए, आपको callBackUri देना होगा. आपके कॉलबैक यूआरआई को इन ज़रूरी शर्तों को पूरा करना होगा:
- यह एक ऐसा एचटीटीपीएस पता होना चाहिए जिसे सार्वजनिक तौर पर ऐक्सेस किया जा सके. साथ ही, इसके पास एक मान्य एसएसएल सर्टिफ़िकेट होना चाहिए, जिस पर सर्टिफ़िकेट देने वाली किसी मान्य संस्था ने हस्ताक्षर किया हो.
Content-Typeहेडर कोapplication/jsonपर सेट करके, एचटीटीपीPOSTअनुरोधों को स्वीकार करना ज़रूरी है.सूचना मिलने की पुष्टि करने के लिए, इनमें से कोई एक एचटीटीपी स्टेटस कोड दिखाना ज़रूरी है:
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}
Decode से जुड़ी सूचनाएं
कोई इवेंट होने पर, Google आपके रजिस्टर किए गए callBackUri पर सूचना भेजता है. पुश नोटिफ़िकेशन, base64-एन्कोडेड data पेलोड के साथ JSON एनवलप में आता है:
{"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पेलोड को पार्स करने का तरीका जानें.