Ana içeriğe geç
Version: 1.0.1

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.

PlatformMin version
AndroidminSdkVersion: 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 = true ayarı, 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.1")

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

ParametreTipAçıklama
toolbarTitleStringToolbar metnini belirtir.
titleTextStringBaşlık metnini belirtir.
descriptionTextStringAçıklama metnini belirtir.
buttonTextStringAdımı başlatacak butonun metnini belirtir.
imageResId@RawRes Intkullanılacak görseli belirtir.
lottieResId@RawRes IntLottie animasyonunu belirtir.
bulletsList<String>Bir sonraki adım hakkında madde madde bilgi iletilebilir.
bulletIcon@RawRes IntMadde 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

ParametreTipAçıklama
addInfoInfoİlgili adıma Bilgi ekranı eklemek için kullanılır. İsteğe bağlıdır.
toolbarTitleStringİlgili adımda görüntülenecek Toolbar metnini temsil eder.
toolbarRightCloseIconStringİlgili adımı sonlandıracak çıkış iconunu temsil eder.
toolbarLeftCloseIconStringİlgili adımı sonlandıracak çıkış iconunu temsil eder.
identifyTimeoutLongİlgili adım için zaman aşımı süresini belirtir(ms). örn: 10_000
stepInformationTextToSpeechStringSesli 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

ParametreTipAçıklama
splashScreenResourceId@DrawableRes IntVideoCall 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

ParametreTipAçıklama
rightTextStringKullanıcıya canlılık fotoğrafı için sağa bakmasını söyleyen komut.
leftTextStringKullanıcıya canlılık fotoğrafı için sola bakmasını söyleyen komut.
upTextStringKullanıcıya canlılık fotoğrafı için yukarı bakmasını söyleyen komut.
downTextStringKullanıcıya canlılık fotoğrafı için aşağı bakmasını söyleyen komut.
centerYourFaceTextStringCanlılık fotoğraf için kullanıcının kameraya doğrudan (düz) bakmasını söyleyen komut.
multipleFaceTextStringCanlılık adımında birden fazla yüz algılandığında kullanıcıyı bilgilendiren mesaj.
dotColor@ColorInt IntCanlılık adımında tamamlanmış bir komutu gösteren noktaların rengi.
dotRadiusIntCanlılık adımında tamamlanmış bir komutu gösteren noktaların boyutu (yarıçapı).
rightTextToSpeechStringKullanıcıya canlılık fotoğrafı için sağa bakmasını söyleyen sesli komut.
leftTextToSpeechStringKullanıcıya canlılık fotoğrafı için sola bakmasını söyleyen sesli komut.
upTextToSpeechStringKullanıcıya canlılık fotoğrafı için yukarı bakmasını söyleyen sesli komut.
downTextToSpeechStringKullanıcıya canlılık fotoğrafı için aşağı bakmasını söyleyen sesli komut.
centerTextToSpeechStringCanlı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

ParametreTipAçıklama
buttonColorIntUygulamada kullanılacak butonun rengini belirtmek için kullanılır
buttonTextColorIntUygulamada kullanılacak butonun metin rengini belirtmek için kullanılır SDK.
bulletTextColorIntMadde işaretlerinin metin rengini belirtmek için kullanılır
buttonCornerRadiusIntUygulamada 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

ParametreTipAçıklama
baseUrlStringUygulama geneli kullanılacak baseUrl, onPremise sunucudan gelecek url.
videoCallBaseUrlStringVideoCall akışı için kullanılacak url, onPremise video call sunucusundan gelecek url.
addUIConfigUIConfigSDK genelinde UI yapılandırma özelliklerini belirtmek için kullanılır.
showCompletedScreenBooleanTüm adımlar başarıyla tamamlandığında başarı ekranının gösterilip gösterilmeyeceğini belirtir.
identifierStepsMutableList<Step>Oluşturulan özelliklerle birlikte tüm adımların sisteme dahil edilmesini sağlar.
addClientTokenStringSDK’yı başlatmak için gereken istemci belirteci (client token) bilgisini iletmek amacıyla kullanılır.
addApplicationIdStringSDK’yı başlatmak için gereken applicationId bilgisini iletmek amacıyla kullanılır.
addErrorMessagesHashMap<KYCErrorString>SDK’de hata mesajlarını özel metinlerle görüntülemek için kullanılır.
onEventKYCEventSDK’den gelen olayları Firebase, Mixpanel veya Countly gibi üçüncü taraf analiz araçlarına aktarmak için kullanılabilir.
onErrorKYCErrorSDK tarafından üretilen hata mesajlarını loglamak için kullanılabilir.
onCompletionBooleanAkış başarıyla tamamlandıktan sonra, ilgili servise yönlenip durumu kontrol edebilmeniz için bir bayrak (flag) sağlar.
shouldGetCustomerLocationBooleanKullanıcının lokasyon bilgilerinin alınıp alınmamasını belirler.
sslPinsList<String>SSlPinnings kullanmak için gerekli sha256 keylerin eklenmesi amacıyla kullanılır.
processContextBelirtilen ö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"

ParametreAçıklama
UNKNOWNBilinmeyen hata
FIRST_STEP_UNDEFINEDİlk adım null olamaz!
APP_IDENTIFIER_STEPS_IS_NOT_SAME_APIUygulamada tanımladığınız adımlar ile API'de tanımladığınız adımların aynı olması gerekmektedir.

KYCCameraError

ParametreAçıklama
UNKNOWNBilinmeyen bir hata oluştu. Lütfen tekrar deneyin.
PERMISSION_NOT_GRANTEDKamera izinleri verilmedi. Lütfen kamera izinlerinizi veriniz.
CAMERA_PERMISSION_REQUIREDKamera izni gerekli. Lütfen kamera izni veriniz.
CAMERA_PERMISSION_PERMANENTLY_DENIEDKamera izni kalıcı olarak reddedildi. Lütfen ayarlardan kamera izni veriniz.
RECORD_AUDIO_REQUIREDSes kaydı izni gerekli. Lütfen ses kaydı izni veriniz.
RECORD_AUDIO_PERMANENTLY_DENIEDSes kaydı izni kalıcı olarak reddedildi. Lütfen ayarlardan ses kaydı izni veriniz.
CAMERA_SOURCE_PREVIEW_NOT_FOUNDKamera ön izlemesi oluşturulamadı. Lütfen tekrar deneyin.
CAMERA_SOURCE_NOT_FOUNDKamera bulunamadı. Lütfen kamerayı kontrol edin.
FLASH_MODEFlash aç/kapa işlemi sırasında bir hata oluştu. Lütfen tekrar deneyin.
VIDEO_WRITE_FAILEDVideo kaydedilirken bir hata oluştu. Lütfen tekrar deneyin.
VIDEO_READ_FAILEDVideo bulunamadı. Lütfen dosyanın varlığını kontrol edin.
VIDEO_EXECUTE_COMMAND_CANCELLED_BY_USERVideo düzenleme işlemi kullanıcı tarafından iptal edildi.
VIDEO_EXECUTE_COMMANDS_FAILEDVideo düzenleme işlemi başarısız oldu. Lütfen tekrar deneyin.
VIDEO_COMPRESS_FAILEDVideo sıkıştırma işlemi başarısız oldu. Lütfen tekrar deneyin.
CODEC_NOT_SUPPORTEDVideo düzenleme işlemi başarısız oldu. Lütfen tekrar deneyin.

KYCNFCError

ParametreAçıklama
UNKNOWNBilinmeyen bir hata oluştu. Lütfen tekrar deneyin.
DEVICE_NOT_HAVE_NFCCihazda NFC modülü bulunmuyor. Bu özellik yalnızca NFC destekli cihazlarda çalışır.
DISABLE_NFC_ADAPTERNFC modülü devre dışı bırakılırken bir hata oluştu. Lütfen NFC'yi tekrar etkinleştirin.
NOT_ENABLENFC modülü aktif değil. Lütfen NFC'yi etkinleştirin.
NOT_DISCOVEREDNFC açıkken kimlik taranamadı. Lütfen kimliği tekrar yaklaştırın.
TAG_NOT_SUPPORTEDKimlik bilgisi desteklenmiyor. Bu kimlik kartı desteklenmemektedir.
TAG_LOSTKimlik bilgisi okunamadı. Lütfen kimliği tekrar yaklaştırın.
ISODEP_NOT_FOUNDKimlik bilgisi okunamadı. Lütfen kimliği tekrar yaklaştırın.
PASSIVE_AUTH_FAILEDKimlik bilgisi algılanamadı. Lütfen geçerli bir kimlik kullanın.
PHOTO_NOT_FOUNDKimlik kartında fotoğraf bilgisi yok. Lütfen geçerli bir kimlik kullanın.
PERSON_DETAIL_NOT_FOUNDKişi bilgisine ihtiyaç var. Lütfen kimliği doğru yerleştirin.
CARD_AUTH_FAILEDKimlik bilgileri tanımlanamadı.
WRONG_MRZ_STRINGMRZ bilgisi algılanamadı. Lütfen kimliği tekrar yaklaştırın.