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

इस दस्तावेज़ में, डेवलपर से जुड़ी रीयल-टाइम सूचनाओं के टाइप की सूची दी गई है और उनके बारे में बताया गया है. ये सूचनाएं आपको 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,
  "pendingRefundReviewNotification": PendingRefundReviewNotification,
  "testNotification": TestNotification
}

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

प्रॉपर्टी का नाम वैल्यू ब्यौरा
वर्शन स्ट्रिंग इस सूचना का वर्शन. शुरुआत में, यह "1.0" होता है. यह वर्शन, अन्य वर्शन फ़ील्ड से अलग होता है.
packageName स्ट्रिंग उस ऐप्लिकेशन के पैकेज का नाम जिससे यह सूचना जुड़ी है. उदाहरण के लिए, `com.some.thing`.
eventTimeMillis लंबा इवेंट होने का टाइमस्टैंप. यह टाइमस्टैंप, Epoch के बाद से मिलीसेकंड में होता है.
subscriptionNotification SubscriptionNotification

अगर यह फ़ील्ड मौजूद है, तो इसका मतलब है कि यह सूचना किसी सदस्यता से जुड़ी है. साथ ही, इस फ़ील्ड में सदस्यता से जुड़ी अन्य जानकारी शामिल है.

ध्यान दें कि यह फ़ील्ड, pendingRefundReviewNotification, oneTimeProductNotification, voidedPurchaseNotification, और testNotification के साथ इस्तेमाल नहीं किया जा सकता.

oneTimeProductNotification OneTimeProductNotification

अगर यह फ़ील्ड मौजूद है, तो इसका मतलब है कि यह सूचना एक बार की जाने वाली खरीदारी से जुड़ी है. साथ ही, इस फ़ील्ड में खरीदारी से जुड़ी ज़्यादा जानकारी होती है.

ध्यान दें कि यह फ़ील्ड, pendingRefundReviewNotification, subscriptionNotification, voidedPurchaseNotification, और testNotification के साथ इस्तेमाल नहीं किया जा सकता.

voidedPurchaseNotification VoidedPurchaseNotification

अगर यह फ़ील्ड मौजूद है, तो यह सूचना रद्द की गई खरीदारी से जुड़ी है. साथ ही, इस फ़ील्ड में रद्द की गई खरीदारी से जुड़ी अतिरिक्त जानकारी शामिल है.

ध्यान दें कि यह फ़ील्ड, pendingRefundReviewNotification, oneTimeProductNotification, subscriptionNotification, और testNotification के साथ इस्तेमाल नहीं किया जा सकता.

pendingRefundReviewNotification PendingRefundReviewNotification

अगर यह फ़ील्ड मौजूद है, तो इसका मतलब है कि यह सूचना, चार्जबैक के उस अनुरोध से जुड़ी है जिसके लिए आपको समाधान सुझाने का विकल्प मिलता है. `ReviewRefund` एपीआई को कॉल करके, इस सूचना का जवाब दें.

ध्यान दें कि यह फ़ील्ड, subscriptionNotification, oneTimeProductNotification, voidedPurchaseNotification, और testNotification के साथ इस्तेमाल नहीं किया जा सकता.

testNotification TestNotification

अगर यह फ़ील्ड मौजूद है, तो इसका मतलब है कि यह सूचना, टेस्ट पब्लिश से जुड़ी है. ये सूचनाएं सिर्फ़ Google Play Console से भेजी जाती हैं.

ध्यान दें कि यह फ़ील्ड, pendingRefundReviewNotification, 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) - A subscription price change has successfully been confirmed by the user.
  • (9) SUBSCRIPTION_DEFERRED - सदस्यता के रिन्यूअल की अवधि बढ़ा दी गई है.
  • (10) SUBSCRIPTION_PAUSED - सदस्यता को कुछ समय के लिए रोक दिया गया है.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - सदस्यता को कुछ समय के लिए रोकने के शेड्यूल में बदलाव किया गया है.
  • (12) SUBSCRIPTION_REVOKED - सदस्यता खत्म होने से पहले ही, उपयोगकर्ता की सदस्यता रद्द कर दी गई है.
  • (13) SUBSCRIPTION_EXPIRED - सदस्यता खत्म हो गई है.
  • (17) SUBSCRIPTION_ITEMS_CHANGED - सदस्यता बंडल में मौजूद किसी आइटम में बदलाव किया गया है.
  • (18) SUBSCRIPTION_CANCELLATION_SCHEDULED - किस्तों में ली गई सदस्यता को रद्द करने का शेड्यूल तय किया गया है. यह शेड्यूल, सदस्यता की अवधि खत्म होने के बाद लागू होगा.
  • (19) SUBSCRIPTION_PRICE_CHANGE_UPDATED - सदस्यता वाले किसी आइटम की कीमत में बदलाव की जानकारी अपडेट की गई है.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED - किसी सदस्यता के लिए, अनुमति न मिला लेन-देन रद्द कर दिया गया है.
  • (22) SUBSCRIPTION_PRICE_STEP_UP_CONSENT_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: इससे उस रिफ़ंड के टाइप के बारे में पता चलता है जिसकी वजह से खरीदारी रद्द हुई.

PendingRefundReviewNotification

जब कोई उपयोगकर्ता किसी खरीदारी के लिए चार्जबैक का अनुरोध करता है और उस अनुरोध की समीक्षा डेवलपर को करनी होती है, तब PendingRefundReviewNotification भेजा जाता है. यह सूचना मिलने पर, आपको अनुरोध की समीक्षा करनी चाहिए. साथ ही, ReviewRefund एपीआई को कॉल करके, 24 घंटे के अंदर रिफ़ंड का सुझाव और खरीदारी के इस्तेमाल का सबूत देना चाहिए.

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

{
  "version": string,
  "pendingRefundToken": string,
  "orderId": string,
  "refundReason": int,
  "obfuscatedAccountId": string,
  "obfuscatedProfileId": string
}
प्रॉपर्टी का नाम वैल्यू ब्यौरा
वर्शन स्ट्रिंग इस सूचना का वर्शन. शुरुआत में, यह "1.0" होता है. यह वर्शन, वर्शन के अन्य फ़ील्ड से अलग होता है.
pendingRefundToken स्ट्रिंग एक यूनीक टोकन, जो रिफ़ंड के उस अनुरोध की पहचान करता है जिसकी समीक्षा की जा रही है. ReviewRefund API को कॉल करते समय, इस टोकन को पास करें.
orderId स्ट्रिंग उस खरीदारी का ऑर्डर आईडी जिसकी रिफ़ंड समीक्षा बाकी है.
refundReason आईएनटी रिफ़ंड के अनुरोध की वजह. समीक्षा के लिए लंबित मामलों में, रिफ़ंड की वजह के तौर पर सिर्फ़ CHARGEBACK (7) को चुना जा सकता है. आपके कोड को नई वजहों को मैनेज करना चाहिए, क्योंकि वे उपलब्ध हो जाती हैं.
obfuscatedAccountId स्ट्रिंग (अगर लागू हो) डेवलपर का तय किया गया, धुंधला किया गया यूज़र आईडी. यह आईडी, खरीदारी के समय दिया गया था.
obfuscatedProfileId स्ट्रिंग (अगर लागू हो) डेवलपर का तय किया गया वह प्रोफ़ाइल आईडी जिसे धुंधला कर दिया गया है. यह आईडी, खरीदारी के समय दिया गया था.

उदाहरण

यहां रिफ़ंड की समीक्षा की सूचना का एक उदाहरण दिया गया है:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503350156918",
  "pendingRefundReviewNotification":
  {
    "version":"1.0",
    "pendingRefundToken":"example-token",
    "orderId":"GPA.1234-5678-9012-34567",
    "refundReason":7,
    "obfuscatedAccountId":"user-account-id",
    "obfuscatedProfileId":"user-profile-id"
  }
}

TestNotification

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

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

उदाहरण

यहां जांच से जुड़ी सूचना का एक उदाहरण दिया गया है:

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