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:
- Standart istekler: API bir StandardIntegrityErrorCode döndürür.
- Klasik istekler: API bir IntegrityErrorCode döndürü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
Yerel kitaplık için ek hata kodları değerleri
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
- Günlük maksimum istek sayınızı artırma isteği
- 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.