Saltar al contingut principal
Un SDK multiplataforma per a React Native que encapsula els SDK natius d’iOS i Android i ofereix una API unificada en TypeScript per a la verificació d’identitat.

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)

Després, afegeix el plugin de configuració al teu app.json (o app.config.js). El NFC està habilitat per defecte:
El plugin configura automàticament totes dues plataformes:
  • Android: afegeix el repositori Maven de Didit a Gradle, estableix la propietat Gradle diditSdkAndroidNfcEnabled i 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)
El plugin no modifica el 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:
Quan el NFC està desactivat, no cal que tinguis la capacitat NFC d’iOS, els drets d’accés de NFC ni la configuració d’aprovisionament relacionada amb el NFC.
Aquest SDK fa servir mòduls nadius (càmera, NFC) que no estan disponibles a Expo Go. Has d’utilitzar una compilació de desenvolupament o executar npx expo prebuild per generar els projectes nadius.

React Native CLI

Configuració d’iOS

Afegeix el pod DiditSDK al teu Podfile (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ó:
L’etiqueta de la URL del podspec ha de coincidir amb diditNativeSdkVersions.ios de la versió del paquet instal·lada. React Native 4.13.2 fixa la versió nativa d’iOS a 4.13.2 i la d’Android a 4.13.2. No apuntis el podspec a main: el paquet depèn exactament d’aquella versió nativa d’iOS, així que, en el moment que main avanci, CocoaPods veu dos requisits incompatibles per a DiditSDK i cada pod install falla. El plugin de configuració d’Expo calcula aquesta URL per a tu; només cal escriure-la a mà en la ruta de React Native CLI pura.
Després, instal·la les dependències:
Per recompilar sense les dependències de NFC, neteja CocoaPods i torna a executar la instal·lació amb la variable d’entorn definida:

Configuració d’Android

Afegeix el repositori Maven de Didit al settings.gradle del projecte:
Afegeix el següent al fitxer 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:
Per compilar sense les dependències de NFC d’Android (fa servir l’artefacte me.didit:didit-sdk-core en lloc de me.didit:didit-sdk), afegeix això a android/gradle.properties:
Elimina aquesta propietat, o estableix-la a true, per fer servir el SDK complet d’Android amb NFC.

Permisos

iOS

Afegeix les claus següents al Info.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:
  1. Afegeix la capacitat NFC a Xcode:
    • Selecciona el teu target > Signing & Capabilities > + Capability > Near Field Communication Tag Reading
  2. 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.
  1. Afegeix un fitxer d’entitlements amb la lectura d’etiquetes NFC habilitada:
Assegura’t que el perfil d’aprovisionament de l’aplicació inclogui la capacitat NFC Tag Reading. Aquesta configuració NFC no és necessària quan NFC està desactivat.

Android

El SDK declara els permisos següents al seu AndroidManifest.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:
Aquest enfocament et dóna control total sobre:
  • 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 objecte DiditConfig:
Per a 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 és CameraLens.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.
Consulta tots els idiomes admesos →

Opcions avançades

Aquestes opcions només estan disponibles amb startVerificationWithWorkflow, 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:
Tots els camps de 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

Tant startVerification 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, quan showCloseButton é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 el session_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.

1. Backend: crear la sessió

2. React Native: intercanviar el token i iniciar el SDK

3. Backend: rebre la decisió final mitjançant webhook

Consulta la guia de webhooks per als detalls de la verificació de la signatura HMAC.

Exemple complet


Darrera modificació el 7 de novembre del 2026