Ghid rapid
Integrează EidKit într-o aplicație mobilă în câteva minute.
Cerințe
- Android (Kotlin)
- iOS (Swift)
- Android API 26+ (Android 8.0)
- Un dispozitiv cu NFC
- O carte de identitate electronică românească (CEI) pentru testare
- iOS 15+
- iPhone 7 sau mai nou (NFC obligatoriu)
- O carte de identitate electronică românească (CEI) pentru testare
1. Instalare
- Android (Kotlin)
- iOS (Swift)
EidKit este distribuit prin GitHub Packages.
settings.gradle.kts — adaugă repository-ul Maven:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven {
url = uri("https://maven.pkg.github.com/eidkit/eidkit-android")
credentials {
username = providers.gradleProperty("gpr.user").orNull
?: System.getenv("GITHUB_ACTOR")
password = providers.gradleProperty("gpr.token").orNull
?: System.getenv("GITHUB_TOKEN")
}
}
}
}
app/build.gradle.kts:
dependencies {
implementation("ro.eidkit:sdk-android:0.1.0")
}
În Xcode: File → Add Package Dependencies și introdu:
https://github.com/eidkit/eidkit-ios
Sau adaugă direct în Package.swift:
dependencies: [
.package(url: "https://github.com/eidkit/eidkit-ios", from: "0.1.0"),
],
targets: [
.target(name: "MyApp", dependencies: ["EidKit"]),
]
2. Configurare NFC
- Android (Kotlin)
- iOS (Swift)
Atașează NfcManager la Activity-ul tău pentru a primi evenimentele de tap:
class MyActivity : ComponentActivity() {
private val nfcManager = EidKit.nfcManager()
override fun onResume() {
super.onResume()
nfcManager.enableForegroundDispatch(this)
}
override fun onPause() {
super.onPause()
nfcManager.disableForegroundDispatch(this)
}
}
Adaugă capabilitatea Near Field Communication Tag Reading în Xcode (Target → Signing & Capabilities).
Adaugă și cheia NFCReaderUsageDescription în Info.plist:
<key>NFCReaderUsageDescription</key>
<string>EidKit citește cartea ta de identitate prin NFC.</string>
SDK-ul afișează automat panoul NFC de sistem la fiecare sesiune — nu este necesară altă configurare UI.
3. Configurare SDK
- Android (Kotlin)
- iOS (Swift)
Apelează EidKit.configure() o singură dată în Application.onCreate():
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
EidKit.configure(this, EidKitConfig {
licenseToken = BuildConfig.EIDKIT_LICENSE_TOKEN // opțional
})
}
}
Apelează EidKit.configure() o singură dată la pornirea aplicației:
@main
struct MyApp: App {
init() {
EidKit.configure(EidKitConfig(
licenseToken: "your-token" // opțional
))
}
var body: some Scene {
WindowGroup { ContentView() }
}
}
4. Citește un card
- Android (Kotlin)
- iOS (Swift)
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
val isoDep = nfcManager.handleIntent(intent) ?: return
lifecycleScope.launch {
val result = EidKit.reader(can = canIntrodusDeutilizator)
.withPersonalData(pin = pinIntrodusDeutilizator)
.withActiveAuth()
.read(isoDep)
// result.passiveAuth — întotdeauna prezent
// result.identity — nume, CNP, dată de naștere
// result.personalData — adresă, date document
// result.claim — material criptografic pentru verificare backend
}
}
import EidKit
func citesteCard() async throws {
let result = try await EidKit.reader(can: canIntrodusDeutilizator)
.withPersonalData(pin: pinIntrodusDeutilizator)
.withActiveAuth()
.read()
// result.passiveAuth — întotdeauna prezent
// result.identity — nume, CNP, dată de naștere
// result.personalData — adresă, date document
// result.claim — material criptografic pentru verificare backend
}
CAN-ul este numărul de 6 cifre tipărit pe fața cardului. Utilizatorul trebuie să îl introducă în interfața aplicației — nu îl stoca niciodată sau nu îl hardcoda în aplicație.
CEI românesc permite doar 3 încercări incorecte de PIN înainte de blocare. Un PIN blocat necesită o vizită la un serviciu MAI pentru deblocare. Permite întotdeauna utilizatorului să introducă singur PIN-ul.
Pași următori
- KYC — citire date de identitate și fotografii
- Semnare documente — semnare PDF-uri cu cardul
- Autentificare activă — verificarea autenticității cipului
- Referință API Android ↗
- Referință API iOS ↗