Play Integrity API hata kodlarını işleme

Uygulamanız Play Integrity API isteği gönderir ve çağrı başarısız olursa uygulamanıza bir hata kodu gönderilir. Bu hatalar, zayıf ağ bağlantısı gibi çevresel sorunlar, API entegrasyonunuzla ilgili sorunlar veya kötü amaçlı etkinlikler ve etkin saldırılar gibi çeşitli nedenlerden kaynaklanabilir. 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ın.

Örneğin, bu işlem arka planda gerçekleşebileceği ve bir hata oluştuğunda onayın gerçek zamanlı olarak yapılması gerekmediği için yeni satın alma işlemlerini onaylarken bunu uygulamak uygundur.

İlk başarısız denemeden sonra, yeniden denemeden önce 5 saniyelik bir gecikmeyle başlayın.

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

Bu yeniden deneme girişimlerini gerçekleştirirken ağ bağlantısını kontrol edin ve cihazı aşırı yüklemeyin.

Üç yeniden deneme denemesinden sonra hata görmeye devam ederseniz sonucu, istemcinin tüm bütünlük kontrollerini geçemediği gibi değerlendirin. Bu hata, aşırı yüklenmiş cihaz, ağ bağlantısı sorunları veya bir saldırganın girişimi dahil ancak bunlarla sınırlı olmamak üzere çeşitli nedenlerden 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 kodu 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 denemeye uygun hata kodları

Bu hataların nedeni bazen geçici koşullardan kaynaklanır. Bu nedenle, aramayı tekrar 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 yeniden deneme veya üstel geri çekilme kullanın.

Ayrıca bkz.

Klasik istekler için NETWORK_ERROR.

TOO_MANY_REQUESTS (Hata Kodu: -8)

Arayan uygulama, API'ye çok fazla istek gönderiyor ve sınırlandırıldı.

Olası çözüm

  1. Günlük maksimum istek sayınızın artırılmasını talep etme
  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 oluyorsa hata bildiriminde bulunabilirsiniz.

Ayrıca bkz.

Klasik istekler için GOOGLE_SERVER_UNAVAILABLE.

CLIENT_TRANSIENT_ERROR (Hata Kodu: -18)

İstemci cihazda geçici 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 Plugin 1.3.0 veya sonraki sürümler ve Play Core Native SDK 1.13.0 veya sonraki sürümler itibarıyla desteklenmektedir.

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 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 olarak başarısız oluyorsa 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 oluyorsa 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 oluyorsa hata bildiriminde bulunabilirsiniz.

Ayrıca bkz.

Klasik istekler için INTEGRITY_INITIALIZATION_FAILED bölümüne bakın.

Yeniden denemesi yapılamayan hata kodları

Bu tür durumlarda otomatik yeniden denemelerin işe yaraması olası değildir. Ancak kullanıcı, soruna neden olan durumu giderirse manuel olarak yeniden denemek faydalı 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)

Cihaza yüklü Play Store sürümü eski olabilir ve Integrity API kullanılamayabilir. Integrity API'nin Google Play Console'da etkin olmaması da olası bir nedendir.

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 bir 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 durum yalnızca IntegrityErrorCode üzerinden yapılan klasik isteklerde raporlanır.

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 destek verilmeyen eski Play Store sürümlerinde 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)

Arama uygulaması yüklü değil. Bir sorun var (muhtemelen 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 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)

Çağıran uygulamanın UID'si (kullanıcı kimliği), Paket Yöneticisi'ndeki UID ile 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 bölümüne bakın.

CANNOT_BIND_TO_SERVICE (Hata Kodu: -9)

Play Store'da hizmete bağlanma işlemi başarısız oldu. Bu durum, cihazda eski bir Play Store sürümünün yüklü olmasından kaynaklanabilir.

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 durum yalnızca IntegrityErrorCode üzerinden yapılan klasik isteklerde raporlanır.

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

Olası çözüm

Daha uzun bir tek seferlik sayı kullanarak tekrar deneyin.

NONCE_TOO_LONG (Hata Kodu: -11)

Not: Bu durum yalnızca IntegrityErrorCode üzerinden yapılan klasik isteklerde raporlanır.

Tek seferlik rastgele sayı çok uzun. Tek seferlik şifre, base64 kodlamadan önce 500 bayttan kısa olmalıdır.

Olası çözüm

Daha kısa bir tek seferlik sayı kullanarak tekrar deneyin.

NONCE_IS_NOT_BASE64 (Hata Kodu: -13)

Not: Bu durum yalnızca IntegrityErrorCode üzerinden yapılan klasik isteklerde raporlanır.

Tek seferlik rastgele sayı, base64 web güvenli sarmalayıcısız dize olarak kodlanmamıştır.

Olası çözüm

Doğru biçimde bir tek seferlik sayı kullanarak 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 projesinin 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 durum yalnızca StandardIntegrityErrorCode üzerinden standart istek kullanılırken raporlanır.

Sağlanan 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 standart istek için raporlanır.

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

Olası çözüm

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

STANDARD_INTEGRITY_INITIALIZATION_NEEDED (Hata Kodu: -101)

StandardIntegrityManager ilk kullanıma hazırlanmamış.

Olası çözüm

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

Ayrıca bkz.

Klasik İstekler 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.