अमान्य खरीदारी की एपीआई

Google Play Voided Purchases API, उन खरीदारी से जुड़े ऑर्डर की सूची उपलब्ध कराता है जिन्हें उपयोगकर्ता ने रद्द कर दिया है. इस सूची में दी गई जानकारी का इस्तेमाल, रद्द करने के सिस्टम को लागू करने के लिए किया जा सकता है. यह सिस्टम, उपयोगकर्ता को उन ऑर्डर में मौजूद प्रॉडक्ट को ऐक्सेस करने से रोकता है.

यह एपीआई, एक बार किए जाने वाले इन-ऐप्लिकेशन ऑर्डर और ऐप्लिकेशन की सदस्यताओं पर लागू होता है.

किसी खरीदारी को नीचे बताए गए तरीकों से रद्द किया जा सकता है:

  • उपयोगकर्ता अपने ऑर्डर के लिए, रिफ़ंड का अनुरोध करता है.
  • उपयोगकर्ता अपने ऑर्डर को रद्द कर देता है.
  • ऑर्डर के लिए पैसे वापस किए जाते हैं.
  • डेवलपर ऑर्डर रद्द कर देता है या रिफ़ंड कर देता है.

  • Google ऑर्डर रद्द कर देता है या उसका रिफ़ंड देता है.

इस एपीआई का इस्तेमाल करके, आप अपने ऐप्लिकेशन के सभी उपयोगकर्ताओं को ज़्यादा संतुलित और सही अनुभव देने में मदद करते हैं, खास तौर पर तब, जब आपका ऐप्लिकेशन एक गेम हो.

ऐक्सेस पाना

Voided Purchases API के साथ काम करने के लिए, आपके पास वित्तीय जानकारी देखने की अनुमति होनी चाहिए. आपने OAuth क्लाइंट या किसी सेवा खाते का इस्तेमाल करके, अनुमति देने का विकल्प चुना है. अगर किसी सेवा खाते का इस्तेमाल किया जा रहा है, तो इस खाते में "वित्तीय रिपोर्ट देखें" अनुमति को चालू करें.

Google Play Developer API का अधिकृत ऐक्सेस पाने के बारे में ज़्यादा जानने के लिए, ये गाइड देखें:

रद्द की गई खरीदारी देखना

रद्द की गई खरीदारी की सूची का अनुरोध करने के लिए, GET तरीके का इस्तेमाल करें. अपने अनुरोध में, अपने ऐप्लिकेशन के पैकेज का पूरी तरह क्वालिफ़ाइड नाम शामिल करें, जैसे कि com.google.android.apps.maps और एपीआई का ऐक्सेस पाने के दौरान आपको मिला ऑथराइज़ेशन टोकन.

GET https://www.googleapis.com/androidpublisher/v3/applications/
your_package_name/purchases/voidedpurchases?access_token=your_auth_token

अपने अनुरोध में, इन पैरामीटर को भी शामिल किया जा सकता है. ये पैरामीटर ज़रूरी नहीं हैं:

startTime

Unix epoch के बाद से मिलीसेकंड में, सबसे पुरानी रद्द की गई खरीदारी का समय जिसे आपको रिस्पॉन्स में देखना है. डिफ़ॉल्ट रूप से, startTime को 30 दिन पहले पर सेट किया गया है.

एपीआई सिर्फ़ पिछले 30 दिनों में की गई, रद्द की गई खरीदारी दिखा सकता है. रद्द की गई पुरानी खरीदारी को जवाब में शामिल नहीं किया जाता. भले ही, आपने startTime के लिए कोई भी वैल्यू दी हो.

endTime

Unix epoch के बाद से मिलीसेकंड में, उस सबसे नई खरीदारी का समय जिसे आपको रिस्पॉन्स में देखना है. डिफ़ॉल्ट रूप से, endTime मौजूदा समय पर सेट होता है.

maxResults
हर जवाब में दिखाई जाने वाली रद्द की गई खरीदारी की ज़्यादा से ज़्यादा संख्या. डिफ़ॉल्ट रूप से, यह वैल्यू 1,000 होती है. ध्यान दें कि इस पैरामीटर के लिए ज़्यादा से ज़्यादा वैल्यू 1,000 भी है.
टोकन
पिछले रिस्पॉन्स में मौजूद कंटिन्यूशन टोकन, ताकि आप ज़्यादा नतीजे देख सकें.
टाइप

हर जवाब में दिखाई जाने वाली रद्द की गई खरीदारी का टाइप. अगर वैल्यू 0 पर सेट है, तो सिर्फ़ रद्द की गई इन-ऐप्लिकेशन खरीदारी को वापस किया जाएगा. अगर इसे 1 पर सेट किया जाता है, तो रद्द की गई इन-ऐप्लिकेशन खरीदारी और रद्द की गई सदस्यता, दोनों को लौटाया जाएगा. डिफ़ॉल्ट वैल्यू 0 है.

includeQuantityBasedPartialRefund

संख्या के हिसाब से कुछ हिस्से के रिफ़ंड की रद्द की गई खरीदारी को शामिल करना है या नहीं, जो सिर्फ़ एक से ज़्यादा यूनिट की खरीदारी पर लागू होती हैं. अगर true, रद्द की गई अतिरिक्त खरीदारी को voidedQuantity के साथ लौटाया जा सकता है, तो इससे पता चलता है कि रिफ़ंड की संख्या के आधार पर, कुछ हिस्से का रिफ़ंड किया गया है या नहीं. डिफ़ॉल्ट वैल्यू false है.

जवाब एक JSON स्ट्रिंग है, जिसमें रद्द की गई खरीदारी की सूची शामिल है. अगर maxResults अनुरोध पैरामीटर में दी गई संख्या से ज़्यादा नतीजे हैं, तो रिस्पॉन्स में nextPageToken की वैल्यू शामिल होती है. इसे ज़्यादा नतीजे देखने के लिए, बाद में अनुरोध किया जा सकता है. सूची के पहले नतीजे में, रद्द की गई सबसे पुरानी खरीदारी दिखती है.

{
  "tokenPagination": {
    "nextPageToken": "next_page_token"
  },
  "voidedPurchases": [
    {
      "kind": "androidpublisher#voidedPurchase",
      "purchaseToken": "some_purchase_token",
      "purchaseTimeMillis": "1468825200000",
      "voidedTimeMillis": "1469430000000",
      "orderId": "some_order_id",
      "voidedSource": "0",
      "voidedReason": "4"
    },
    {
      "kind": "androidpublisher#voidedPurchase",
      "purchaseToken": "some_other_purchase_token",
      "purchaseTimeMillis": "1468825100000",
      "voidedTimeMillis": "1470034800000",
      "orderId": "some_other_order_id",
      "voidedSource": "2",
      "voidedReason": "5"
    },
  ]
}

कोटा

Voided Purchases API हर पैकेज के आधार पर, ये कोटा सेट करता है:

  • 6,000 क्वेरी हर दिन. (दिन पैसिफ़िक समय के मुताबिक आधी रात को शुरू और खत्म होता है.)
  • 30 सेकंड की किसी अवधि के दौरान 30 क्वेरी.

शुरुआती अनुरोधों के लिए दिशा-निर्देश

अपने शुरुआती एपीआई अनुरोध के दौरान, हो सकता है कि आप अपने ऐप्लिकेशन के लिए उपलब्ध सारा डेटा फ़ेच करना चाहें. हालांकि, ऐसा करने की संभावना कम है, लेकिन इस प्रोसेस से आपका हर दिन का कोटा खत्म हो सकता है. खरीदारी से जुड़े रद्द किए गए डेटा को सुरक्षित और लगातार पाने के लिए, यहां दिए गए सबसे सही तरीके अपनाएं:

  • maxResults पैरामीटर के लिए डिफ़ॉल्ट वैल्यू का इस्तेमाल करें. इस तरह, अगर किसी दिन के लिए अपने पूरे क्वेरी कोटा का इस्तेमाल किया जाता है, तो आपको 60,00,000 रद्द की गई खरीदारी की जानकारी मिल सकती है.
  • अगर किसी रिस्पॉन्स में nextPageToken के लिए कोई वैल्यू शामिल है, तो अपने अगले अनुरोध के दौरान इस वैल्यू को token पैरामीटर को असाइन करें.

सबसे सही तरीके

अपने ऐप्लिकेशन में इस एपीआई का इस्तेमाल करते समय, याद रखें कि खरीदारी को रद्द करने की कई वजहें हैं. साथ ही, ऐसा कोई एक समाधान नहीं है जो सभी मामलों में काम करता हो. सहमति रद्द करने की अपनी नीतियों और रणनीतियों को डिज़ाइन करते समय, आपको अपने उपयोगकर्ताओं को ध्यान में रखना चाहिए. ऐसा करने के लिए, सुझाए गए इन तरीकों को लागू किया जा सकता है:

  • अनचाहे व्यवहार से निपटने के लिए विस्तृत रणनीति में कई एलिमेंट में से एक के रूप में इस एपीआई का इस्तेमाल करें. आम तौर पर, इन-ऐप्लिकेशन प्रॉडक्ट का ऐक्सेस वापस लेना ज़्यादा असरदार होता है, जब इसे ऐसे ऐप्लिकेशन के साथ इस्तेमाल किया जाता है जिसमें इन-ऐप्लिकेशन खरीदारी की सही कीमतें हों. ऐप्लिकेशन का ऐसा डिज़ाइन जो गलत व्यवहार को बढ़ावा न देता हो, एक ऐसा मज़बूत उपयोगकर्ता आधार हो, जिसमें ऐसे व्यवहार को अस्वीकार किया जाता हो, और उपयोगकर्ता सहायता चैनलों की मदद के लिए तुरंत कार्रवाई करना बेहतर होता है.
  • सभी उपयोगकर्ताओं के लिए निष्पक्षता को पक्का करने के लिए, सहमति रद्द करने की अपनी नीति को एक जैसा रखें.
  • अनचाहे व्यवहार को ठीक करते समय, कुछ लोगों के लिए बनाई गई नीति बनाने के बारे में सोचें. उदाहरण के लिए, शुरुआती अपराधों के लिए ऐप्लिकेशन में चेतावनी देने से शुरुआत करें. इसके बाद, उपयोगकर्ता का अनचाहा व्यवहार जारी रखने पर अपनी प्रतिक्रियाओं को जारी रखें. आखिरी उपाय के तौर पर, आप उपयोगकर्ता को अपने ऐप्लिकेशन से इंटरैक्ट करने से रोक सकते हैं.
  • जब सहमति रद्द करने की कोई नीति लागू की जाती है और हर बार इसे अपडेट करने पर, अपने ऐप्लिकेशन के आउटरीच चैनलों का इस्तेमाल करके, उपयोगकर्ताओं को इन बदलावों के बारे में जानकारी दें. अपने ऐप्लिकेशन में उपयोगकर्ताओं के लागू होने से पहले, उन्हें इन बदलावों को साफ़ तौर पर समझने के लिए समय दें.
  • अपने उपयोगकर्ताओं के साथ पारदर्शिता बनाए रखें और जब भी आप कोई कार्रवाई करें, तो उन्हें इस बारे में बताएं. जैसे, इन-ऐप्लिकेशन प्रॉडक्ट का ऐक्सेस वापस लेना. सही तरीका यह है कि उपयोगकर्ता आपके फ़ैसलों पर विरोध दर्ज कर सकें और इस तरह के विवादों का समाधान निष्पक्ष तरीके से किया जाना चाहिए.
  • यह समझने के लिए कि उपयोगकर्ता किस तरह अनचाहे तरीकों से व्यवहार कर रहे हैं और वे ऐसा व्यवहार कैसे करते हैं, यह समझने के लिए सुझाव फ़ॉर्म और कम्यूनिटी फ़ोरम पर नज़र रखें. सुरक्षा की पहली पंक्ति के रूप में इन इनसाइट पर कार्रवाई करें.