İçeriğe geç

Hatalar

Her ProveIDApiClient çağrısı hata durumunda .failure(ErrorResponse) döner. ErrorResponse.error, HTTP durum kodunu ve yanıt gövdesini taşır:

case .failure(let error):
if case let .error(statusCode, data, _, underlying) = error {
let body = data.flatMap { try? JSONSerialization.jsonObject(with: $0) as? [String: Any] }
let message = body?["message"] as? String ?? underlying.localizedDescription
showError(statusCode, message)
}
HTTP Anlamı
400 İstek geçersiz (örneğin eksik veya hatalı alan)
401 Oturum geçersiz veya süresi dolmuş; yeni token alın
403 Bu işlem için yetki yok
404 Kayıt bulunamadı
500 Sunucu hatası

Yanıt gövdesindeki message alanı isteğin neden reddedildiğini açıklar; faydalı olduğu yerlerde kullanıcıya gösterin.

cardDetectionFailed(wrapperErrorsModel:) belgenin neden yakalanamadığını bildirir. Kullanıcıyı yönlendirmek için kullanın:

Alan false ise
isWidthHeightRatioEligible Belge açılı tutuluyor veya tamamı görünmüyor
isAreaRatioEligible Belge çok uzak (areaErrorRatio < 1) veya çok yakın
isInsideOfHint Belge çerçeve ipucunun dışında (captureOnlyInHint ile)
isHologramScoreEligible Hologram parlaması var
isGlareScoreEligible Belgede parlama var
isImageSharpnessRatioEligible Görüntü bulanık

cardType algılanan belge tipini verir. cardTypeList içinde değilse farklı bir belge gösteriliyordur; beklenen belgenin diğer yüzüyse (örneğin ön yüz taranırken .NEW_ID_BACK) kullanıcıdan belgeyi çevirmesini isteyin.

PassportReaderCallback.error(error:) ve errorMessage bir TagError alır:

Hata Anlamı Ne yapmalı
InvalidMRZKey Seri numarası, doğum tarihi veya son geçerlilik tarihi belgeyle eşleşmiyor Kullanıcıya bilgileri yeniden onaylatın
ConnectionError Bağlantı koptu Belgeyi sabit tutup tekrar deneyin
AuthenticationFailed Belge telefondan uzaklaştı Kılıfı çıkarıp belgeyi sabit tutarak tekrar deneyin
ActiveAuthNotSupportedForPassport Belge aktif kimlik doğrulamayı desteklemiyor Nonce olmadan (nil) yeniden okuyun
ChipAuthenticationFailed Çip doğrulama başarısız Tekrar deneyin; ChipAuthenticationBackend uygulamanızı kontrol edin
UserCanceled Kullanıcı NFC penceresini kapattı Tekrar denemeyi önerin
SessionTimeout Okuma çok uzun sürdü Tekrar deneyin
NFCNotSupported Cihaz NFC okuyamıyor NFC adımını gizleyin
InvalidTag Okunan kart kimlik belgesi değil (örneğin kredi kartı) Doğru belgeyi okutun
MoreThanOneTagFound Telefonun yakınında birden fazla kart var Telefonun yakınında yalnızca belgeyi bırakın
InvalidDocumentNumber, InvalidBirthDate, InvalidExpireDate read metoduna verilen bilgi geçersiz Kullanıcıya düzelttirin
DeviceThermalStateIsCritical Cihaz çok ısınmış Daha sonra tekrar deneyin
ResponseError, UnexpectedError Beklenmeyen hata Tekrar deneyin; devam ederse Prove ID desteğine başvurun

Kendi ekranınızda ele aldığınız hatalar (örneğin ConnectionError) için errorMessage içinden suppressError: true döndürün; böylece bu hatalar NFC penceresinde hata olarak gösterilmez.