पुश नोटिफ़िकेशन

इस पेज पर, Reseller API के साथ पुश नोटिफ़िकेशन इस्तेमाल करने का तरीका बताया गया है.

खास जानकारी

Reseller API, Pub/Sub API का इस्तेमाल करके Google Workspace सदस्यता के इवेंट के बारे में पुश नोटिफ़िकेशन भेजता है. उदाहरण के लिए, पुश नोटिफ़िकेशन सेट अप किए जा सकते हैं, ताकि ग्राहक की सदस्यता के स्टेटस में बदलाव होने पर आपको सूचना मिल सके.

ज़रूरी शर्तें

  • अपने Google Cloud प्रोजेक्ट के लिए, Pub/Sub API चालू करें.
  • अपने Cloud प्रोजेक्ट में, अपने सेवा खाते को Pub/Sub IAM की भूमिकाएं असाइन करें. roles/pubsub.editor भूमिका असाइन करने का सुझाव दिया जाता है. हालांकि, Pub/Sub की ज़्यादा खास अनुमतियां भी इस्तेमाल की जा सकती हैं.

कोई विषय बनाना

कोई विषय बनाने के लिए, Reseller API के साथ रजिस्टर करें. इसके लिए, resellernotify.register तरीके का इस्तेमाल करें. यह तरीका, सेवा खाते के ईमेल पते को पैरामीटर के तौर पर लेता है. इस तरीके से पुष्टि किए गए सिर्फ़ सेवा खाते ही आपके विषय की सदस्यता ले सकते हैं.

POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/register
{
  "serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}

अनुरोध पूरा होने पर, जवाब के तौर पर एचटीटीपी 200 स्टेटस कोड और JSON रिस्पॉन्स दिखेगा. इसमें आपके Pub/Sub विषय का नाम होगा.

जवाब का उदाहरण:

{
  "topicName": "projects/partner-watch/topics/C0abcdefg"
}

ज़्यादा सेवा खातों को अनुमति देने के लिए, resellernotify.register पर फिर से कॉल करें.

किसी सेवा खाते का ऐक्सेस रद्द करना

Reseller API, resellernotify.unregister एंडपॉइंट का इस्तेमाल करके सेवा खातों को अनरजिस्टर कर सकता है:

POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/unregister
{
  "serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}

किसी विषय की सदस्यता लेना

Pub/Sub विषय बनाने के बाद, सेट अप करें कि आपका ऐप्लिकेशन बदलाव वाले इवेंट का इस्तेमाल कैसे करता है. इनमें से कोई एक विकल्प चुनें:

  • पुश सदस्यता: इसमें आपको एचटीटीपी POST कॉलबैक देना होता है. Pub/Sub इस कॉलबैक का इस्तेमाल करके, आपके ऐप्लिकेशन को नए इवेंट के बारे में सूचना देता है.
  • पुल सदस्यता: आपका ऐप्लिकेशन, समय-समय पर एचटीटीपी कॉल करता है, ताकि उसे बदलावों की सूची मिल सके.

किसी विषय की सदस्यता लेने के अनुरोध का उदाहरण:

PUT https://pubsub.googleapis.com/v1/projects/PROJECT/subscriptions/SUBSCRIPTION_NAME
{
  "topic": "TOPIC_NAME"
  // Only needed for push configurations
  "pushConfig": {
    "pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT"
  },
}

इनकी जगह ये डालें:

  • PROJECT: आपका Google Cloud प्रोजेक्ट.
  • SUBSCRIPTION_NAME: आपकी सदस्यता के लिए पहचान करने वाला नाम.
  • TOPIC_NAME: यह वह Pub/Sub विषय है जिसे आपने पहले बनाया था.
  • PUSH_NOTIFICATION_ENDPOINT: पुश सूचना हैंडलर एंडपॉइंट.

अनुरोध पूरा होने पर, एचटीटीपी 200 स्टेटस कोड मिलता है. जवाब का उदाहरण:

{
  "name": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME",
  "topic": "TOPIC_NAME",
  "pushConfig": {
    "pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT"
    },
  "ackDeadlineSeconds": 10
}

सूचना के फ़ॉर्मैट

Pub/Sub सूचना का एक उदाहरण यहां दिया गया है. मैसेज का डेटा, base64-कोड में बदली गई JSON स्ट्रिंग है.

{
  "message": {
    "attributes": {},
    "data": "eyJza3VfaWQiOiAiR29vZ2xlLUFwcHMtVW5saW1pdGVkIiwgImV2ZW50X3R5cGUiOiAiU1VCU0NSSVBUSU9OX0NBTkNFTExFRCIsICJjdXN0b21lcl9kb21haW5fbmFtZSI6ICJkb21haW4uY29tIiwgInN1YnNjcmlwdGlvbl9pZCI6ICIxMjM0NTY3IiwgImN1c3RvbWVyX2lkIjogIkMwYWJjZGVmIiwgIm1lc3NhZ2VfaWQiOiAiODY3NTMwOSIsICJwdWJsaXNoX3RpbWUiOiB7InNlY29uZHMiOiAxNDU3NzMxODQ2LCAibmFub3MiOiAzNDkwMDAwMDB9LCAicmVzZWxsZXJfY3VzdG9tZXJfaWQiOiAiQzByZXNlbGxlciJ9",
    "message_id": 1234567891012131
  },
  "subscription": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME"
}

डिकोड करने के बाद message.data ऑब्जेक्ट का उदाहरण:

{
  "customer_id": "C0abcdef",
  "customer_domain_name": "domain.com",
  "event_type": "SUBSCRIPTION_CANCELLED",
  "sku_id": "Google-Apps-Unlimited",
  "subscription_id": "1234567",
  // Optional fields dependent on event_type
  "subscription_suspension_reasons": [],
  "subscription_cancellation_reason": "REASON"
}

इवेंट किस तरह के हैं

इवेंट के संभावित टाइप:

  • NEW_SUBSCRIPTION_CREATED: नई सदस्यता बनाई गई.
  • SUBSCRIPTION_TRIAL_ENDED: सदस्यता को मुफ़्त में आज़माने की अवधि खत्म हो गई है.
  • PRICE_PLAN_SWITCHED: खरीदार ने महीने के हिसाब से प्लान को सालाना प्लान में बदल दिया है. अगर ग्राहक रिन्यूअल के दौरान, सालाना प्लान से महीने के हिसाब से बिलिंग वाले प्लान पर स्विच करता है, तो यह इवेंट ट्रिगर नहीं होता.
  • COMMITMENT_CHANGED: सालाना प्लान की कीमत बढ़ा दी गई है या कम कर दी गई है.
  • SUBSCRIPTION_RENEWED: सालाना सदस्यता रिन्यू की गई.
  • SUBSCRIPTION_SUSPENDED: सदस्यता निलंबित कर दी गई है. subscription_suspension_reasons देखें.
  • SUBSCRIPTION_SUSPENSION_REVOKED: निलंबन हटा दिया गया है.
  • SUBSCRIPTION_CANCELLED: सदस्यता रद्द कर दी गई है. subscription_cancellation_reason देखें. ट्रांसफ़र का भी पता लगा सकता है.
  • SUBSCRIPTION_CONVERTED: सदस्यता को बदल दिया गया है. उदाहरण के तौर पर ये मामले:
    • सीधे तौर पर ली गई सदस्यता को रीसेलर से ली गई सदस्यता में बदलें.
    • पैसे चुकाकर ली गई सदस्यता को बिना किसी शुल्क के सदस्यता लेने के ऑफ़र में बदलना.
    • ऑनलाइन सदस्यता को ऑफ़लाइन सदस्यता में बदलें.
  • SUBSCRIPTION_UPGRADE: सदस्यता की एसकेयू को अपग्रेड किया गया था. उदाहरण: Google Workspace Business Starter से Business Standard पर अपग्रेड करना.
  • SUBSCRIPTION_DOWNGRADE: सदस्यता एसकेयू को डाउनग्रेड किया गया था. उदाहरण: Google Workspace Business Standard से Business Starter पर स्विच करना.
  • LICENSE_ASSIGNMENT_CHANGED: लाइसेंस असाइन किया गया था या रद्द कर दिया गया था. इस कुकी का इस्तेमाल, फ़्लेक्सिबल सदस्यता के लिए सीटों की संख्या में होने वाले बदलावों को ट्रैक करने के लिए किया जाता है.

सदस्यता रद्द करने की वजहें

event_type SUBSCRIPTION_CANCELLED होने पर, रद्द करने की वजह की जानकारी अपने-आप भर जाती है. इसकी ये वजहें हो सकती हैं:

  • TRANSFERRED_OUT: ग्राहक ने डायरेक्ट बिलिंग या किसी दूसरे रीसेलर पर स्विच कर लिया है.
  • PURCHASE_OF_SUBSUMING_SKU: ग्राहक ने ऐसे एसकेयू पर अपग्रेड किया है जो किसी दूसरे एसकेयू को बदल देता है. उदाहरण: Google Workspace Business Starter प्लान का इस्तेमाल करने वाला कोई ग्राहक, Business Plus पर अपग्रेड करता है. Business Plus में Vault शामिल होता है.
  • RESELLER_INITIATED: रिसेलर ने सदस्यता रद्द कर दी है.
  • OTHER: सदस्यता किसी और वजह से रद्द की गई थी.

सदस्यता निलंबित करने की वजहें

निलंबन की वजह तब दिखती है, जब event_type SUBSCRIPTION_SUSPENDED हो. इसकी ये वजहें हो सकती हैं:

  • PENDING_TOS_ACCEPTANCE: ग्राहक ने Google Workspace Resold की सेवा की शर्तें स्वीकार नहीं की हैं.
  • RENEWAL_WITH_TYPE_CANCEL: ग्राहक की प्रतिबद्धता खत्म हो गई है और सेवा रद्द कर दी गई है.
  • RESELLER_INITIATED: रिसेलर ने सदस्यता को मैन्युअल तरीके से निलंबित कर दिया है.
  • TRIAL_ENDED: ग्राहक ने बिना ट्रायल वाला प्लान चुने ही, सदस्यता को मुफ़्त में आज़माने की अवधि खत्म कर दी.
  • OTHER: Google की किसी वजह से ग्राहक का खाता निलंबित कर दिया गया है. जैसे, गलत इस्तेमाल.

Pub/Sub से जुड़ी सीमाएं

पुश नोटिफ़िकेशन का क्रम हमेशा एक जैसा नहीं होता. ऐसा हो सकता है कि मैसेज कई बार डिलीवर हो जाएं या डिलीवर ही न हों. हमारा सुझाव है कि आप बदली गई सदस्यताओं के लिए, reseller.subscriptions.get का इस्तेमाल करें, ताकि मौजूदा स्थिति का पता चल सके.