Teydex Android Document
Bu doküman, Teydex kütüphanesinin Android platformda güvenli ve sorunsuz bir şekilde entegre edilmesi için gerekli tüm adımları, kullanım örneklerini ve platforma özgü teknik detayları içerir.
Sürüm Gereksinimleri
Teydex Android kütüphanesini sorunsuz bir şekilde kullanabilmek için sürümlerinizi kontrol etmeniz gerekir.
| Platform | Min version |
|---|---|
| Android | minSdkVersion: 24 |
| compileSdkVersion: 34 | |
| targetSdkVersion: 34 | |
| kotlinVersion: 1.8.0 |
Android Gradle Yapılandırması
Aşağıdaki yapılandırmayı gitlab token ile birlikte Settings.gradle altındaki depo tanımlarını eklemelisiniz. Depo erişimi için gerekli kimlik bilgilerini doğru şekilde girmeniz gerekmektedir.
{
maven {
isAllowInsecureProtocol = true
name = "GitLab"
url = uri("<REPO_URL>")
credentials(HttpHeaderCredentials::class) {
name = "Private-Token"
value = "GITLAB_TOKEN"
}
authentication {
create<HttpHeaderAuthentication>("header")
}
}
- REPO_URL Size verilen url ile değiştirilmesi gerekmektedir.
- PRIVATE_TOKEN alanını, kurumunuzun size sağladığı kişisel erişim anahtarıyla değiştirin.
allowInsecureProtocol = trueayarı, yalnızca güvenli ağlarda veya kurum içi özel sunucularda kullanılmalıdır.
Gradle Configuration
android/app/build.gradle dosyasınıza aşağıdaki satırları ekleyin:
implementation("com.innovance:kyc:1.0.20")
Projenizin android/build.gradle dosyasında aşağıdaki bağımlılıkların minimum belirtilen sürümlerde tanımlı olması gerekmektedir. Daha düşük sürümlerde, kütüphane ile ilgili derleme veya çalışma hatalarıyla karşılaşabilirsiniz.
buildscript {
dependencies {
classpath("com.android.tools.build:gradle:7.4.2") // Minimum desteklenen sürüm: 7.4.2
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0" // Minimum desteklenen sürüm: 1.8.0
}
}
Info Ekranı
KYC uygulamanızdaki Info ekranı, adımlardan önce görüntülenen bilgi sayfalarını ifade eder. İsteğe bağlı olarak, her adım için aşağıdaki parametreler eklenebilir.
Info Ekranı Özellikleri
| Parametre | Tip | Açıklama |
|---|---|---|
| toolbarTitle | String | Toolbar metnini belirtir. |
| titleText | String | Başlık metnini belirtir. |
| descriptionText | String | Açıklama metnini belirtir. |
| buttonText | String | Adımı başlatacak butonun metnini belirtir. |
| imageResId | @RawRes Int | kullanılacak görseli belirtir. |
| lottieResId | @RawRes Int | Lottie animasyonunu belirtir. |
| bullets | List<String> | Bir sonraki adım hakkında madde madde bilgi iletilebilir. |
| bulletIcon | @RawRes Int | Madde işaretli öğelerin simgesini belirtir. |
Info Ekranı Kullanımı
Aşağıda örnek Info ekranı kullanımı belirtilmiştir.
val frontInfo = buildInfo {
toolbarTitle("Kimlik Ön Yüz")
descriptionText("Lütfen aşağıdaki adımları dikkatlice takip ediniz:")
buttonText("Devam")
lottieResId(R.raw.front)
bullets(
listOf(
"Kimliğinizi Yerleştirin\n" +
"Kimliğinizin arka yüzünü, telefon ekranına paralel bir şekilde
tutun. Kimlik, ekranda görünen şablonun içine tam olarak yerleşecek
şekilde konumlandırılmalıdır.",
"Kimlik Bilgilerinin Görünürlüğü\n Kimlik üzerindeki tüm
bilgilerin net bir şekilde göründüğünden emin olun. Kimlik bilgileri
bulanık olmamalı ve kolayca okunabilir olmalıdır")
)
}
Step
Tüm adımlarda kullanılacak özellikler bu alanda belirtilir. Bu özellikler her adımda mevcuttur(Front,Back,Hologram,NFC,Liveness,VideoCall).
Step Özellikleri
| Parametre | Tip | Açıklama |
|---|---|---|
| addInfo | Info | İlgili adıma Bilgi ekranı eklemek için kullanılır. İsteğe bağlıdır. |
| toolbarTitle | String | İlgili adımda görüntülenecek Toolbar metnini temsil eder. |
| toolbarRightCloseIcon | String | İlgili adımı sonlandıracak çıkış iconunu temsil eder. |
| toolbarLeftCloseIcon | String | İlgili adımı sonlandıracak çıkış iconunu temsil eder. |
| identifyTimeout | Long | İlgili adım için zaman aşımı süresini belirtir(ms). örn: 10_000 |
| stepInformationTextToSpeech | String | Sesli yönlendirme mesajını belirtir. |
Front Step Kullanımı
val front = buildFront {
identifyTimeout(30_000L)
addInfo(frontInfo)
toolbarTitle("Kimlik Ön Yüz")
toolbarRightCloseIcon(R.drawable.ic_close)
}
Back Step Kullanımı
val back = buildBack {
identifyTimeout(30_000L)
addInfo(backInfo)
toolbarTitle("Kimlik Arka Yüz")
toolbarRightCloseIcon(R.drawable.ic_close)
}
NFC Step Kullanımı
val nfc = buildNFC {
addInfo(nfcInfo)
toolbarRightCloseIcon(R.drawable.ic_close)
toolbarTitle("NFC")
}
Hologram Step Kullanımı
val hologram = buildHologram {
addInfo(hologramInfo)
toolbarTitle("Hologram")
}
VideoCall Step Özellikleri
| Parametre | Tip | Açıklama |
|---|---|---|
| splashScreenResourceId | @DrawableRes Int | VideoCall başlamadan önce gösterilecek başlangıç ekranının rengini(Splash Screen) belirlemek için kullanılır. |
VideoCall Step Kullanımı
val videoCall = buildVideoCall {
addInfo(videoCallInfo)
splashScreenResourceId(R.drawable.bg_splash)
}
Liveness Step Özellikleri
| Parametre | Tip | Açıklama |
|---|---|---|
| rightText | String | Kullanıcıya canlılık fotoğrafı için sağa bakmasını söyleyen komut. |
| leftText | String | Kullanıcıya canlılık fotoğrafı için sola bakmasını söyleyen komut. |
| upText | String | Kullanıcıya canlılık fotoğrafı için yukarı bakmasını söyleyen komut. |
| downText | String | Kullanıcıya canlılık fotoğrafı için aşağı bakmasını söyleyen komut. |
| centerYourFaceText | String | Canlılık fotoğraf için kullanıcının kameraya doğrudan (düz) bakmasını söyleyen komut. |
| multipleFaceText | String | Canlılık adımında birden fazla yüz algılandığında kullanıcıyı bilgilendiren mesaj. |
| dotColor | @ColorInt Int | Canlılık adımında tamamlanmış bir komutu gösteren noktaların rengi. |
| dotRadius | Int | Canlılık adımında tamamlanmış bir komutu gösteren noktaların boyutu (yarıçapı). |
| rightTextToSpeech | String | Kullanıcıya canlılık fotoğrafı için sağa bakmasını söyleyen sesli komut. |
| leftTextToSpeech | String | Kullanıcıya canlılık fotoğrafı için sola bakmasını söyleyen sesli komut. |
| upTextToSpeech | String | Kullanıcıya canlılık fotoğrafı için yukarı bakmasını söyleyen sesli komut. |
| downTextToSpeech | String | Kullanıcıya canlılık fotoğrafı için aşağı bakmasını söyleyen sesli komut. |
| centerTextToSpeech | String | Canlılık fotoğraf için kullanıcının kameraya doğrudan (düz) bakmasını söyleyen sesli komut. |
Liveness Step Kullanımı
val liveness = buildLiveness {
dotColor(Color.Green.toArgb())
rightText("yüzünüzü sağa çeviriniz")
leftText("sola çeviriniz")
upText("yüzünüzü yukarı kaldırınız")
downText("aşağı yöne bakınız")
multipleFaceText("birden fazla yüz algılandı")
identifyTimeout(60_000)
addInfo(livenessInfo)
toolbarTitle("Liveness")
}
UIConfig
Uygulamada kullanılacak genel tasarımsal özellikleri belirlemek için kullanılır.
UIConfig Özellikleri
| Parametre | Tip | Açıklama |
|---|---|---|
| buttonColor | Int | Uygulamada kullanılacak butonun rengini belirtmek için kullanılır |
| buttonTextColor | Int | Uygulamada kullanılacak butonun metin rengini belirtmek için kullanılır SDK. |
| bulletTextColor | Int | Madde işaretlerinin metin rengini belirtmek için kullanılır |
| buttonCornerRadius | Int | Uygulamada kullanıcak butonun radius değerini belirtmek için kullanılır |
UIConfig Kullanımı
val uiConfig = buildUIConfig {
buttonColor(com.innovance.kyc.R.color.purple_700)
buttonCornerRadius(30)
buttonTextColor(com.innovance.kyc.R.color.purple_700)
bulletTextColor(R.color.teal_700)
}
KYC
Bu, KYC’yi başlatacak ana fonksiyondur. Belirtilen tüm özellikler burada eklenir ve process fonksiyonu ile bir KYC akışı başlatılır.
KYC Özellikleri
| Parametre | Tip | Açıklama |
|---|---|---|
| baseUrl | String | Uygulama geneli kullanılacak baseUrl, onPremise sunucudan gelecek url. |
| videoCallBaseUrl | String | VideoCall akışı için kullanılacak url, onPremise video call sunucusundan gelecek url. |
| addUIConfig | UIConfig | SDK genelinde UI yapılandırma özelliklerini belirtmek için kullanılır. |
| showCompletedScreen | Boolean | Tüm adımlar başarıyla tamamlandığında başarı ekranının gösterilip gösterilmeyeceğini belirtir. |
| identifierSteps | MutableList<Step> | Oluşturulan özelliklerle birlikte tüm adımların sisteme dahil edilmesini sağlar. |
| addClientToken | String | SDK’yı başlatmak için gereken istemci belirteci (client token) bilgisini iletmek amacıyla kullanılır. |
| addApplicationId | String | SDK’yı başlatmak için gereken applicationId bilgisini iletmek amacıyla kullanılır. |
| addErrorMessages | HashMap<KYCErrorString> | SDK’de hata mesajlarını özel metinlerle görüntülemek için kullanılır. |
| onEvent | KYCEvent | SDK’den gelen olayları Firebase, Mixpanel veya Countly gibi üçüncü taraf analiz araçlarına aktarmak için kullanılabilir. |
| onError | KYCError | SDK tarafından üretilen hata mesajlarını loglamak için kullanılabilir. |
| onCompletion | Boolean | Akış başarıyla tamamlandıktan sonra, ilgili servise yönlenip durumu kontrol edebilmeniz için bir bayrak (flag) sağlar. |
| shouldGetCustomerLocation | Boolean | Kullanıcının lokasyon bilgilerinin alınıp alınmamasını belirler. |
| sslPins | List<String> | SSlPinnings kullanmak için gerekli sha256 keylerin eklenmesi amacıyla kullanılır. |
| process | Context | Belirtilen özelliklerle bir KYC akışı için SDK’yı başlatmak amacıyla kullanılır. |
KYC Kullanımı
val kyc = buildKYC {
addUIConfig(uiConfig)
showCompletedScreen(true)
identifierSteps(mutableListOf(front,hologram,back,nfc,liveness,videoCall))
addClientToken(AppSharedPref.getClientToken(context))
addApplicationId(AppSharedPref.getAppId(context))
addErrorMessages(hashMapOf(
KYCNFCError.NOT_ENABLE to "not enable",
KYCCameraError.FLASH_MODE to " flash mode"))
onEvent { Log.i("TEST_LOG", "KYC Event:${it.name}")}
onError { Log.i("TEST_LOG", "KYC Error:${it.type} - ${it.message}")}
onCompletion { Log.i("TEST_LOG", "KYC Completed")}}}
kyc.process(context)
KYCError
SDK'dan gelebilecek hataların tipi ve açıklamarına buradan ulaşılabilir. Değiştirilmek istenen hata mesajları addErrorMessages ile KYCError,String şeklinde değiştirilebilir. örn: KYCCameraError.FLASH_MODE to " flash mode"
| Parametre | Açıklama |
|---|---|
| UNKNOWN | Bilinmeyen hata |
| FIRST_STEP_UNDEFINED | İlk adım null olamaz! |
| APP_IDENTIFIER_STEPS_IS_NOT_SAME_API | Uygulamada tanımladığınız adımlar ile API'de tanımladığınız adımların aynı olması gerekmektedir. |
KYCCameraError
| Parametre | Açıklama |
|---|---|
| UNKNOWN | Bilinmeyen bir hata oluştu. Lütfen tekrar deneyin. |
| PERMISSION_NOT_GRANTED | Kamera izinleri verilmedi. Lütfen kamera izinlerinizi veriniz. |
| CAMERA_PERMISSION_REQUIRED | Kamera izni gerekli. Lütfen kamera izni veriniz. |
| CAMERA_PERMISSION_PERMANENTLY_DENIED | Kamera izni kalıcı olarak reddedildi. Lütfen ayarlardan kamera izni veriniz. |
| RECORD_AUDIO_REQUIRED | Ses kaydı izni gerekli. Lütfen ses kaydı izni veriniz. |
| RECORD_AUDIO_PERMANENTLY_DENIED | Ses kaydı izni kalıcı olarak reddedildi. Lütfen ayarlardan ses kaydı izni veriniz. |
| CAMERA_SOURCE_PREVIEW_NOT_FOUND | Kamera ön izlemesi oluşturulamadı. Lütfen tekrar deneyin. |
| CAMERA_SOURCE_NOT_FOUND | Kamera bulunamadı. Lütfen kamerayı kontrol edin. |
| FLASH_MODE | Flash aç/kapa işlemi sırasında bir hata oluştu. Lütfen tekrar deneyin. |
| VIDEO_WRITE_FAILED | Video kaydedilirken bir hata oluştu. Lütfen tekrar deneyin. |
| VIDEO_READ_FAILED | Video bulunamadı. Lütfen dosyanın varlığını kontrol edin. |
| VIDEO_EXECUTE_COMMAND_CANCELLED_BY_USER | Video düzenleme işlemi kullanıcı tarafından iptal edildi. |
| VIDEO_EXECUTE_COMMANDS_FAILED | Video düzenleme işlemi başarısız oldu. Lütfen tekrar deneyin. |
| VIDEO_COMPRESS_FAILED | Video sıkıştırma işlemi başarısız oldu. Lütfen tekrar deneyin. |
| CODEC_NOT_SUPPORTED | Video düzenleme işlemi başarısız oldu. Lütfen tekrar deneyin. |
KYCNFCError
| Parametre | Açıklama |
|---|---|
| UNKNOWN | Bilinmeyen bir hata oluştu. Lütfen tekrar deneyin. |
| DEVICE_NOT_HAVE_NFC | Cihazda NFC modülü bulunmuyor. Bu özellik yalnızca NFC destekli cihazlarda çalışır. |
| DISABLE_NFC_ADAPTER | NFC modülü devre dışı bırakılırken bir hata oluştu. Lütfen NFC'yi tekrar etkinleştirin. |
| NOT_ENABLE | NFC modülü aktif değil. Lütfen NFC'yi etkinleştirin. |
| NOT_DISCOVERED | NFC açıkken kimlik taranamadı. Lütfen kimliği tekrar yaklaştırın. |
| TAG_NOT_SUPPORTED | Kimlik bilgisi desteklenmiyor. Bu kimlik kartı desteklenmemektedir. |
| TAG_LOST | Kimlik bilgisi okunamadı. Lütfen kimliği tekrar yaklaştırın. |
| ISODEP_NOT_FOUND | Kimlik bilgisi okunamadı. Lütfen kimliği tekrar yaklaştırın. |
| PASSIVE_AUTH_FAILED | Kimlik bilgisi algılanamadı. Lütfen geçerli bir kimlik kullanın. |
| PHOTO_NOT_FOUND | Kimlik kartında fotoğraf bilgisi yok. Lütfen geçerli bir kimlik kullanın. |
| PERSON_DETAIL_NOT_FOUND | Kişi bilgisine ihtiyaç var. Lütfen kimliği doğru yerleştirin. |
| CARD_AUTH_FAILED | Kimlik bilgileri tanımlanamadı. |
| WRONG_MRZ_STRING | MRZ bilgisi algılanamadı. Lütfen kimliği tekrar yaklaştırın. |