इस दस्तावेज़ में, 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,
"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` API को कॉल करके, इस सूचना का जवाब दें. ध्यान दें कि यह फ़ील्ड, 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 की ये वैल्यू हो सकती हैं:
|
| 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 | आईएनटी | सूचना का टाइप. इसकी ये वैल्यू हो सकती हैं:
|
| 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 में ये फ़ील्ड शामिल होते हैं:
| प्रॉपर्टी का नाम | वैल्यू | ब्यौरा |
|---|---|---|
|
|
रद्द की गई खरीदारी से जुड़ा टोकन. यह जानकारी, डेवलपर को तब दी जाती है, जब कोई नई खरीदारी होती है. |
|
|
उस लेन-देन से जुड़ा यूनीक ऑर्डर आईडी जिसे रद्द कर दिया गया है. एक बार की जाने वाली खरीदारी के लिए, यह खरीदारी के लिए जनरेट किया गया ऑर्डर आईडी होता है. अपने-आप रिन्यू होने वाली सदस्यताओं के लिए, हर रिन्यूअल ट्रांज़ैक्शन के लिए नया ऑर्डर आईडी जनरेट होता है. |
|
|
रद्द की गई खरीदारी के लिए
|
|
|
रद्द की गई खरीदारी के लिए
ध्यान दें कि एक से ज़्यादा आइटम खरीदने पर, जब बाकी सभी आइटम का रिफ़ंड दिया जाता है, तब |
उदाहरण
रद्द की गई नई खरीदारी की सूचना का एक उदाहरण यहां दिया गया है:
{
"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: इससे उस रिफ़ंड के टाइप के बारे में पता चलता है जिसकी वजह से खरीदारी रद्द हुई.
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"
}
}