Hatalar
Servis hataları
Bölüm başlığı “Servis 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.
Belge algılama
Bölüm başlığı “Belge algılama”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.