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

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

एन्कोडिंग

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

{
  "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 - उपयोगकर्ता ने Play > खाता > सदस्यताएं से अपनी सदस्यता फिर से चालू की है. उपयोगकर्ता ने सदस्यता को रिन्यू करने के बाद, सदस्यता रद्द कर दी थी, लेकिन उसकी समयसीमा खत्म नहीं हुई थी. ज़्यादा जानकारी के लिए, डेटा वापस लाना लेख पढ़ें.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED (DEPRECATED) - उपयोगकर्ता ने सदस्यता की कीमत में हुए बदलाव की पुष्टि कर दी है.
  • (9) SUBSCRIPTION_DEFERRED - सदस्यता के रिन्यू होने का समय बढ़ा दिया गया है.
  • (10) SUBSCRIPTION_PAUSED - किसी सदस्यता को रोक दिया गया है.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_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 - उपयोगकर्ता ने एक बार इस्तेमाल होने वाला प्रॉडक्ट खरीदा.
  • (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
  }
}

VoidedPurchaseNotification का इस्तेमाल करना

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

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

अगर एनटाइटलमेंट में बदलाव करने के लिए, आपको सिर्फ़ सही खरीदारी और ऑर्डर ढूंढना है, तो आपके पास इस समय ज़रूरी सारी जानकारी है. रद्द की गई खरीदारी के बारे में ज़्यादा जानकारी पाने का तरीका जानने के लिए, Google Play पर रद्द की गई खरीदारी का एपीआई देखें. यह एक पुल मॉडल है, जो किसी तय टाइमस्टैंप के बीच रद्द की गई खरीदारी के बारे में ज़्यादा जानकारी देता है.

एक से ज़्यादा प्रॉडक्ट की खरीदारी में से कुछ प्रॉडक्ट रद्द किए जाने पर, purchases.products से मिले refundableQuantity फ़ील्ड में, खरीदे गए उन प्रॉडक्ट की संख्या दिखती है जिन्हें रद्द नहीं किया गया है.

TestNotification

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

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

उदाहरण

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

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