डेवलपर से जुड़ी रीयल-टाइम सूचनाओं के बारे में जानकारी देने वाली गाइड

इस दस्तावेज़ में, Google Play से मिलने वाली डेवलपर से जुड़ी रीयल-टाइम सूचनाओं के बारे में बताया गया है.

एन्कोडिंग

Cloud Pub/Sub के किसी विषय पर पब्लिश किए गए हर मैसेज में, base64-encoded डेटा फ़ील्ड होता है.

{
  "message": {
    "attributes": {
      "key": "value"
    },
    "data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
    "messageId": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

Base64 एन्कोड किए गए डेटा फ़ील्ड को डिकोड करने के बाद, DeveloperNotification में ये फ़ील्ड शामिल होते हैं:

{
  "version": string,
  "packageName": string,
  "eventTimeMillis": long,
  "oneTimeProductNotification": OneTimeProductNotification,
  "subscriptionNotification": SubscriptionNotification,
  "voidedPurchaseNotification": VoidedPurchaseNotification,
  "testNotification": TestNotification
}

यहां दी गई टेबल में, इन फ़ील्ड के बारे में बताया गया है.

प्रॉपर्टी का नाम वैल्यू ब्यौरा
वर्शन स्ट्रिंग इस सूचना का वर्शन. शुरुआत में, यह "1.0" होता है. यह वर्शन, वर्शन फ़ील्ड के अन्य वर्शन से अलग है.
packageName स्ट्रिंग उस ऐप्लिकेशन का पैकेज नाम जिससे यह सूचना जुड़ी है. उदाहरण के लिए, `com.some.thing`.
eventTimeMillis लंबा इवेंट होने का टाइमस्टैंप. यह Epoch के बाद के मिलीसेकंड में होता है.
subscriptionNotification SubscriptionNotification अगर यह फ़ील्ड मौजूद है, तो इसका मतलब है कि यह सूचना किसी सदस्यता से जुड़ी है. साथ ही, इस फ़ील्ड में सदस्यता से जुड़ी ज़्यादा जानकारी होती है. ध्यान दें कि यह फ़ील्ड, oneTimeProductNotification, voidedPurchaseNotification, और testNotification के साथ इस्तेमाल नहीं किया जा सकता.
oneTimeProductNotification OneTimeProductNotification अगर यह फ़ील्ड मौजूद है, तो इसका मतलब है कि यह सूचना एक बार की जाने वाली खरीदारी से जुड़ी है. इस फ़ील्ड में, खरीदारी से जुड़ी ज़्यादा जानकारी होती है. ध्यान दें कि यह फ़ील्ड, subscriptionNotification, voidedPurchaseNotification, और testNotification के साथ इस्तेमाल नहीं किया जा सकता.
voidedPurchaseNotification VoidedPurchaseNotification अगर यह फ़ील्ड मौजूद है, तो इसका मतलब है कि यह सूचना रद्द की गई खरीदारी से जुड़ी है. इस फ़ील्ड में, रद्द की गई खरीदारी के बारे में अतिरिक्त जानकारी होती है. ध्यान दें कि यह फ़ील्ड, एक बार प्रॉडक्ट की सूचना पाने की सुविधा, सदस्यता की सूचना पाने की सुविधा, और टेस्ट की सूचना पाने की सुविधा के साथ इस्तेमाल नहीं किया जा सकता.
testNotification TestNotification अगर यह फ़ील्ड मौजूद है, तो इसका मतलब है कि यह सूचना टेस्ट पब्लिश से जुड़ी है. ये सूचनाएं सिर्फ़ Google Play डेवलपर कंसोल के ज़रिए भेजी जाती हैं. ध्यान दें कि यह फ़ील्ड, oneTimeProductNotification, subscriptionNotification, और voidedPurchaseNotification के साथ इस्तेमाल नहीं किया जा सकता.

SubscriptionNotification

SubscriptionNotification में ये फ़ील्ड शामिल होते हैं:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string
}
प्रॉपर्टी का नाम वैल्यू ब्यौरा
वर्शन स्ट्रिंग इस सूचना का वर्शन. शुरुआत में, यह "1.0" होता है. यह वर्शन, वर्शन फ़ील्ड के अन्य वर्शन से अलग है.
notificationType आईएनटी किसी सदस्यता के लिए notificationType की ये वैल्यू हो सकती हैं:
  • (1) SUBSCRIPTION_RECOVERED - खाता होल्ड की स्थिति से सदस्यता वापस पा ली गई.
  • (2) SUBSCRIPTION_RENEWED - चालू सदस्यता रिन्यू की गई.
  • (3) SUBSCRIPTION_CANCELED - सदस्यता को खुद की इच्छा से या अनजाने में रद्द कर दिया गया था. उपयोगकर्ता की ओर से सदस्यता रद्द करने पर, यह सूचना भेजी जाती है.
  • (4) SUBSCRIPTION_PURCHASED - नई सदस्यता खरीदी गई.
  • (5) SUBSCRIPTION_ON_HOLD - किसी सदस्यता के लिए, खाते पर रोक लगाने की सुविधा चालू होने पर, खाते पर रोक लगा दी गई है.
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD - सदस्यता ग्रेस पीरियड में है (अगर यह सुविधा चालू है).
  • (7) SUBSCRIPTION_RESTARTED - User has restored their subscription from Play > Account > Subscriptions. सदस्यता रद्द कर दी गई थी, लेकिन उपयोगकर्ता ने उसे तब बहाल किया, जब वह खत्म नहीं हुई थी. ज़्यादा जानकारी के लिए, वापस लाना लेख पढ़ें.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED (DEPRECATED) - A subscription price change has successfully been confirmed by the user.
  • (9) SUBSCRIPTION_DEFERRED - किसी सदस्यता के बिलिंग चक्र को बढ़ा दिया गया है.
  • (10) SUBSCRIPTION_PAUSED - सदस्यता को कुछ समय के लिए रोक दिया गया है.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - A subscription pause schedule has been changed.
  • (12) SUBSCRIPTION_REVOKED - किसी सदस्यता को खत्म होने से पहले ही उपयोगकर्ता के लिए रद्द कर दिया गया है.
  • (13) SUBSCRIPTION_EXPIRED - सदस्यता खत्म हो गई है.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED - किसी सदस्यता के लिए, मंज़ूरी बाकी लेन-देन रद्द कर दिया गया है.
  • (19) SUBSCRIPTION_PRICE_CHANGE_UPDATED - सदस्यता आइटम की कीमत में बदलाव की जानकारी अपडेट की गई है.
purchaseToken स्ट्रिंग यह टोकन, उपयोगकर्ता के डिवाइस को तब दिया जाता है, जब सदस्यता खरीदी जाती है.

उदाहरण

नई सदस्यता खरीदने पर मिलने वाली सूचना का उदाहरण यहां दिया गया है:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "subscriptionNotification":
  {
    "version":"1.0",
    "notificationType":4,
    "purchaseToken":"PURCHASE_TOKEN"
  }
}

OneTimeProductNotification

OneTimeProductNotification में ये फ़ील्ड शामिल होते हैं:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
प्रॉपर्टी का नाम वैल्यू ब्यौरा
वर्शन स्ट्रिंग इस सूचना का वर्शन. शुरुआत में, यह "1.0" होगा. यह वर्शन, वर्शन फ़ील्ड के अन्य वर्शन से अलग है.
notificationType आईएनटी सूचना का टाइप. इसकी ये वैल्यू हो सकती हैं:
  • (1) ONE_TIME_PRODUCT_PURCHASED - A one-time product was successfully purchased by a user.
  • (2) ONE_TIME_PRODUCT_CANCELED - उपयोगकर्ता ने एक बार खरीदे जाने वाले ऐसे प्रॉडक्ट की खरीदारी रद्द कर दी है जिसे मंज़ूरी मिलना बाकी है.
purchaseToken स्ट्रिंग खरीदारी के समय, उपयोगकर्ता के डिवाइस को दिया गया टोकन.
sku स्ट्रिंग खरीदे गए वन-टाइम प्रॉडक्ट का आईडी (उदाहरण के लिए, "sword_001")

उदाहरण

यहां एक बार की जाने वाली नई खरीदारी की सूचना का उदाहरण दिया गया है:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "oneTimeProductNotification":
  {
    "version":"1.0",
    "notificationType":1,
    "purchaseToken":"PURCHASE_TOKEN",
    "sku":"my.sku"
  }
}

VoidedPurchaseNotification

VoidedPurchaseNotification में ये फ़ील्ड शामिल होते हैं:

प्रॉपर्टी का नाम

वैल्यू

ब्यौरा

purchaseToken

string

रद्द की गई खरीदारी से जुड़ा टोकन. जब कोई नई खरीदारी की जाती है, तब डेवलपर को यह जानकारी दी जाती है.

orderId

string

उस लेन-देन से जुड़ा यूनीक ऑर्डर आईडी जिसे रद्द कर दिया गया है. एक बार की जाने वाली खरीदारी के लिए, यह खरीदारी के लिए जनरेट किया गया सिर्फ़ एक ऑर्डर आईडी दिखाता है. अपने-आप रिन्यू होने वाली सदस्यताओं के लिए, हर रिन्यूअल ट्रांज़ैक्शन के लिए एक नया ऑर्डर आईडी जनरेट होता है.

productType

int

रद्द की गई खरीदारी के लिए productType में ये वैल्यू हो सकती हैं:

  • (1) PRODUCT_TYPE_SUBSCRIPTION - सदस्यता की खरीदारी रद्द कर दी गई है.
  • (2) PRODUCT_TYPE_ONE_TIME - एक बार की गई खरीदारी रद्द कर दी गई है.

refundType

int

रद्द की गई खरीदारी के लिए refundType में ये वैल्यू हो सकती हैं:

  • (1) REFUND_TYPE_FULL_REFUND - खरीदारी पूरी तरह से रद्द कर दी गई है.
  • (2) REFUND_TYPE_QUANTITY_BASED_PARTIAL_REFUND - इस खरीदारी के लिए, कुछ हिस्से का रिफ़ंड दिया गया है. यह रिफ़ंड, खरीदे गए आइटम की संख्या के आधार पर दिया गया है. यह सिर्फ़ एक से ज़्यादा आइटम खरीदने पर लागू होता है. किसी खरीदारी को कई बार आंशिक रूप से रद्द किया जा सकता है.

ध्यान दें कि एक से ज़्यादा आइटम खरीदने पर, अगर बाकी बचे सभी आइटम का रिफ़ंड कर दिया जाता है, तो refundType REFUND_TYPE_FULL_REFUND हो जाएगा.

उदाहरण

रद्द की गई नई खरीदारी की सूचना का उदाहरण यहां दिया गया है:

{
  "version":"1.0",
  "packageName":"com.some.app",
  "eventTimeMillis":"1503349566168",
  "voidedPurchaseNotification":
  {
    "purchaseToken":"PURCHASE_TOKEN",
    "orderId":"GS.0000-0000-0000",
    "productType":1
    "refundType":1
  }
}

Consuming VoidedPurchaseNotification

जब आपके आरटीडीएन क्लाइंट को VoidedPurchaseNotification मिलता है, तो यहां दी गई जानकारी नोट करें:

  • packageName: इससे ऐप्लिकेशन की पहचान होती है.
  • eventTimeMillis: इससे आपको यह पता चलता है कि स्टेटस में बदलाव कब हुआ.
  • purchaseToken: यह टोकन, उपयोगकर्ता के डिवाइस को तब दिया जाता है, जब प्रॉडक्ट खरीदा जाता है.
  • orderId: इससे रद्द किए गए लेन-देन से जुड़े ऑर्डर की पहचान की जाती है.
  • productType: इससे पता चलता है कि रद्द की गई खरीदारी, इन-ऐप्लिकेशन खरीदारी थी या सदस्यता.
  • refundType: इससे पता चलता है कि किस तरह के रिफ़ंड की वजह से खरीदारी रद्द हुई.

TestNotification

TestNotification में ये फ़ील्ड शामिल होते हैं:

{
  "version": string
}
प्रॉपर्टी का नाम वैल्यू ब्यौरा
वर्शन स्ट्रिंग इस सूचना का वर्शन. शुरुआत में, यह "1.0" होता है. यह वर्शन, वर्शन फ़ील्ड के अन्य वर्शन से अलग है.

उदाहरण

यहां, जांच के लिए भेजी गई सूचना का एक उदाहरण दिया गया है:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503350156918",
  "testNotification":
  {
    "version":"1.0"
  }
}