- संसाधन: SubscriptionPurchase
- IntroductoryPriceInfo
- SubscriptionCancelSurveyResult
- SubscriptionPriceChange
- तरीके
संसाधन: SubscriptionPurchase
SubscriptionPurchase संसाधन, उपयोगकर्ता की सदस्यता की खरीदारी की स्थिति दिखाता है.
| JSON के काेड में दिखाना |
|---|
{ "kind": string, "startTimeMillis": string, "expiryTimeMillis": string, "autoResumeTimeMillis": string, "autoRenewing": boolean, "priceCurrencyCode": string, "priceAmountMicros": string, "introductoryPriceInfo": { object ( |
| फ़ील्ड | |
|---|---|
kind |
यह तरह, androidpublisher सेवा में subscriptionPurchase ऑब्जेक्ट को दिखाता है. |
startTimeMillis |
सदस्यता दिए जाने का समय, Epoch के बाद से मिलीसेकंड में. |
expiryTimeMillis |
वह समय जब सदस्यता खत्म हो जाएगी. यह समय, Epoch के बाद से मिलीसेकंड में होता है. |
autoResumeTimeMillis |
वह समय जब सदस्यता अपने-आप फिर से शुरू हो जाएगी. यह समय, Epoch के बाद से मिलीसेकंड में होता है. यह पैरामीटर सिर्फ़ तब मौजूद होता है, जब उपयोगकर्ता ने सदस्यता को कुछ समय के लिए रोकने का अनुरोध किया हो. |
autoRenewing |
यह जानकारी कि सदस्यता की मौजूदा समयसीमा खत्म होने पर, वह अपने-आप रिन्यू होगी या नहीं. |
priceCurrencyCode |
सदस्यता के शुल्क के लिए आईएसओ 4217 मुद्रा कोड. उदाहरण के लिए, अगर कीमत ब्रिटिश पाउंड स्टर्लिंग में दी गई है, तो priceCurrencyCode "GBP" होगा. |
priceAmountMicros |
सदस्यता की कीमत. जिन देशों में टैक्स शामिल करके कीमत तय नहीं की जाती है वहां कीमत में टैक्स शामिल नहीं होता. जिन देशों में टैक्स शामिल करके कीमत तय की जाती है वहां कीमत में टैक्स भी शामिल होता है. कीमत को माइक्रो-यूनिट में दिखाया जाता है. यहां 10, 00,000 माइक्रो-यूनिट,मुद्रा की एक यूनिट के बराबर होता है. उदाहरण के लिए, अगर सदस्यता की कीमत 1.99 यूरो है, तो priceAmountMicros 1990000 होगा. |
introductoryPriceInfo |
सदस्यता की शुरुआती कीमत की जानकारी. यह जानकारी सिर्फ़ तब दिखती है, जब सदस्यता शुरुआती कीमत पर खरीदी गई हो. इस फ़ील्ड से यह पता नहीं चलता कि सदस्यता फ़िलहाल शुरुआती कीमत वाली अवधि में है. |
countryCode |
सदस्यता लेते समय, उपयोगकर्ता के बिलिंग देश/इलाके का ISO 3166-1 ऐल्फ़ा-2 कोड. |
developerPayload |
डेवलपर की ओर से तय की गई ऐसी स्ट्रिंग जिसमें किसी ऑर्डर के बारे में अतिरिक्त जानकारी होती है. |
paymentState |
सदस्यता के पेमेंट की स्थिति. इसकी वैल्यू 0 हो सकती है. पेमेंट को मंज़ूरी मिलना बाकी है. पेमेंट मिला 2. मुफ़्त में आज़माने की सुविधा 3. अपग्रेड/डाउनग्रेड करने का अनुरोध पूरा नहीं हुआ रद्द की गई और समयसीमा खत्म हो चुकी सदस्यताओं के लिए यह मौजूद नहीं होता. |
cancelReason |
सदस्यता रद्द होने या अपने-आप रिन्यू न होने की वजह. इसकी वैल्यू 0 हो सकती है. उपयोगकर्ता ने सदस्यता 1 रद्द कर दी. सिस्टम ने सदस्यता रद्द कर दी है. उदाहरण के लिए, बिलिंग की समस्या की वजह से 2. सदस्यता को नई सदस्यता 3 से बदल दिया गया था. डेवलपर ने सदस्यता रद्द कर दी है |
userCancellationTimeMillis |
वह समय जब उपयोगकर्ता ने सदस्यता रद्द की थी. यह समय, युग की शुरुआत से मिलीसेकंड में होता है. यह जानकारी सिर्फ़ तब दिखती है, जब cancelReason 0 पर सेट हो. |
cancelSurveyResult |
सदस्यता रद्द करने की प्रोसेस पूरी करते समय, उपयोगकर्ता की ओर से दी गई जानकारी (सदस्यता रद्द करने की वजह बताने वाला सर्वे). |
orderId |
सदस्यता की खरीदारी से जुड़ा, बार-बार होने वाले ऑर्डर का सबसे नया ऑर्डर आईडी. अगर पेमेंट अस्वीकार होने की वजह से सदस्यता रद्द कर दी गई थी, तो यह पेमेंट अस्वीकार होने वाले ऑर्डर का आईडी होगा. |
linkedPurchaseToken |
अगर यह सदस्यता इनमें से कोई एक है, तो मूल खरीदारी का टोकन: 0. रद्द की गई लेकिन खत्म नहीं हुई सदस्यता के लिए फिर से साइन अप करना 1. पिछली सदस्यता को अपग्रेड या डाउनग्रेड करना उदाहरण के लिए, मान लें कि कोई उपयोगकर्ता साइन अप करता है और आपको खरीदारी का टोकन X मिलता है. इसके बाद, उपयोगकर्ता सदस्यता रद्द कर देता है और सदस्यता खत्म होने से पहले, फिर से साइन अप करने की प्रोसेस पूरी करता है. इस दौरान, आपको खरीदारी का टोकन Y मिलता है. आखिर में, उपयोगकर्ता अपनी सदस्यता अपग्रेड करता है और आपको खरीदारी का टोकन Z मिलता है. अगर आपने इस एपीआई को खरीदारी के टोकन Z के साथ कॉल किया है, तो इस फ़ील्ड को Y पर सेट किया जाएगा. अगर आपने इस एपीआई को Y परचेज़ टोकन के साथ कॉल किया है, तो इस फ़ील्ड को X पर सेट किया जाएगा. अगर इस एपीआई को X परचेज़ टोकन के साथ कॉल किया जाता है, तो यह फ़ील्ड सेट नहीं होगा. |
purchaseType |
सदस्यता किस तरह से खरीदी गई है. यह फ़ील्ड सिर्फ़ तब सेट होता है, जब यह खरीदारी, ऐप्लिकेशन में खरीदारी के लिए उपलब्ध स्टैंडर्ड बिलिंग सिस्टम का इस्तेमाल करके नहीं की गई हो. इसकी वैल्यू 0 हो सकती है. टेस्ट (यानी कि लाइसेंस टेस्टिंग खाते से खरीदा गया) 1. प्रमोशन (यानी कि प्रोमो कोड का इस्तेमाल करके खरीदा गया) |
priceChange |
कीमत में हाल ही में हुए बदलाव की जानकारी उपलब्ध है. यह विकल्प सिर्फ़ तब दिखता है, जब सदस्यता के शुल्क में बदलाव होने वाला हो और उसे लागू न किया गया हो. नई कीमत पर सदस्यता रिन्यू होने या सदस्यता रद्द होने के बाद, कीमत में बदलाव की कोई जानकारी नहीं मिलेगी. |
profileName |
सदस्यता खरीदते समय उपयोगकर्ता की प्रोफ़ाइल का नाम. यह सिर्फ़ 'Subscribe with Google' से की गई खरीदारी के लिए मौजूद होता है. |
emailAddress |
सदस्यता खरीदते समय उपयोगकर्ता का ईमेल पता. यह सिर्फ़ 'Subscribe with Google' से की गई खरीदारी के लिए मौजूद होता है. |
givenName |
सदस्यता खरीदते समय उपयोगकर्ता का दिया गया नाम. यह सिर्फ़ 'Subscribe with Google' से की गई खरीदारी के लिए मौजूद होता है. |
familyName |
सदस्यता खरीदते समय उपयोगकर्ता का उपनाम. यह सिर्फ़ 'Subscribe with Google' से की गई खरीदारी के लिए मौजूद होता है. |
profileId |
सदस्यता खरीदते समय उपयोगकर्ता का Google प्रोफ़ाइल आईडी. यह सिर्फ़ 'Subscribe with Google' से की गई खरीदारी के लिए मौजूद होता है. |
acknowledgementState |
सदस्यता वाले प्रॉडक्ट की पुष्टि की स्थिति. इसकी वैल्यू 0 हो सकती है. अभी तक स्वीकार नहीं किया गया 1. स्वीकृत |
externalAccountId |
तीसरे पक्ष की सेवा में उपयोगकर्ता खाते का आइडेंटिफ़ायर. यह सिर्फ़ तब दिखेगा, जब सदस्यता खरीदने की प्रोसेस के दौरान खाता लिंक किया गया हो. |
promotionType |
इस खरीदारी पर लागू किए गए प्रमोशन का टाइप. यह फ़ील्ड सिर्फ़ तब सेट होता है, जब सदस्यता खरीदते समय कोई प्रमोशन लागू किया गया हो. इसकी वैल्यू 0 हो सकती है. एक बार इस्तेमाल किया जाने वाला कोड 1. वैनिटी कोड |
promotionCode |
इस खरीदारी पर लागू किया गया प्रोमो कोड. यह फ़ील्ड सिर्फ़ तब सेट होता है, जब सदस्यता खरीदते समय वैनिटी कोड प्रमोशन लागू किया गया हो. |
obfuscatedExternalAccountId |
यह आईडी का ऐसा वर्शन है जिसे छिपाया गया है. यह आपके ऐप्लिकेशन में उपयोगकर्ता के खाते से यूनीक तरीके से जुड़ा होता है. यह आईडी इन खरीदारी के लिए मौजूद होता है: * अगर खाता लिंक करने की प्रोसेस, सदस्यता खरीदने के फ़्लो के दौरान हुई हो. * खरीदारी करते समय, इसे https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid का इस्तेमाल करके सेट किया गया था. |
obfuscatedExternalProfileId |
यह आईडी का ऐसा वर्शन है जिसे छिपाया गया है. यह आपके ऐप्लिकेशन में उपयोगकर्ता की प्रोफ़ाइल से यूनीक तरीके से जुड़ा होता है. यह सिर्फ़ तब मौजूद होता है, जब खरीदारी करते समय https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid का इस्तेमाल किया गया हो. |
IntroductoryPriceInfo
इस कुकी में, सदस्यता की शुरुआती कीमत की जानकारी होती है.
| JSON के काेड में दिखाना |
|---|
{ "introductoryPriceCurrencyCode": string, "introductoryPriceAmountMicros": string, "introductoryPricePeriod": string, "introductoryPriceCycles": integer } |
| फ़ील्ड | |
|---|---|
introductoryPriceCurrencyCode |
सदस्यता के लिए शुरुआती कीमत का आईएसओ 4217 मुद्रा कोड. उदाहरण के लिए, अगर कीमत ब्रिटिश पाउंड स्टर्लिंग में दी गई है, तो priceCurrencyCode "GBP" होगा. |
introductoryPriceAmountMicros |
सदस्यता की शुरुआती कीमत, जिसमें टैक्स शामिल नहीं है. मुद्रा, priceCurrencyCode के जैसी है. कीमत को माइक्रो-यूनिट में दिखाया जाता है. यहां 10, 00,000 माइक्रो-यूनिट,मुद्रा की एक यूनिट के बराबर होता है. उदाहरण के लिए, अगर सदस्यता की कीमत 1.99 यूरो है, तो priceAmountMicros 1990000 होगा. |
introductoryPricePeriod |
ISO 8601 फ़ॉर्मैट में बताई गई शुरुआती कीमत की अवधि. आम तौर पर इस्तेमाल होने वाली वैल्यू ये हैं: "P1W" (एक हफ़्ता), "P1M" (एक महीना), "P3M" (तीन महीने), "P6M" (छह महीने), और "P1Y" (एक साल). हालांकि, इनके अलावा और भी वैल्यू इस्तेमाल की जा सकती हैं. |
introductoryPriceCycles |
शुरुआती कीमत ऑफ़र करने के लिए बिलिंग अवधि की संख्या. |
SubscriptionCancelSurveyResult
सदस्यता रद्द करने की प्रोसेस पूरी करते समय, उपयोगकर्ता की ओर से दी गई जानकारी (सदस्यता रद्द करने की वजह बताने वाला सर्वे).
| JSON के काेड में दिखाना |
|---|
{ "cancelSurveyReason": integer, "userInputCancelReason": string } |
| फ़ील्ड | |
|---|---|
cancelSurveyReason |
सदस्यता रद्द करने की वह वजह जो उपयोगकर्ता ने सर्वे में चुनी थी. इसकी वैल्यू 0 हो सकती है. अन्य 1. यह सेवा मेरे ज़्यादा काम की नहीं है 2. तकनीकी समस्याएं 3. कीमत से जुड़ी वजहें 4. मुझे एक बेहतर ऐप्लिकेशन मिला है |
userInputCancelReason |
उपयोगकर्ता की ओर से, इनपुट रद्द करने की वजह. यह सिर्फ़ तब मौजूद होता है, जब cancelReason की वैल्यू 0 होती है. |
SubscriptionPriceChange
इसमें किसी सदस्यता के लिए, कीमत में हुए बदलाव की जानकारी होती है. इसका इस्तेमाल, ऐप्लिकेशन में कीमत में हुए बदलाव के लिए उपयोगकर्ता के सफ़र को कंट्रोल करने के लिए किया जा सकता है. यह उपयोगकर्ता से पुष्टि पाने या कन्वर्ज़न को बेहतर बनाने के लिए अनुभव को बेहतर बनाने के तौर पर हो सकता है.
| JSON के काेड में दिखाना |
|---|
{
"newPrice": {
object ( |
| फ़ील्ड | |
|---|---|
newPrice |
अगर उपयोगकर्ता ने कीमत में हुए बदलाव को स्वीकार कर लिया है, तो सदस्यता इस नई कीमत पर रिन्यू होगी. |
state |
कीमत में बदलाव की मौजूदा स्थिति. इसकी वैल्यू 0 हो सकती है. बाकी है: यह कीमत में होने वाले ऐसे बदलाव की स्थिति होती है जिसे उपयोगकर्ता की सहमति मिलना बाकी है. इस स्थिति में, ऐप्लिकेशन में मौजूद एपीआई का इस्तेमाल करके, उपयोगकर्ता से पुष्टि करने का अनुरोध किया जा सकता है. 1. स्वीकार किया गया: कीमत में हुए बदलाव को स्वीकार करने की स्थिति. इस स्थिति में, सदस्यता उसी कीमत पर रिन्यू होगी. हालांकि, ऐसा तब तक होगा, जब तक सदस्यता रद्द नहीं की जाती. कीमत में बदलाव, सदस्यता रिन्यू होने की तारीख से लागू होता है. ध्यान दें कि सदस्यता के अगले रिन्यूअल पर, यह बदलाव लागू नहीं हो सकता. |
तरीके |
|
|---|---|
|
यह कुकी, सदस्यता खरीदने की पुष्टि करती है. |
|
उपयोगकर्ता की सदस्यता की खरीदारी को रद्द करता है. |
|
यह कुकी, उपयोगकर्ता की सदस्यता खरीदने की प्रोसेस को तब तक के लिए रोक देती है, जब तक कि सदस्यता की समयसीमा खत्म होने का तय समय नहीं आ जाता. |
(deprecated) |
इस्तेमाल बंद कर दिया गया है: इसके बजाय, purchases.subscriptionsv2.get का इस्तेमाल करें. |
(deprecated) |
इस्तेमाल पर रोक लगा दी गई है: इसके बजाय, orders.refund का इस्तेमाल करें. |
(deprecated) |
बंद कर दिया गया है: इसके बजाय, purchases.subscriptionsv2.revoke का इस्तेमाल करें. |
गड़बड़ी के कोड
इस संसाधन के ऑपरेशन, यहां दिए गए एचटीटीपी गड़बड़ी कोड दिखाते हैं:
| गड़बड़ी का कोड | कारण | ब्यौरा | रिज़ॉल्यूशन |
|---|---|---|---|
400 / 410 |
subscriptionExpired |
सदस्यता की समयसीमा खत्म हो गई है. इसलिए, अनुरोध की गई कार्रवाई पूरी नहीं की जा सकती. | सदस्यता खत्म होने का समय देखें. यह कार्रवाई, खत्म हो चुकी सदस्यताओं पर नहीं की जा सकती. |
400 |
subscriptionInvalidArgument |
सदस्यता के अनुरोध में अमान्य तर्क दिया गया था. | एपीआई के दस्तावेज़ देखें और पक्का करें कि सभी ज़रूरी फ़ील्ड दिए गए हों और उन्हें सही तरीके से फ़ॉर्मैट किया गया हो. |
400 |
invalidPurchaseState |
खरीदारी की स्थिति ऐसी नहीं है कि अनुरोध की गई कार्रवाई की जा सके. उदाहरण के लिए, ऐसा हो सकता है कि आपने पहले ही इस्तेमाल की जा चुकी खरीदारी की पुष्टि करने की कोशिश की हो या ऐसी सदस्यता रद्द करने की कोशिश की हो जो चालू नहीं है. | कार्रवाई करने से पहले, Get API का इस्तेमाल करके संसाधन की मौजूदा स्थिति देखें. पक्का करें कि कार्रवाई के लिए संसाधन सही स्थिति में हो. |
400 |
invalidValue |
अनुरोध में अमान्य वैल्यू दी गई है. आम तौर पर, यह गड़बड़ी तब दिखती है, जब खरीदारी का टोकन गलत हो या मान्य न हो. | एपीआई के रेफ़रंस के आधार पर, अनुरोध के मुख्य हिस्से या पैरामीटर में मौजूद फ़ील्ड की अमान्य वैल्यू को ठीक करें. |
400 |
prepaidSubscriptionNotSupported |
प्रीपेड सदस्यता के लिए, अनुरोध की गई कार्रवाई नहीं की जा सकती. | पक्का करें कि यह कार्रवाई, सदस्यता के टाइप पर लागू हो. यह गड़बड़ी, Cancel, Defer, Refund या Revoke जैसे तरीकों से जुड़ी है. |
400 |
productNotOwnedByUser |
खरीदारी के लिए दिया गया टोकन मान्य है, लेकिन फ़िलहाल उपयोगकर्ता के पास यह प्रॉडक्ट नहीं है. ऐसा तब हो सकता है, जब खरीदारी की पुष्टि करने से पहले ही उसे रिफ़ंड कर दिया गया हो, रद्द कर दिया गया हो या उसकी समयसीमा खत्म हो गई हो. | कार्रवाई करने से पहले, Get API का इस्तेमाल करके संसाधन की मौजूदा स्थिति देखें. पक्का करें कि कार्रवाई के लिए संसाधन सही स्थिति में हो. |
400 |
purchaseTokenMismatch |
खरीदारी के लिए दिया गया टोकन, खरीदारी, पैकेज के नाम, सदस्यता आईडी या प्रॉडक्ट आईडी से मेल नहीं खाता. | पुष्टि करें कि अनुरोध में दी गई सभी जानकारी सही है और एक-दूसरे से मेल खाती है. |
400 |
required |
अनुरोध में कोई ज़रूरी फ़ील्ड या पैरामीटर मौजूद नहीं है. | एपीआई के दस्तावेज़ देखें और पक्का करें कि सभी ज़रूरी फ़ील्ड और पैरामीटर शामिल किए गए हों. |
400 |
unsupportedIabType |
दिए गए इन-ऐप्लिकेशन बिलिंग टाइप के लिए, यह कार्रवाई नहीं की जा सकती. | पक्का करें कि एपीआई का तरीका, मैनेज किए जा रहे आइटम टाइप के साथ काम करता हो. |
403 |
userInsufficientPermission |
अनुरोध की गई कार्रवाई को पूरा करने के लिए, उपयोगकर्ता के पास ज़रूरी अनुमति नहीं है. | पक्का करें कि पुष्टि किए गए उपयोगकर्ता के पास, Google Play Console में ज़रूरी अनुमतियां हों. ज़्यादा जानकारी के लिए, सेवा खाते का इस्तेमाल करना लेख पढ़ें. |
404 |
notFound |
अनुरोध किया गया संसाधन नहीं मिला. | पुष्टि करें कि आइडेंटिफ़ायर (जैसे, खरीदारी का टोकन, पैकेज का नाम, प्रॉडक्ट आईडी, सदस्यता आईडी) सही हैं. |
409 |
concurrentUpdate |
किसी ऐसे ऑब्जेक्ट को अपडेट करने की कोशिश की गई जिसे एक साथ अपडेट किया जा रहा है. | एक्स्पोनेंशियल बैकऑफ़ के साथ अनुरोध को फिर से भेजें. एक ही संसाधन में एक साथ कई बदलाव न करें. |
410 |
purchaseTokenNoLongerValid |
खरीदारी का टोकन हमेशा के लिए अमान्य है, क्योंकि इससे जुड़ा उपयोगकर्ता खाता मिटा दिया गया है या खरीदारी का रिकॉर्ड अब मौजूद नहीं है. | इस परचेज़ टोकन का इस्तेमाल बंद करें. |
410 |
subscriptionNoLongerAvailable |
सदस्यता खरीदने की जानकारी अब क्वेरी के लिए उपलब्ध नहीं है, क्योंकि इसकी समयसीमा बहुत पहले खत्म हो चुकी है. | इस गड़बड़ी का मतलब है कि सदस्यता की समयसीमा 60 दिनों से ज़्यादा समय पहले खत्म हो गई है. अब आपको इन सदस्यताओं के बारे में क्वेरी नहीं करनी चाहिए. |
5xx |
Generic error |
Google Play सर्वर में सामान्य गड़बड़ी. | अनुरोध को फिर से भेजें. अगर समस्या बनी रहती है, तो अपने Google Play खाता मैनेजर से संपर्क करें या सहायता का अनुरोध सबमिट करें. अगर आपको किसी रुकावट के बारे में पहले से पता है, तो Play स्टेटस डैशबोर्ड देखें. |