एन्कोडिंग
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 डेवलपर कंसोल के ज़रिए भेजा जाता है. ध्यान दें कि यह फ़ील्ड, 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
}
}
VoidedPurchaseNotification का इस्तेमाल करना
जब आपके आरटीडीएन क्लाइंट को VoidedPurchaseNotification मिलती है, तो यह जानकारी नोट करें:
packageName: ऐप्लिकेशन की पहचान करता है.eventTimeMillis: इससे आपको स्टेटस में बदलाव होने के समय के बारे में पता चलता है.purchaseToken: प्रॉडक्ट खरीदने पर, उपयोगकर्ता के डिवाइस को दिया गया टोकन.orderId: रद्द किए गए लेन-देन से जुड़े ऑर्डर की पहचान करता है.productType: इससे पता चलता है कि रद्द की गई खरीदारी, इन-ऐप्लिकेशन खरीदारी थी या सदस्यता.refundType: इससे पता चलता है कि किस तरह के रिफ़ंड की वजह से खरीदारी रद्द हुई.
PendingRefundReviewNotification
PendingRefundReviewNotification तब भेजी जाती है, जब कोई उपयोगकर्ता खरीदारी के लिए चार्जबैक का अनुरोध करता है और इस अनुरोध की समीक्षा डेवलपर को करनी होती है. यह सूचना मिलने पर, आपको अनुरोध का आकलन करना चाहिए. साथ ही, रिफ़ंड का सुझाव और खरीदारी के इस्तेमाल का सबूत, 24 घंटे के अंदर ReviewRefund एपीआई को कॉल करके देना चाहिए.
CHARGEBACK का इस्तेमाल किया जा सकता है.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"
}
}