SSS ve sorun giderme
Kurulum
Bölüm başlığı “Kurulum”Minimum Android sürümü nedir?
Bölüm başlığı “Minimum Android sürümü nedir?”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.
SDK’yı Kotlin ile kullanabilir miyim?
Bölüm başlığı “SDK’yı Kotlin ile kullanabilir miyim?”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) }Emülatörde test edebilir miyim?
Bölüm başlığı “Emülatörde test edebilir miyim?”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.
Jetpack Compose ile çalışır mı?
Bölüm başlığı “Jetpack Compose ile çalışır mı?”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.
Token’lar ve güvenlik
Bölüm başlığı “Token’lar ve güvenlik”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.
Hangi telefonlar kimlik kartı çipini okuyabilir?
Bölüm başlığı “Hangi telefonlar kimlik kartı çipini okuyabilir?”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.
Okuma InvalidMrzKey ile başarısız oluyor.
Bölüm başlığı “Okuma InvalidMrzKey ile başarısız oluyor.”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.
NFC okuyucu hangi tarih biçimini bekliyor?
Bölüm başlığı “NFC okuyucu hangi tarih biçimini bekliyor?”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.
Çip doğrulama kullanmalı mıyım?
Bölüm başlığı “Çip doğrulama kullanmalı mıyım?”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.
Canlılık
Bölüm başlığı “Canlılık”Hangi hareketi istemeliyim?
Bölüm başlığı “Hangi hareketi istemeliyim?”İş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.
Kapsam ve açık sorular
Bölüm başlığı “Kapsam ve açık sorular”Bu kılavuzlarda henüz ele alınmayanlar neler?
Bölüm başlığı “Bu kılavuzlarda henüz ele alınmayanlar neler?”Ö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üzerindenclient_credentialstoken’ının ihtiyaç duyduğunuz mobilid/*/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.