Play Integrity API hata kodlarını işleme

Bir uygulama, Play Integrity API'yi kullanarak istekte bulunursa ve çağrı başarısız olursa bir hata kodu döndürülür. Döndürülen hata kodunun türü isteğin türüne bağlıdır:

Yeniden deneme stratejileri

Arka planda gerçekleşen ve kullanıcı oturumdayken kullanıcı deneyimini etkilemeyen Play Integrity işlemleri için eksponansiyel geri yükleme kullanılmasını öneririz.

Örneğin, bu işlem arka planda gerçekleşebileceği ve bir hata oluşursa onayın gerçek zamanlı olarak gerçekleşmesi gerekmez. Bu nedenle, yeni satın almaları onaylarken bunu uygulamak uygundur.

İlk hatadan sonra, yeniden denemeden önce 5 saniyelik bir ilk gecikmeyle başlayın.

Her seferinde katlanarak artan bir gecikme süresi (10 sn, 20 sn) kullanarak çıkış koşulu olarak maksimum deneme sayısına sahip bir yeniden deneme stratejisi uygulayın.

Bu yeniden deneme denemelerini gerçekleştirirken ağ bağlantısını kontrol edin ve cihaza aşırı yüklenmeyin.

Üç yeniden deneme denemesinden sonra hata görmeye devam ederseniz sonucu, istemci tüm bütünlük kontrollerinde başarısız olmuş gibi ele alın. Hata; aşırı yüklenmiş bir cihaz, ağ bağlantısı sorunları veya bir saldırganın girişimi de dahil ancak bunlarla sınırlı olmamak üzere pek çok nedenden kaynaklanabilir.

Java kitaplığı için hata kodu değerleri

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

Yerel kitaplık için ek hata kodları değerleri

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

Yeniden denenebilir hata kodları

Bu hatalar bazen geçici koşullardan kaynaklanır. Bu nedenle, çağrıyı yeniden denemeniz gerekir.

NETWORK_ERROR (Hata Kodu -3)

Bu hata, cihaz ile Play sistemleri arasındaki ağ bağlantısında bir sorun olduğunu gösterir.

Olası çözüm

Kurtarma işlemi için kullanıcıdan ağ bağlantısını kontrol etmesini isteyin ve hatayı tetikleyen işleme bağlı olarak basit denemeler ya da üstel geri yüklemelerden yararlanın.

Ayrıca bkz.

Klasik istekler için NETWORK_ERROR.

TOO_MANY_REQUESTS (Hata Kodu -8)

Çağrı uygulaması, API'ye çok fazla istekte bulunduğundan kısıtlandı.

Olası çözüm

  1. Günlük maksimum istek sayınızı artırma isteği
  2. Eksponansiyel geri yüklemeyle yeniden deneyin.

Ayrıca bkz.

Klasik istekler için TOO_MANY_REQUESTS.

GOOGLE_SERVER_UNAVAILABLE (Hata Kodu -12)

Bilinmeyen dahili Google sunucu hatası.

Olası çözüm

Eksponansiyel geri yüklemeyle yeniden deneyin. Sürekli olarak başarısız olan hataları bildirme seçeneğini değerlendirin.

Ayrıca bkz.

Klasik istekler için GOOGLE_SERVER_UNAVAILABLE.

CLIENT_TRANSIENT_ERROR (Hata Kodu -18)

İstemci cihazda geçici bir hata oluştu.

Standart API isteklerinde bu özellik, Kotlin ve Java için Play Integrity API kitaplığının 1.3.0, Unity için Google Play Integrity Plugin 1.3.0 veya sonraki sürümleri ve Play Core Native SDK 1.13.0 veya sonraki sürümleri itibarıyla desteklenir.

Olası çözüm

Eksponansiyel geri yüklemeyle yeniden deneyin.

Ayrıca bkz.

Klasik istekler için CLIENT_TRANSIENT_ERROR.

Not: Classic API isteği kullanılırken raporlandığında döndürülen değer -17'dir.

INTERNAL_ERROR (Hata Kodu -100)

Bilinmeyen dahili hata.

Olası çözüm

Eksponansiyel geri yüklemeyle yeniden deneyin. Sürekli başarısız olursa hata bildirmeyi düşünün.

Ayrıca bkz.

Klasik istekler için INTERNAL_ERROR.

STANDARD_INTEGRITY_INTERNAL_ERROR (Hata Kodu -100)

Bilinmeyen dahili hata.

Olası çözüm

Eksponansiyel geri yüklemeyle yeniden deneyin. Sürekli başarısız olursa hata bildirmeyi düşünün.

Ayrıca bkz.

Klasik istekler için INTEGRITY_INTERNAL_ERROR sayfasına bakın.

STANDARD_INTEGRITY_INITIALIZATION_FAILED (Hata Kodu -102)

Standard Integrity API başlatılırken bir hata oluştu.

Olası çözüm

Eksponansiyel geri yüklemeyle yeniden deneyin. Sürekli başarısız olursa hata bildirmeyi düşünün.

Ayrıca bkz.

Klasik istekler için INTEGRITY_INITIALIZATION_FAILED sayfasına bakın.

Yeniden Denenemeyen Hata Kodları

Otomatik yeniden denemelerin bu durumlarda fayda sağlama olasılığı düşüktür. Ancak kullanıcı soruna neden olan koşulu ele alıyorsa manuel yeniden deneme yardımcı olabilir. Örneğin, kullanıcı Play Store sürümünü desteklenen bir sürüme güncellerse ilk işlem için manuel olarak yeniden deneme başarılı olabilir.

API_NOT_AVAILABLE (Hata Kodu -1)

Cihazda yüklü Play Store sürümü eski ve Integrity API kullanılamıyor olabilir. Bir diğer olasılık da Integrity API'nin Google Play Console'da etkinleştirilmemiş olmasıdır.

Olası çözüm

  • Google Play Console'da Integrity API'nin etkinleştirildiğinden emin olun.
  • Kullanıcıdan Play Store'u güncellemesini isteyin.

Ayrıca bkz.

Klasik istek için API_NOT_AVAILABLE adresini inceleyin.

PLAY_STORE_NOT_FOUND (Hata Kodu -2)

Cihazda resmi Play Store uygulaması bulunamadı.

Olası çözüm

Kullanıcıdan Google Play Store'u yüklemesini veya etkinleştirmesini isteyin.

Ayrıca bkz.

Klasik istek için PLAY_STORE_NOT_FOUND adresini inceleyin.

PLAY_STORE_ACCOUNT_NOT_FOUND (Hata Kodu -4)

Not: Bu durum yalnızca IntegrityErrorCode üzerinden gönderilen klasik istekler için bildirilir.

Cihazda Play Store hesabı bulunamadı. Play Integrity API'nin artık kimliği doğrulanmamış istekleri desteklediğini unutmayın. Bu hata kodu yalnızca desteklenmeyen eski Play Store sürümleri için kullanılır.

Olası çözüm

Kullanıcıdan Google Play Store'u güncellemesini ve oturum açmasını isteyin.

APP_NOT_INSTALLED (Hata Kodu -5)

Telefon etme uygulaması yüklü değil. Bir şeyler ters gitti (büyük olasılıkla bir saldırı).

Olası çözüm

İşlem yapılamaz. Sonucu, istemci tüm bütünlük kontrollerini geçememiş gibi değerlendirin.

Ayrıca bkz.

Klasik istek için APP_NOT_INSTALLED adresini inceleyin.

PLAY_SERVICES_NOT_FOUND (Hata Kodu -6)

Play hizmetleri kullanılamıyor veya güncellenmesi gerekiyor.

Olası çözüm

Kullanıcıdan Play Hizmetleri'ni yüklemesini, güncellemesini veya etkinleştirmesini isteyin.

Ayrıca bkz.

Klasik istek için APP_NOT_INSTALLED adresini inceleyin.

APP_UID_MISMATCH (Hata Kodu -7)

Çağrı yapan uygulamanın UID'si (kullanıcı kimliği), Paket Yöneticisi'ndekiyle eşleşmiyor.

Olası çözüm

İşlem yapılamaz. Sonucu, istemci tüm bütünlük kontrollerini geçememiş gibi değerlendirin.

Ayrıca bkz.

Klasik istek için APP_UID_MISMATCH adresini inceleyin.

CANNOT_BIND_TO_SERVICE (Hata Kodu -9)

Play Store'da hizmete bağlanma başarısız oldu. Bunun nedeni, cihazınızda eski bir Play Store sürümünün yüklü olması olabilir.

Olası çözüm

Kullanıcıdan Google Play Store'u güncellemesini isteyin.

Ayrıca bkz.

Klasik istek için CANNOT_BIND_TO_SERVICE adresini inceleyin.

NONCE_TOO_SHORT (Hata Kodu -10)

Not: Bu durum yalnızca IntegrityErrorCode üzerinden gönderilen klasik istekler için bildirilir.

Nonce uzunluğu çok kısa. Tek seferlik rastgele sayı, base64 kodlamasından önce en az 16 bayt olmalıdır.

Olası çözüm

Daha uzun tek seferlik bir rastgele sayıyla tekrar deneyin.

NONCE_TOO_LONG (Hata Kodu -11)

Not: Bu durum yalnızca IntegrityErrorCode üzerinden gönderilen klasik istekler için bildirilir.

Nonce uzunluğu çok uzun. Base64 kodlamasından önce tek seferlik rastgele sayı 500 bayttan küçük olmalıdır.

Olası çözüm

Daha kısa bir tek seferlik rastgele sayıyla tekrar deneyin.

NONCE_IS_NOT_BASE64 (Hata Kodu -13)

Not: Bu durum yalnızca IntegrityErrorCode üzerinden gönderilen klasik istekler için bildirilir.

Nonce, base64 web için güvenli sarmalamasız dize olarak kodlanmamış.

Olası çözüm

Doğru biçimde bir tek seferlik rastgele sayıyla yeniden deneyin.

PLAY_STORE_VERSION_OUTDATED (Hata Kodu -14)

Google Play Store uygulamasının güncellenmesi gerekiyor.

Olası çözüm

Kullanıcıdan Google Play Store'u güncellemesini isteyin.

Ayrıca bkz.

Klasik istek için PLAY_STORE_VERSION_OUTDATED adresini inceleyin.

PLAY_SERVICES_VERSION_OUTDATED (Hata Kodu -15)

Google Play hizmetlerinin güncellenmesi gerekiyor.

Olası çözüm

Kullanıcıdan Google Play hizmetlerini güncellemesini isteyin.

Ayrıca bkz.

Klasik istek için PLAY_SERVICES_VERSION_OUTDATED adresini inceleyin.

CLOUD_PROJECT_NUMBER_IS_INVALID (Hata Kodu -16)

Sağlanan bulut projesi numarası geçersiz.

Olası çözüm

Play Integrity API'yi etkinleştirdiğiniz Cloud projesinin Cloud proje numarasını kullanın.

Ayrıca bkz.

Klasik istek için CLOUD_PROJECT_NUMBER_IS_INVALID adresini inceleyin.

REQUEST_HASH_TOO_LONG (Hata Kodu -17)

Not: Bu durum yalnızca StandardIntegrityErrorCode üzerinden standart istek kullanılırken bildirilir.

Girilen requestHash çok uzun. requestHash uzunluğu 500 karakterden kısa olmalıdır.

Olası çözüm

Daha kısa bir requestHash ile tekrar deneyin.

INTEGRITY_TOKEN_PROVIDER_INVALID (Hata Kodu -19)

Not: Bu durum yalnızca StandardIntegrityErrorCode üzerinden gönderilen standart istekler için bildirilir.

StandardIntegrityTokenProvider geçersiz. Bu hata kodu yalnızca Kotlin ve Java programlama dilleri için kitaplık sürümü 1.3.0, Unity 1.3.0 veya üzeri için Google Play Integrity Eklentisi ve Play Core Yerel SDK 1.13.0 veya üzeri sürümler için desteklediği Standart API isteklerinde kullanılabilir.

Olası çözüm

Yeni bir bütünlük jetonu sağlayıcısı isteyin.

STANDARD_INTEGRITY_INITIALIZATION_NEEDED (Hata Kodu -101)

StandardIntegrityManager başlatılmadı.

Olası çözüm

Önce StandardIntegrityManager_init() numaralı telefonu arayın.

Ayrıca bkz.

Klasik İstekler için INTEGRITY_INITIALIZATION_NEEDED sayfasına bakın

STANDARD_INTEGRITY_INVALID_ARGUMENT (Hata Kodu -103)

Standard Integrity API'ye geçersiz bağımsız değişken iletildi.

Olası çözüm

Doğru bağımsız değişkenle tekrar deneyin.

Ayrıca bkz.

Klasik İstekler için INTEGRITY_INVALID_ARGUMENT sayfasına göz atın.