Repositori de GitHub
Consulta el codi font i els exemples a GitHub
Paquet npm
@didit-protocol/sdk-react-native
SDK natiu: Aquesta és l’opció recomanada per a aplicacions de React Native i Expo. El SDK encapsula els SDK natius d’iOS i Android per oferir la millor experiència d’usuari, una gestió optimitzada de la càmera i suport complet per a NFC.
Requisits
Requisits de la plataforma
El consentiment biomètric necessita la versió 4.10.0 o posterior del SDK natiu. Per a les persones cobertes per la llei de Illinois, Texas o Colorado, Didit pot demanar un consentiment biomètric explícit abans de la primera captura facial. Una versió del SDK de React Native que fixa iOS i Android natius a la 4.10.0 o posterior mostra aquest pas. Les versions anteriors no poden mostrar-lo: les seves sessions s’executen com abans, i la decisió indica que el consentiment no s’ha recollit (
biometric_consent.reason: "BIOMETRIC_CONSENT_UNSUPPORTED_SDK"). Actualitza si verifiques persones en aquests estats.Instal·lació
Expo (recomanat)
app.json (o app.config.js). El NFC està habilitat per defecte:
- Android: afegeix el repositori Maven de Didit a Gradle, estableix la propietat Gradle
diditSdkAndroidNfcEnabledi aplica les regles de dependències i empaquetatge de BouncyCastle - iOS: afegeix el podspec de DiditSDK al Podfile (fixat a iOS 15 quan el NFC està habilitat)
Info.plist. Afegeix les claus de permís d’iOS i, per al NFC, els identificadors de selecció ISO7816 sota ios.infoPlist al mateix fitxer. D392F000260100000001 permet que el SDK llegeixi la My Number Card del Japó mitjançant JPKI:
Desactivar les dependències de NFC
Per compilar sense suport de NFC (binari més petit, sense necessitat de la capacitat NFC), passa les opcions del plugin:React Native CLI
Configuració d’iOS
Afegeix el pod DiditSDK al teuPodfile (no està al CocoaPods trunk). El bloc següent té en compte la variable d’entorn DIDIT_SDK_IOS_NFC_ENABLED, així pots activar o desactivar el subspec sense NFC (DiditSDK/Core) durant la instal·lació:
Configuració d’Android
Afegeix el repositori Maven de Didit alsettings.gradle del projecte:
android/app/build.gradle de la teva aplicació (dins del bloc android { ... }) per resoldre els conflictes de classes duplicades de BouncyCastle i el duplicat de MANIFEST.MF d’OSGI que poden provocar les dependències transitives de DiditSDK:
me.didit:didit-sdk-core en lloc de me.didit:didit-sdk), afegeix això a android/gradle.properties:
true, per fer servir el SDK complet d’Android amb NFC.
Permisos
iOS
Afegeix les claus següents alInfo.plist de la teva aplicació. Si falten les claus de privacitat obligatòries d’iOS, iOS tancarà l’aplicació en el moment en què el SDK accedeixi al recurs protegit corresponent.
Configuració de NFC
Per habilitar la lectura NFC de passaports i targetes d’identitat amb xip:-
Afegeix la capacitat NFC a Xcode:
- Selecciona el teu target > Signing & Capabilities > + Capability > Near Field Communication Tag Reading
-
Afegeix els identificadors ISO7816 a
Info.plist:
D392F000260100000001 permet que el SDK llegeixi la My Number Card del Japó a través de JPKI: sense aquest identificador, iOS no informa el SDK sobre la targeta. La lectura de la My Number Card encara no està habilitada en producció, i l’identificador no canvia res per a la resta de documents, de manera que el pots afegir ara.
- Afegeix un fitxer d’entitlements amb la lectura d’etiquetes NFC habilitada:
Android
El SDK declara els permisos següents al seuAndroidManifest.xml i es fusionen automàticament:
Les funcionalitats de maquinari de càmera i NFC es declaren com a opcionals (
android:required="false"), de manera que la teva aplicació es pot instal·lar en dispositius sense aquestes funcionalitats.
Inici ràpid
Mètodes d’integració
El SDK admet dos mètodes d’integració:Mètode 1: Token de sessió (recomanat per a producció)
Crea una sessió al teu backend amb l’API de creació de sessions de verificació i, després, passa el token al SDK:- L’associació de les sessions amb els teus usuaris (
vendor_data) - La definició de metadades personalitzades
- La configuració de callbacks per sessió
Mètode 2: ID de flux de treball (integració més senzilla)
Per a integracions més senzilles, el SDK pot crear sessions directament amb el teu ID de flux de treball:Configuració
Personalitza el comportament del SDK passant un objecteDiditConfig:
startVerificationWithWorkflow, passa la configuració dins de options.config:
Opcions de configuració
Opcions de càmera
Les opcions de càmera coincideixen amb les opcions de càmera del SDK web. Cada lent ésCameraLens.Front o CameraLens.Back.
Si el dispositiu no té la lent sol·licitada, el SDK utilitza la primera càmera que tingui.
El selector de càmera també s’amaga en dispositius que només tenen una càmera.
Defineix una opció de selector com a false per bloquejar l’usuari a la càmera per defecte d’aquest pas.
Tema i colors: els colors, els fons i la configuració de les pantalles d’introducció es configuren a través de la teva configuració de marca blanca a Didit Console, no a la configuració del SDK. Així es garanteix una imatge de marca coherent a totes les plataformes.
Suport d’idiomes
El SDK admet 54 idiomes. Si no s’especifica cap idioma, el SDK utilitza la configuració regional del dispositiu, amb l’anglès com a alternativa.Opcions avançades
Aquestes opcions només estan disponibles ambstartVerificationWithWorkflow, quan el SDK crea la sessió en nom teu.
Dades de contacte (preemplenament i notificacions)
Proporciona dades de contacte per precompletar els formularis de verificació i habilitar les notificacions per correu electrònic:Dades esperades (validació creuada)
Proporciona les dades esperades de l’usuari perquè es validin automàticament amb les dades extretes del document:ExpectedDetails són opcionals. Consulta src/types.ts per al tipus complet.
Metadades personalitzades
Emmagatzema metadades JSON personalitzades amb la sessió (no es mostren a l’usuari):Gestió de resultats
TantstartVerification com startVerificationWithWorkflow retornen un Promise<VerificationResult>. El resultat és una unió discriminada: utilitza el camp type per determinar el resultat.
Casos de resultat
Propietats de SessionData
Tipus d’error
Connexió perduda
Si el dispositiu perd la connexió durant la verificació, el SDK mostra una pantalla «Sense connexió a Internet» en lloc de deixar un pas en càrrega. Continua comprovant la connexió en segon pla i tanca la pantalla automàticament tan aviat com Didit torni a ser accessible, i l’usuari continua des del pas on era. La pantalla ofereix Torna-ho a provar i, quanshowCloseButton és true (el valor per defecte), Surt de la verificació.
Sortir finalitza la verificació amb un resultat failed l’error del qual és networkError, de manera que la teva aplicació sap que l’usuari ha sortit per la connexió.
Exemple complet de gestió de resultats
Exemple complet de principi a fi (sessió al backend → SDK de React Native → webhook)
La integració a punt per a producció: el teu backend crea la sessió, l’aplicació de React Native rep elsession_token i el SDK executa el flux. La decisió final s’envia al teu backend mitjançant un webhook; mai no confiïs només en el resultat del client.