Play Integrity API के गड़बड़ी कोड मैनेज करना

अगर आपका ऐप्लिकेशन Play Integrity API का अनुरोध करता है और कॉल पूरा नहीं होता है, तो आपके ऐप्लिकेशन को गड़बड़ी का कोड मिलता है. ये गड़बड़ियां कई वजहों से हो सकती हैं. जैसे, नेटवर्क कनेक्शन की खराबी जैसी पर्यावरण से जुड़ी समस्याएं, एपीआई इंटिग्रेशन से जुड़ी समस्याएं या नुकसान पहुंचाने वाली गतिविधि और सक्रिय हमले. गड़बड़ी का कोड किस तरह का है, यह अनुरोध के टाइप पर निर्भर करता है:

  • स्टैंडर्ड अनुरोध: एपीआई, StandardIntegrityErrorCode दिखाता है.
  • क्लासिक अनुरोध: एपीआई, IntegrityErrorCode दिखाता है.

रणनीतियों को फिर से आज़माना

Play Integrity से जुड़े उन ऑपरेशन के लिए एक्सपोनेंशियल बैकऑफ़ का इस्तेमाल करें जो बैकग्राउंड में होते हैं और उपयोगकर्ता के सेशन के दौरान, उपयोगकर्ता अनुभव पर असर नहीं डालते.

उदाहरण के लिए, नई खरीदारी की पुष्टि करते समय, इसे लागू करना सही होता है. ऐसा इसलिए, क्योंकि यह कार्रवाई बैकग्राउंड में हो सकती है. साथ ही, अगर कोई गड़बड़ी होती है, तो पुष्टि को रीयल टाइम में करने की ज़रूरत नहीं होती.

पहली बार कोशिश करने के बाद, फिर से कोशिश करने से पहले पांच सेकंड का इंतज़ार करें.

एक्सिट कंडीशन के तौर पर, ज़्यादा से ज़्यादा कोशिशों के साथ फिर से कोशिश करने की रणनीति लागू करें. इसके लिए, हर बार 10 सेकंड या 20 सेकंड की बढ़ती देरी का इस्तेमाल करें.

फिर से कोशिश करते समय, नेटवर्क कनेक्शन की जांच करें और डिवाइस को ज़्यादा लोड न करें.

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

Java लाइब्रेरी के लिए गड़बड़ी कोड की वैल्यू

IntegrityErrorCode StandardIntegrityErrorCode
-1 API_NOT_AVAILABLE API_NOT_AVAILABLE
-2 PLAY_STORE_NOT_FOUND PLAY_STORE_NOT_FOUND
-3 NETWORK_ERROR NETWORK_ERROR
-4 PLAY_STORE_ACCOUNT_NOT_FOUND
-5 APP_NOT_INSTALLED APP_NOT_INSTALLED
-6 PLAY_SERVICES_NOT_FOUND PLAY_SERVICES_NOT_FOUND
-7 APP_UID_MISMATCH APP_UID_MISMATCH
-8 TOO_MANY_REQUESTS TOO_MANY_REQUESTS
-9 CANNOT_BIND_TO_SERVICE CANNOT_BIND_TO_SERVICE
-10 NONCE_TOO_SHORT
-11 NONCE_TOO_LONG
-12 GOOGLE_SERVER_UNAVAILABLE GOOGLE_SERVER_UNAVAILABLE
-13 NONCE_IS_NOT_BASE64
-14 PLAY_STORE_VERSION_OUTDATED PLAY_STORE_VERSION_OUTDATED
-15 PLAY_SERVICES_VERSION_OUTDATED PLAY_SERVICES_VERSION_OUTDATED
-16 CLOUD_PROJECT_NUMBER_IS_INVALID CLOUD_PROJECT_NUMBER_IS_INVALID
-17 CLIENT_TRANSIENT_ERROR REQUEST_HASH_TOO_LONG
-18 CLIENT_TRANSIENT_ERROR
-19 INTEGRITY_TOKEN_PROVIDER_INVALID
-100 INTERNAL_ERROR INTERNAL_ERROR

नेटिव लाइब्रेरी के लिए गड़बड़ी कोड की अतिरिक्त वैल्यू

IntegrityErrorCode StandardIntegrityErrorCode
-100 INTEGRITY_INTERNAL_ERROR STANDARD_INTEGRITY_INTERNAL_ERROR
-101 INTEGRITY_INITIALIZATION_NEEDED STANDARD_INTEGRITY_INITIALIZATION_NEEDED
-102 INTEGRITY_INITIALIZATION_FAILED STANDARD_INTEGRITY_INITIALIZATION_FAILED
-103 INTEGRITY_INVALID_ARGUMENT STANDARD_INTEGRITY_INVALID_ARGUMENT

गड़बड़ी के ऐसे कोड जिनकी वजह से, अनुरोध को दोबारा भेजा जा सकता है

कभी-कभी इन गड़बड़ियों की वजह, कुछ समय के लिए हुई समस्याएं होती हैं. इसलिए, आपको कॉल फिर से करना चाहिए.

NETWORK_ERROR (गड़बड़ी कोड -3)

इस गड़बड़ी से पता चलता है कि डिवाइस और Play सिस्टम के बीच इंटरनेट कनेक्शन में कोई समस्या हुई.

समस्या हल करने का तरीका

इसे ठीक करने के लिए, उपयोगकर्ता से इंटरनेट कनेक्शन की जांच करने के लिए कहें. साथ ही, गड़बड़ी को ट्रिगर करने वाली कार्रवाई के आधार पर, फिर से कोशिश करने या एक्सपोनेंशियल बैकऑफ़ का इस्तेमाल करें.

यह भी देखें:

क्लासिक अनुरोधों के लिए NETWORK_ERROR.

TOO_MANY_REQUESTS (गड़बड़ी कोड -8)

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

समस्या हल करने का तरीका

  1. हर दिन किए जाने वाले अनुरोधों की संख्या बढ़ाने का अनुरोध करना
  2. एक्सपोनेंशियल बैकऑफ़ के साथ फिर से कोशिश करें.

यह भी देखें:

क्लासिक अनुरोधों के लिए TOO_MANY_REQUESTS.

GOOGLE_SERVER_UNAVAILABLE (गड़बड़ी कोड -12)

Google के सर्वर में कोई ऐसी गड़बड़ी है जिसके बारे में जानकारी नहीं है.

समस्या हल करने का तरीका

एक्सपोनेंशियल बैकऑफ़ के साथ फिर से कोशिश करें. अगर यह लगातार काम नहीं करता है, तो गड़बड़ी की शिकायत करें.

यह भी देखें:

क्लासिक अनुरोधों के लिए GOOGLE_SERVER_UNAVAILABLE.

CLIENT_TRANSIENT_ERROR (गड़बड़ी कोड -18)

क्लाइंट डिवाइस पर कुछ समय के लिए कोई गड़बड़ी हुई.

स्टैंडर्ड एपीआई अनुरोधों के लिए, यह सुविधा Kotlin और Java के लिए Play Integrity API लाइब्रेरी के वर्शन 1.3.0, Unity के लिए Google Play Integrity प्लगिन 1.3.0 या इसके बाद के वर्शन, और Play Core Native SDK 1.13.0 या इसके बाद के वर्शन के साथ काम करती है.

समस्या हल करने का तरीका

एक्सपोनेंशियल बैकऑफ़ के साथ फिर से कोशिश करें.

यह भी देखें:

क्लासिक अनुरोधों के लिए CLIENT_TRANSIENT_ERROR.

ध्यान दें: क्लासिक एपीआई अनुरोध का इस्तेमाल करते समय शिकायत करने पर, वैल्यू -17 दिखती है.

INTERNAL_ERROR (गड़बड़ी कोड -100)

अंदरूनी गड़बड़ी की जानकारी नहीं है.

समस्या हल करने का तरीका

एक्सपोनेंशियल बैकऑफ़ के साथ फिर से कोशिश करें. अगर यह लगातार काम नहीं कर रहा है, तो गड़बड़ी की शिकायत करें.

यह भी देखें:

क्लासिक अनुरोधों के लिए INTERNAL_ERROR.

STANDARD_INTEGRITY_INTERNAL_ERROR (गड़बड़ी कोड -100)

अंदरूनी गड़बड़ी की जानकारी नहीं है.

समस्या हल करने का तरीका

एक्सपोनेंशियल बैकऑफ़ के साथ फिर से कोशिश करें. अगर यह लगातार काम नहीं कर रहा है, तो गड़बड़ी की शिकायत करें.

यह भी देखें:

क्लासिक अनुरोधों के लिए, INTEGRITY_INTERNAL_ERROR देखें.

STANDARD_INTEGRITY_INITIALIZATION_FAILED (गड़बड़ी कोड -102)

Standard Integrity API को शुरू करने में कोई गड़बड़ी हुई.

समस्या हल करने का तरीका

एक्सपोनेंशियल बैकऑफ़ के साथ फिर से कोशिश करें. अगर यह लगातार काम नहीं कर रहा है, तो गड़बड़ी की शिकायत करें.

यह भी देखें:

क्लासिक अनुरोधों के लिए, INTEGRITY_INITIALIZATION_FAILED देखें.

गड़बड़ी के ऐसे कोड जिनके लिए फिर से कोशिश नहीं की जा सकती

इन मामलों में, अपने-आप फिर से कोशिश करने की सुविधा काम नहीं करेगी. हालांकि, अगर उपयोगकर्ता उस समस्या को ठीक कर देता है जिसकी वजह से समस्या हुई है, तो मैन्युअल तरीके से फिर से कोशिश करने से मदद मिल सकती है. उदाहरण के लिए, अगर उपयोगकर्ता अपने Play Store के वर्शन को, इस्तेमाल किए जा सकने वाले वर्शन पर अपडेट करता है, तो शुरुआती कार्रवाई को मैन्युअल तरीके से फिर से आज़माने पर काम हो सकता है.

API_NOT_AVAILABLE (गड़बड़ी कोड -1)

हो सकता है कि डिवाइस पर Play Store का पुराना वर्शन इंस्टॉल हो और Integrity API उपलब्ध न हो. एक और वजह यह हो सकती है कि Google Play Console में Integrity API चालू न हो.

समस्या हल करने का तरीका

  • पक्का करें कि Google Play Console में Integrity API चालू हो.
  • उपयोगकर्ता से Play Store को अपडेट करने के लिए कहें.

यह भी देखें:

क्लासिक अनुरोध के लिए, API_NOT_AVAILABLE देखें.

PLAY_STORE_NOT_FOUND (गड़बड़ी कोड -2)

डिवाइस पर कोई आधिकारिक Play Store ऐप्लिकेशन नहीं मिला.

समस्या हल करने का तरीका

उपयोगकर्ता से Google Play Store इंस्टॉल करने या चालू करने के लिए कहें.

यह भी देखें:

क्लासिक अनुरोध के लिए, PLAY_STORE_NOT_FOUND देखें.

PLAY_STORE_ACCOUNT_NOT_FOUND (गड़बड़ी कोड -4)

ध्यान दें: इसकी शिकायत सिर्फ़ IntegrityErrorCode के ज़रिए किए गए क्लासिक अनुरोध के लिए की जाती है.

डिवाइस पर कोई Play Store खाता नहीं मिला. ध्यान दें कि Play Integrity API अब ऐसे अनुरोधों के साथ काम करता है जिनकी पुष्टि नहीं की गई है. गड़बड़ी का यह कोड, सिर्फ़ Play Store के उन पुराने वर्शन के लिए इस्तेमाल किया जाता है जिन पर यह सुविधा काम नहीं करती.

समस्या हल करने का तरीका

उपयोगकर्ता से Google Play Store को अपडेट करने और उसमें साइन इन करने के लिए कहें.

APP_NOT_INSTALLED (गड़बड़ी कोड -5)

कॉल करने वाला ऐप्लिकेशन इंस्टॉल नहीं है. कोई गड़बड़ी हुई है (शायद कोई हमला हो).

समस्या हल करने का तरीका

कार्रवाई नहीं की जा सकती. नतीजे को इस तरह से समझें जैसे क्लाइंट ने पूरी जांच में पास नहीं किया हो.

यह भी देखें:

क्लासिक अनुरोध के लिए, APP_NOT_INSTALLED देखें.

PLAY_SERVICES_NOT_FOUND (गड़बड़ी कोड -6)

Play services उपलब्ध नहीं है या उसे अपडेट करने की ज़रूरत है.

समस्या हल करने का तरीका

उपयोगकर्ता से Play services इंस्टॉल करने, अपडेट करने या चालू करने के लिए कहें.

यह भी देखें:

क्लासिक अनुरोध के लिए, APP_NOT_INSTALLED देखें.

APP_UID_MISMATCH (गड़बड़ी कोड -7)

कॉल करने वाले ऐप्लिकेशन का यूआईडी (यूज़र आईडी), Package Manager में मौजूद यूआईडी से मेल नहीं खाता.

समस्या हल करने का तरीका

कार्रवाई नहीं की जा सकती. नतीजे को इस तरह से समझें जैसे क्लाइंट ने पूरी जांच में पास नहीं किया हो.

यह भी देखें:

क्लासिक अनुरोध के लिए, APP_UID_MISMATCH देखें.

CANNOT_BIND_TO_SERVICE (गड़बड़ी कोड -9)

Play Store में सेवा से बांधने में समस्या हुई. ऐसा इसलिए हो सकता है, क्योंकि डिवाइस पर Play Store का पुराना वर्शन इंस्टॉल हो.

समस्या हल करने का तरीका

उपयोगकर्ता से Google Play Store को अपडेट करने के लिए कहें.

यह भी देखें:

क्लासिक अनुरोध के लिए, CANNOT_BIND_TO_SERVICE देखें.

NONCE_TOO_SHORT (गड़बड़ी कोड -10)

ध्यान दें: इसकी शिकायत सिर्फ़ IntegrityErrorCode के ज़रिए किए गए क्लासिक अनुरोध के लिए की जाती है.

नॉन्स की लंबाई बहुत कम है. base64 कोड में बदलने से पहले, नॉन्स का साइज़ कम से कम 16 बाइट होना चाहिए.

समस्या हल करने का तरीका

लंबी नॉन्स डालकर फिर से कोशिश करें.

NONCE_TOO_LONG (गड़बड़ी कोड -11)

ध्यान दें: इसकी शिकायत सिर्फ़ IntegrityErrorCode के ज़रिए किए गए क्लासिक अनुरोध के लिए की जाती है.

नॉन्स की लंबाई बहुत ज़्यादा है. बेस64 कोड में बदलने से पहले, नॉन्स का साइज़ 500 बाइट से कम होना चाहिए.

समस्या हल करने का तरीका

छोटे नॉन्स का इस्तेमाल करके फिर से कोशिश करें.

NONCE_IS_NOT_BASE64 (गड़बड़ी कोड -13)

ध्यान दें: इसकी शिकायत सिर्फ़ IntegrityErrorCode के ज़रिए किए गए क्लासिक अनुरोध के लिए की जाती है.

नॉन्स को base64 वेब-सेफ़ नो-रैप स्ट्रिंग के तौर पर एन्कोड नहीं किया गया है.

समस्या हल करने का तरीका

सही फ़ॉर्मैट में नॉन्स डालकर, फिर से कोशिश करें.

PLAY_STORE_VERSION_OUTDATED (गड़बड़ी कोड -14)

Google Play Store ऐप्लिकेशन को अपडेट करना ज़रूरी है.

समस्या हल करने का तरीका

उपयोगकर्ता से Google Play Store को अपडेट करने के लिए कहें.

यह भी देखें:

क्लासिक अनुरोध के लिए, PLAY_STORE_VERSION_OUTDATED देखें.

PLAY_SERVICES_VERSION_OUTDATED (गड़बड़ी कोड -15)

Google Play services को अपडेट करना ज़रूरी है.

समस्या हल करने का तरीका

उपयोगकर्ता से Google Play services को अपडेट करने के लिए कहें.

यह भी देखें:

क्लासिक अनुरोध के लिए, PLAY_SERVICES_VERSION_OUTDATED देखें.

CLOUD_PROJECT_NUMBER_IS_INVALID (गड़बड़ी कोड -16)

आपने जो क्लाउड प्रोजेक्ट नंबर दिया है वह अमान्य है.

समस्या हल करने का तरीका

उस Cloud प्रोजेक्ट के लिए Cloud प्रोजेक्ट नंबर का इस्तेमाल करें जिसके लिए आपने Play Integrity API चालू किया है.

यह भी देखें:

क्लासिक अनुरोध के लिए, CLOUD_PROJECT_NUMBER_IS_INVALID देखें.

REQUEST_HASH_TOO_LONG (गड़बड़ी कोड -17)

ध्यान दें: यह सिर्फ़ तब रिपोर्ट किया जाता है, जब StandardIntegrityErrorCode के ज़रिए स्टैंडर्ड अनुरोध का इस्तेमाल किया जाता है.

दिया गया requestHash बहुत लंबा है. requestHash की लंबाई 500 वर्णों से कम होनी चाहिए.

समस्या हल करने का तरीका

कम requestHash डालकर, फिर से कोशिश करें.

INTEGRITY_TOKEN_PROVIDER_INVALID (गड़बड़ी कोड -19)

ध्यान दें: इसकी शिकायत सिर्फ़ StandardIntegrityErrorCode के ज़रिए किए गए स्टैंडर्ड अनुरोध के लिए की जाती है.

StandardIntegrityTokenProvider अमान्य है. गड़बड़ी का यह कोड सिर्फ़ स्टैंडर्ड एपीआई अनुरोधों के लिए उपलब्ध है. यह कोड, Kotlin और Java प्रोग्रामिंग भाषाओं के लिए लाइब्रेरी के 1.3.0 वर्शन, Unity के लिए Google Play इंटिग्रिटी प्लगिन के 1.3.0 या उसके बाद के वर्शन, और Play Core Native SDK के 1.13.0 या उसके बाद के वर्शन के साथ काम करता है.

समस्या हल करने का तरीका

इंटिग्रिटी टोकन देने वाली नई कंपनी से अनुरोध करें.

STANDARD_INTEGRITY_INITIALIZATION_NEEDED (गड़बड़ी कोड -101)

StandardIntegrityManager को शुरू नहीं किया गया है.

समस्या हल करने का तरीका

सबसे पहले StandardIntegrityManager_init() को कॉल करें.

यह भी देखें:

क्लासिक अनुरोधों के लिए INTEGRITY_INITIALIZATION_NEEDED देखें

STANDARD_INTEGRITY_INVALID_ARGUMENT (गड़बड़ी कोड -103)

स्टैंडर्ड Integrity API को अमान्य आर्ग्युमेंट दिया गया.

समस्या हल करने का तरीका

सही आर्ग्युमेंट का इस्तेमाल करके, फिर से कोशिश करें.

यह भी देखें:

क्लासिक अनुरोधों के लिए, INTEGRITY_INVALID_ARGUMENT देखें.