Uygulamanız Play Integrity API isteğinde bulunur ve çağrı başarısız olursa uygulamanız bir hata kodu alır. Bu hatalar, zayıf ağ bağlantısı gibi çevresel sorunlar, API entegrasyonunuzla ilgili problemler veya kötü amaçlı faaliyetler ve aktif saldırılar gibi çeşitli nedenlerle oluşabilir. Döndürülen hata kodunun türü, isteğin türüne bağlıdır:
- Standart istekler: API, StandardIntegrityErrorCode hatası döndürür.
- Klasik istekler: API, IntegrityErrorCode hatası döndürür.
Yeniden deneme stratejileri
Kullanıcı oturumdayken arka planda gerçekleşen ve kullanıcı deneyimini etkilemeyen Play Integrity işlemleri için eksponansiyel geri yükleme kullanın.
Örneğin, bu işlemi yeni satın alma işlemlerini onaylarken uygulamak uygundur. Çünkü bu işlem arka planda gerçekleşebilir ve bir hata oluşursa onaylama işleminin anında yapılması gerekmez.
İlk başarısızlığın ardından yeniden denemeden önce 5 saniyelik bir başlangıç gecikmesiyle başlayın.
Her seferinde eksponansiyel olarak artan bir gecikme (10 sn, 20 sn) kullanarak çıkış koşulu olarak maksimum deneme sayısına sahip bir yeniden deneme stratejisi uygulayın.
Bu yeniden deneme işlemleri sırasında ağ bağlantısını kontrol edin ve cihazı aşırı yüklemeyin.
Üç yeniden deneme girişiminden sonra hataları görmeye devam ederseniz sonucu, istemci tüm bütünlük kontrollerini başarısız olmuş gibi değerlendirin. Hata, aşırı yüklenmiş bir cihaz, ağ bağlantısı sorunları veya saldırganın girişimi gibi çeşitli nedenlerden kaynaklanabilir (ancak bunlarla sınırlı değildir).
Java kitaplığı için hata kodu değerleri
Yerel kitaplık için ek hata kodu değerleri
Yeniden denenebilir hata kodları
Bu hataların nedeni bazen geçici koşullardan kaynaklanır. Bu nedenle, aramayı 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
Kurtarmak için kullanıcıdan ağ bağlantısını kontrol etmesini isteyin ve hatayı hangi işlemin tetiklediğine bağlı olarak basit yeniden denemeler veya üstel geri çekilme kullanın.
Ayrıca bkz.
Klasik istekler için NETWORK_ERROR
.
TOO_MANY_REQUESTS
(Hata kodu -8)
Çağıran uygulama, API'ye çok fazla istek gönderdiği için istek sayısı sınırlandırılmış veya uygulamanız günlük istek kotasını aşmış.
Olası çözüm
- Eksponansiyel geri yüklemeyle yeniden deneyin.
- Günlük maksimum istek sayınızı artırma isteğinde bulunma
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 olursa hata bildiriminde bulunmayı düşünebilirsiniz.
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 istekleri için bu özellik, Kotlin ve Java için Play Integrity API kitaplığının 1.3.0 sürümü, Unity için Google Play Integrity eklentisinin 1.3.0 veya sonraki sürümleri ve Play Core Native SDK'nın 1.13.0 veya sonraki sürümlerinde desteklenir.
Olası çözüm
Eksponansiyel geri yüklemeyle yeniden deneyin.
Ayrıca bkz.
Klasik istekler için CLIENT_TRANSIENT_ERROR
.
Not: Klasik API isteği kullanılırken bildirildiğinde döndürülen değer -17 olur.
INTERNAL_ERROR
(Hata kodu -100)
Bilinmeyen dahili hata.
Olası çözüm
Eksponansiyel geri yüklemeyle yeniden deneyin. Sürekli olarak başarısız olursa hata bildiriminde bulunabilirsiniz.
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 olarak başarısız olursa hata bildiriminde bulunabilirsiniz.
Ayrıca bkz.
Klasik istekler için INTEGRITY_INTERNAL_ERROR
bölümüne bakın.
STANDARD_INTEGRITY_INITIALIZATION_FAILED
(Hata kodu -102)
Standart Integrity API başlatılırken bir hata oluştu.
Olası çözüm
Eksponansiyel geri yüklemeyle yeniden deneyin. Sürekli olarak başarısız olursa hata bildiriminde bulunabilirsiniz.
Ayrıca bkz.
Klasik istekler için INTEGRITY_INITIALIZATION_FAILED
bölümüne bakın.
Yeniden denenemeyen hata kodları
Bu durumlarda otomatik yeniden denemelerin yardımcı olması beklenmez. Ancak kullanıcı, soruna neden olan koşulu düzeltirse 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şlemin manuel olarak yeniden denenmesi işe yarayabilir.
API_NOT_AVAILABLE
(Hata kodu -1)
Cihazda yüklü Play Store sürümü eski olabilir 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
bölümüne bakın.
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
bölümüne bakın.
PLAY_STORE_ACCOUNT_NOT_FOUND
(Hata kodu -4)
Not: Bu yalnızca IntegrityErrorCode
üzerinden yapılan 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ümlerinde kullanılır.
Olası çözüm
Kullanıcıdan Google Play Store'u güncelleyip oturum açmasını isteyin.
APP_NOT_INSTALLED
(Hata kodu -5)
Arama uygulaması yüklü değil. Bir sorun var (muhtemelen saldırı).
Olası çözüm
İşlem yapılamaz. Sonucu, istemci tüm doğruluk kontrollerinde başarısız olmuş gibi değerlendirin.
Ayrıca bkz.
Klasik istek için APP_NOT_INSTALLED
bölümüne bakın.
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
bölümüne bakın.
APP_UID_MISMATCH
(Hata kodu -7)
Arayan 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 doğruluk kontrollerinde başarısız olmuş gibi değerlendirin.
Ayrıca bkz.
Klasik istek için APP_UID_MISMATCH
bölümüne bakın.
CANNOT_BIND_TO_SERVICE
(Hata kodu -9)
Play Store'daki hizmete bağlama işlemi başarısız oldu. Bunun nedeni, cihazda 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
bölümüne bakın.
NONCE_TOO_SHORT
(Hata kodu -10)
Not: Bu yalnızca IntegrityErrorCode
üzerinden yapılan klasik istekler için bildirilir.
Tek seferlik rastgele sayı uzunluğu çok kısa. Nonce, base64 kodlamasından önce en az 16 bayt olmalıdır.
Olası çözüm
Daha uzun bir nonce ile tekrar deneyin.
NONCE_TOO_LONG
(Hata kodu -11)
Not: Bu yalnızca IntegrityErrorCode
üzerinden yapılan klasik istekler için bildirilir.
Tek seferlik rastgele sayının uzunluğu çok fazla. Nonce, base64 kodlamasından önce 500 bayttan kısa olmalıdır.
Olası çözüm
Daha kısa bir nonce ile tekrar deneyin.
NONCE_IS_NOT_BASE64
(Hata kodu -13)
Not: Bu yalnızca IntegrityErrorCode
üzerinden yapılan klasik istekler için bildirilir.
Tek seferlik rastgele sayı, base64 web güvenli sarmalanmamış dize olarak kodlanmamış.
Olası çözüm
Doğru biçimde bir nonce ile tekrar 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
bölümüne bakın.
PLAY_SERVICES_VERSION_OUTDATED
(Hata kodu -15)
Google Play Hizmetleri'nin güncellenmesi gerekiyor.
Olası çözüm
Kullanıcıdan Google Play Hizmetleri'ni güncellemesini isteyin.
Ayrıca bkz.
Klasik istek için PLAY_SERVICES_VERSION_OUTDATED
bölümüne bakın.
CLOUD_PROJECT_NUMBER_IS_INVALID
(Hata kodu -16)
Sağlanan Cloud projesi numarası geçersiz.
Olası çözüm
Play Integrity API'yi etkinleştirdiğiniz Cloud projesi için Cloud proje numarasını kullanın.
Ayrıca bkz.
Klasik istek için CLOUD_PROJECT_NUMBER_IS_INVALID
bölümüne bakın.
REQUEST_HASH_TOO_LONG
(Hata kodu -17)
Not: Bu 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 yalnızca StandardIntegrityErrorCode
üzerinden yapılan standart istekler için raporlanır.
StandardIntegrityTokenProvider
artık geçerli değil.
Bunun nedeni, jeton sağlayıcının süresinin dolması veya kullanıcının Play Store uygulamasının verilerini temizleyerek jeton sağlayıcıyı kaldırması olabilir.
Bu hata kodu yalnızca Standart API istekleri için kullanılabilir. Kotlin ve Java programlama dilleri için kitaplık sürümü 1.3.0, Unity için Google Play Integrity eklentisi 1.3.0 veya sonraki sürümler ve Play Core Native SDK 1.13.0 veya sonraki sürümlerde desteklenir.
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ılmamış.
Olası çözüm
Önce StandardIntegrityManager_init()
numaralı telefonu arayın.
Ayrıca bkz.
Klasik istekler için INTEGRITY_INITIALIZATION_NEEDED
bölümüne bakın.
STANDARD_INTEGRITY_INVALID_ARGUMENT
(Hata kodu -103)
Standart 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 istekler için INTEGRITY_INVALID_ARGUMENT
bölümüne bakın.