کدهای خطای Play Integrity API را مدیریت کنید

اگر برنامه ای با استفاده از Play Integrity API درخواستی ارائه دهد و تماس با شکست مواجه شود، یک کد خطا برگردانده می شود. نوع کد خطای برگشتی به نوع درخواست بستگی دارد:

استراتژی ها را دوباره امتحان کنید

برای عملیات Play Integrity که در پس‌زمینه اتفاق می‌افتند و در زمانی که کاربر در جلسه است، روی تجربه کاربر تأثیر نمی‌گذارد، از عقب‌نشینی نمایی استفاده کنید.

به‌عنوان مثال، هنگام تأیید خریدهای جدید، اجرای آن مناسب است زیرا این عملیات می‌تواند در پس‌زمینه اتفاق بیفتد، و اگر خطایی رخ دهد، نیازی به تأیید در زمان واقعی نیست.

پس از اولین شکست، با تاخیر اولیه 5 ثانیه قبل از تلاش مجدد شروع کنید.

یک استراتژی تلاش مجدد را با حداکثر تعداد تلاش به عنوان شرط خروج با استفاده از افزایش نمایی تاخیر در هر بار (10 ثانیه، 20 ثانیه) اجرا کنید.

در حین انجام این تلاش‌ها، اتصال شبکه را بررسی کنید و دستگاه را بیش از حد بارگیری نکنید.

اگر بعد از سه بار تلاش مجدد همچنان خطاها را مشاهده می کنید، با نتیجه به گونه ای رفتار کنید که گویی مشتری تمام بررسی های یکپارچگی را انجام نداده است. این خطا می تواند به دلایل مختلفی باشد، از جمله (اما نه محدود به): دستگاه بارگذاری شده بیش از حد، مشکلات اتصال به شبکه یا تلاش یک مهاجم.

مقادیر کدهای خطا برای کتابخانه جاوا

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)

برنامه تماس درخواست‌های زیادی به API ارسال می‌کند و متوقف شده است.

وضوح ممکن

  1. درخواست افزایش حداکثر تعداد درخواست های روزانه خود را
  2. با عقب نشینی نمایی دوباره تلاش کنید.

همچنین ببینید

TOO_MANY_REQUESTS برای درخواست های کلاسیک.

GOOGLE_SERVER_UNAVAILABLE (کد خطا -12)

خطای ناشناخته سرور داخلی گوگل.

وضوح ممکن

با عقب نشینی نمایی دوباره تلاش کنید. در صورت عدم موفقیت مداوم، یک اشکال را در نظر بگیرید.

همچنین ببینید

GOOGLE_SERVER_UNAVAILABLE برای درخواست های کلاسیک.

CLIENT_TRANSIENT_ERROR (کد خطا -18)

خطای گذرا در دستگاه سرویس گیرنده رخ داده است.

برای درخواست‌های استاندارد API، از نسخه 1.3.0 کتابخانه Play Integrity API برای Kotlin و Java ، افزونه Google Play Integrity برای Unity 1.3.0 یا بالاتر و Play Core Native SDK 1.13.0 یا بالاتر پشتیبانی می‌شود.

وضوح ممکن

با عقب نشینی نمایی دوباره تلاش کنید.

همچنین ببینید

CLIENT_TRANSIENT_ERROR برای درخواست های کلاسیک.

توجه: هنگامی که هنگام استفاده از درخواست API کلاسیک گزارش می شود، مقدار بازگشتی -17 است.

INTERNAL_ERROR (کد خطا -100)

خطای داخلی ناشناخته

وضوح ممکن

با عقب نشینی نمایی دوباره تلاش کنید. در صورت عدم موفقیت مداوم، یک اشکال را در نظر بگیرید.

همچنین ببینید

INTERNAL_ERROR برای درخواست های کلاسیک.

STANDARD_INTEGRITY_INTERNAL_ERROR (کد خطا -100)

خطای داخلی ناشناخته

وضوح ممکن

با عقب نشینی نمایی دوباره تلاش کنید. در صورت عدم موفقیت مداوم، یک اشکال را در نظر بگیرید.

همچنین ببینید

برای درخواست‌های کلاسیک به INTEGRITY_INTERNAL_ERROR مراجعه کنید.

STANDARD_INTEGRITY_INITIALIZATION_FAILED (کد خطا -102)

خطایی در راه اندازی API استاندارد یکپارچگی وجود داشت.

وضوح ممکن

با عقب نشینی نمایی دوباره تلاش کنید. در صورت عدم موفقیت مداوم، یک اشکال را در نظر بگیرید.

همچنین ببینید

برای درخواست‌های کلاسیک به INTEGRITY_INITIALIZATION_FAILED مراجعه کنید.

کدهای خطای غیر قابل تکرار

بعید است تلاش مجدد خودکار در این موارد کمک کند. با این حال، اگر کاربر شرایطی را که باعث ایجاد مشکل شده است، برطرف کند، یک امتحان مجدد دستی ممکن است کمک کند. به عنوان مثال، اگر کاربر نسخه Play Store خود را به نسخه پشتیبانی شده به‌روزرسانی کند، یک امتحان مجدد دستی از عملیات اولیه می‌تواند کارساز باشد.

API_NOT_AVAILABLE (کد خطا -1)

نسخه Play Store نصب شده روی دستگاه ممکن است قدیمی باشد و Integrity API در دسترس نباشد. احتمال دیگر این است که Integrity API در کنسول Google Play فعال نباشد.

وضوح ممکن

  • مطمئن شوید که Integrity API در Google Play Console فعال است.
  • از کاربر بخواهید فروشگاه Play را به روز کند.

همچنین ببینید

برای درخواست کلاسیک به API_NOT_AVAILABLE مراجعه کنید.

PLAY_STORE_NOT_FOUND (کد خطا -2)

هیچ برنامه رسمی Play Store در دستگاه یافت نشد.

وضوح ممکن

از کاربر بخواهید فروشگاه Google Play را نصب یا فعال کند.

همچنین ببینید

برای درخواست کلاسیک به PLAY_STORE_NOT_FOUND مراجعه کنید.

PLAY_STORE_ACCOUNT_NOT_FOUND (کد خطا -4)

توجه: این فقط برای درخواست کلاسیک از طریق IntegrityErrorCode گزارش می شود.

هیچ حساب Play Store در دستگاه یافت نشد. توجه داشته باشید که Play Integrity API اکنون از درخواست‌های احراز هویت نشده پشتیبانی می‌کند. این کد خطا فقط برای نسخه های قدیمی Play Store که فاقد پشتیبانی هستند استفاده می شود.

وضوح ممکن

از کاربر بخواهید به روز رسانی کند و به فروشگاه Google Play وارد شود.

APP_NOT_INSTALLED (کد خطا -5)

برنامه تماس نصب نشده است. چیزی اشتباه است (احتمالاً یک حمله).

وضوح ممکن

غیرقابل عمل با نتیجه به گونه ای رفتار کنید که گویی مشتری در تمام بررسی های یکپارچگی شکست خورده است.

همچنین ببینید

برای درخواست کلاسیک به APP_NOT_INSTALLED مراجعه کنید.

PLAY_SERVICES_NOT_FOUND (کد خطا -6)

سرویس‌های Play در دسترس نیستند یا باید به‌روزرسانی شوند.

وضوح ممکن

از کاربر بخواهید خدمات Play را نصب، به‌روزرسانی یا فعال کند.

همچنین ببینید

برای درخواست کلاسیک به APP_NOT_INSTALLED مراجعه کنید.

APP_UID_MISMATCH (کد خطا -7)

UID برنامه تماس (شناسه کاربری) با Package Manager مطابقت ندارد.

وضوح ممکن

غیرقابل عمل با نتیجه به گونه ای رفتار کنید که گویی مشتری در تمام بررسی های یکپارچگی شکست خورده است.

همچنین ببینید

برای درخواست کلاسیک به APP_UID_MISMATCH مراجعه کنید.

CANNOT_BIND_TO_SERVICE (کد خطا -9)

اتصال به سرویس در فروشگاه Play انجام نشد. این می تواند به دلیل نصب نسخه قدیمی Play Store بر روی دستگاه باشد.

وضوح ممکن

از کاربر بخواهید فروشگاه Google Play را به روز کند.

همچنین ببینید

برای درخواست کلاسیک به CANNOT_BIND_TO_SERVICE مراجعه کنید.

NONCE_TOO_SHORT (کد خطا -10)

توجه: این فقط برای درخواست کلاسیک از طریق IntegrityErrorCode گزارش می شود.

طول Nonce خیلی کوتاه است. قبل از کدگذاری base64، nonce باید حداقل 16 بایت باشد.

وضوح ممکن

با یک نونس طولانی‌تر دوباره امتحان کنید.

NONCE_TOO_LONG (کد خطا -11)

توجه: این فقط برای درخواست کلاسیک از طریق IntegrityErrorCode گزارش می شود.

طول غیر بیش از حد طولانی است. قبل از کدگذاری base64، nonce باید کمتر از 500 بایت باشد.

وضوح ممکن

با یک nonce کوتاه‌تر دوباره امتحان کنید.

NONCE_IS_NOT_BASE64 (کد خطا -13)

توجه: این فقط برای درخواست کلاسیک از طریق IntegrityErrorCode گزارش می شود.

Nonce به عنوان یک رشته بدون پوشش وب ایمن base64 کدگذاری نشده است.

وضوح ممکن

با یک nonce در قالب صحیح دوباره امتحان کنید.

PLAY_STORE_VERSION_OUTDATED (کد خطا -14)

برنامه فروشگاه Google Play باید به روز شود.

وضوح ممکن

از کاربر بخواهید فروشگاه Google Play را به روز کند.

همچنین ببینید

برای درخواست کلاسیک به PLAY_STORE_VERSION_OUTDATED مراجعه کنید.

PLAY_SERVICES_VERSION_OUTDATED (کد خطا -15)

خدمات Google Play باید به روز شوند.

وضوح ممکن

از کاربر بخواهید خدمات گوگل پلی را به روز کند.

همچنین ببینید

برای درخواست کلاسیک به 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 نامعتبر است. این کد خطا فقط برای درخواست‌های استاندارد API موجود است، جایی که در نسخه کتابخانه 1.3.0 برای زبان‌های برنامه‌نویسی Kotlin و Java، افزونه Google Play Integrity برای Unity 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 مراجعه کنید.