İçeriğe geç

SSS ve sorun giderme

Android 7.0 (API 24): minSdk = 24. Örnek uygulama Java 17 araç zinciriyle derlenir. Bkz. Kurulum.

Gradle com.techsign:rkyc-cnn bağımlılığını çözemiyor veya 401 dönüyor.

Bölüm başlığı “Gradle com.techsign:rkyc-cnn bağımlılığını çözemiyor veya 401 dönüyor.”

SDK, Techsign’ın özel Maven deposundadır. Deponun name = "techsign" ve credentials(PasswordCredentials::class) ile tanımlandığını, techsignUsername ve techsignPassword değerlerinin ~/.gradle/gradle.properties içinde (CI’da ORG_GRADLE_PROJECT_techsignUsername / ORG_GRADLE_PROJECT_techsignPassword olarak) ayarlandığını kontrol edin. Bunları asla depoya koymayın.

Evet. SDK bir Java kütüphanesidir ve Kotlin ile doğrudan çalışır. Her sayfa Kotlin ve Java örnekleri içerir; Hızlı başlangıç ise callback’leri coroutine’lere sarar:

val result = proveId<CheckIdReturnModel> { ServerCall.verifyIDPhoto(CheckIDModel(base64, transactionId), it) }

Yalnızca kısmen. Belge çekimi ve canlılık gerçek bir kamera, NFC adımı ise NFC’li bir telefon gerektirir. Akışın tamamını gerçek cihazlarda test edin.

Kamera ekranı siyah kalıyor veya modeller yüklenmiyor.

Bölüm başlığı “Kamera ekranı siyah kalıyor veya modeller yüklenmiyor.”

Ekranı göstermeden önce CAMERA iznini çalışma zamanında isteyin ve noCompress ayarının tflite ile lite içerdiğinden emin olun. Fragment eklendikten sonra startCapture() (belge) veya startFaceCapture() (canlılık, hologram) çağırın.

Kamera ekranları Fragment’tır. Bunları bir FragmentContainerView içinde (örneğin AndroidView ile) veya uygulamanızın Fragment tabanlı bir ekranında barındırın.

Prove ID API kimlik bilgilerimi nereye koymalıyım?

Bölüm başlığı “Prove ID API kimlik bilgilerimi nereye koymalıyım?”

Yalnızca sunucunuza. Uygulama, kullanıcı uygulamanıza giriş yaptıktan sonra sunucunuzdan bir token alır ve bunu Authentication.setApiKey(token) ile SDK’ya verir. Bkz. Kimlik doğrulama.

Bir çağrı UnauthorizedException (401) ile başarısız oluyor. Ne yapmalıyım?

Bölüm başlığı “Bir çağrı UnauthorizedException (401) ile başarısız oluyor. Ne yapmalıyım?”

Token’ın süresi dolmuş veya geçersiz. Sunucunuzdan yenisini isteyin, Authentication.setApiKey(newToken) çağırın (ve kendi HTTP istemcinizi güncelleyin), ardından başarısız olan adımı tekrar deneyin.

Token’ı daha sonra kullanmak için saklayabilir miyim?

Bölüm başlığı “Token’ı daha sonra kullanmak için saklayabilir miyim?”

Hayır. Token’ı yalnızca mevcut doğrulama süresince bellekte tutun ve akış bittiğinde Authentication.setApiKey(null) ile temizleyin.

Kullanıcının doğrulanıp doğrulanmadığına nerede karar vermeliyim?

Bölüm başlığı “Kullanıcının doğrulanıp doğrulanmadığına nerede karar vermeliyim?”

Sunucunuzda. transactionId değerini sunucunuza gönderin, oturum açmış kullanıcıya ait olduğunu kontrol edin ve sonucu GET /id/id-info-with-tid/{transactionId} ile okuyun. Bkz. Sonuçlar.

Belge görüntüleri ve videolar cihazda ne kadar süre tutulur?

Bölüm başlığı “Belge görüntüleri ve videolar cihazda ne kadar süre tutulur?”

Hiç tutulmamalıdır. Görüntüler bellekte Bitmap olarak kalır; video dosyalarını gönderilir gönderilmez, gönderim başarısız olsa bile silin.

Hangi çağrılar için kendi HTTP istemcim gerekir?

Bölüm başlığı “Hangi çağrılar için kendi HTTP istemcim gerekir?”

Yalnızca çip doğrulama (/id/ca/prepare ve çip doğrulama alanlarıyla /id/validate-and-save) ve fotokopi kontrolü sonucunun gönderilmesi için. Geri kalan her şey ServerCall içindedir. Aynı token’ı kullanın.

NFC’si olan telefonlar. NfcAdapter.getDefaultAdapter(context) != null ile kontrol edin ve isEnabled değeri false ise kullanıcıdan NFC’yi açmasını isteyin. NFC’si olmayan telefonlarda NFC adımını gizleyin.

Okuma AuthenticationFailed veya ConnectionError ile başarısız oluyor.

Bölüm başlığı “Okuma AuthenticationFailed veya ConnectionError ile başarısız oluyor.”

Belge hareket etti veya antene çok uzak. Kullanıcıdan telefon kılıfını çıkarmasını, belgeyi telefonun arkasına yerleştirmesini ve okuma bitene kadar sabit tutmasını isteyin. isoDep.timeout = 60_000 ayarlayın.

Seri numarası, doğum tarihi veya son geçerlilik tarihi çiple eşleşmiyor. Belgeden okunan değerleri gösterin ve kullanıcının düzeltmesine izin verin.

read() metodu java.util.Date değerleri alır. Belge çekimi sonucu tarihleri dd.MM.yyyy biçiminde verir; bunları esnek olmayan (non-lenient) bir SimpleDateFormat("dd.MM.yyyy", Locale.US) ile ayrıştırın.

Risk politikanız çipin kopyalanmadığının kanıtlanmasını gerektiriyorsa evet. Okuma sırasında küçük bir sunucu çağrısı gerektirir; bkz. Çip doğrulama.

İşlem başlatılırken dönen gestureType değerindekini: EYE, MOUTH, HEAD-VERTICAL, HEAD-HORIZONTAL veya birkaç baş yönü için MULTIDIR_…. Bkz. Canlılık.

GESTURE_TYPE ayarladım ama onVideoCaptured hiç çağrılmıyor.

Bölüm başlığı “GESTURE_TYPE ayarladım ama onVideoCaptured hiç çağrılmıyor.”

Hareket kontrolü açıkken (IS_GESTURE_CONTROL_ENABLED = true) video, GestureListener.gestureControlled(model) içinde model.videoPath olarak gelir. onVideoCaptured yalnızca pasif video için kullanılır.

Önceki çalıştırmadan kalan bir ayar hâlâ etkin.

Bölüm başlığı “Önceki çalıştırmadan kalan bir ayar hâlâ etkin.”

LivenessBaseFragment ayarları statiktir. Hepsini her create() öncesinde ayarlayın.

onMultiFaceDetected veya onVideoCanceled çağrılıyor.

Bölüm başlığı “onMultiFaceDetected veya onVideoCanceled çağrılıyor.”

Çerçevede birden fazla yüz var ya da kayıt sırasında yüz çerçeveden çıktı. Kullanıcıdan çerçevede yalnız olmasını ve yüzünü ovalin içinde tutmasını isteyin, ardından startFaceCapture() ile yeniden başlatın.

Örnek uygulamalarda veya API Referansı’nda görünen ancak burada adım adım anlatılmayan konular. Mobil akış uydurmak yerine API Referansı’nı kullanın (ve Techsign’a sorun):

  • Uluslararası belge şablonları (getCountryTemplates, checkTemplateIDCard, addSecondaryTemplate)
  • transferTransaction
  • Trust Engine / kara liste
  • Sesli onay (POST /face/verify-with-voice)
  • İstemci ayarları

Prove ID temsilcinize sorulacak token ve rol soruları

Bölüm başlığı “Prove ID temsilcinize sorulacak token ve rol soruları”

Canlıya çıkmadan önce netleştirin (bkz. Güvenlik modeli):

  • /oauth/access_token üzerinden client_credentials token’ının ihtiyaç duyduğunuz mobil id/* / face/* çağrıları için kabul edilip edilmediği (örnek uygulamalar demoda kullanıcı adı/şifre ile giriş yapar).
  • Cihaza işleme özel bir token verilip verilemeyeceği.
  • Mobil akış için hangi least-privilege API rollerinin bulunduğu.
  • Kurumunuz için kontrol listesi ve önerilen geç/kal eşikleri.