
BlackBox es un flujo unificado que orquesta en un solo proceso la biometría facial y, opcionalmente, la captura de documento, devolviendo un resultado final consolidado. Se utiliza cuando quieres que el SDK maneje internamente la secuencia (tutorial -> captura -> resultado) y la trazabilidad del proceso ("caja negra").
Debes construir el objeto BlackBoxDataIn con la información del asesor, sede, tipo y número de documento, correo, celular y credenciales de servicio. Recomendación: usa los datos reales que vienen del formulario de tu app y NO valores fijos en producción.
let animation = LottieAnimation.named("Loader")
let tutorialConfig = TutorialConfiguration(animation: animation)
//Marca Blanca (Colorimetria)
let customTheme = SDKTheme()
.setCompanyLogo("Olimpia-IT ")
.setPrimaryBackgroundColor("("#036A1B ")
.setSecondaryBackgroundColor("("#01580D ")
.setPrimaryTextColor("#01580D")
.setSecondaryTextColor("("#01580D ")
.setPrimaryButtonColor("#036A1B")
.setSecondaryButtonColor("#047B28")
.setSecondaryButtonTextColor("("#036A1B ")
let identification = UserDefaults.standard.string(forKey: userDocumentKey)?
.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""
//Objeto Datos para BlackBox
let data = BlackBoxDataIn(adviser: "SDK_iOS",
sede: "Sede",
vaidationType: 4,
documenType: "CC",
documenNumber: "12345678",//identification viene del formulario...
email: "dfdf@sdfdf.com",
cellPhone: "123456789",
prefCellPhone: "+57",
user: "usuario",
password: "Contraseña",)
guard let rootViewController = getRootViewController() else {
DispatchQueue.main.async {
self.onFaceError?(Message(type: .system(code: MessageType.sdkError)), 0)
}
return
}
//llamado caja negra....
BlackBoxConfiguration()
.saveDocument(true) // si esta activo se invoca documento en validarBiometria
.biometric( //llamado a Biometria Facial
BiometricConfiguration()
.tutorialConfiguration(tutorialConfig)
.enableView(BiometricConfiguration.tutorial, isEnabled: true)
.enableView(BiometricConfiguration.preview, isEnabled: true)
.enableView(BiometricConfiguration.result, isEnabled: true)
.enableAccessibility(true) //lectura de textos...
.processTime(30)
.attempts(3)
.theme(customTheme)
)
.document( //llamado a Biometria Documento
DocumentConfiguration()
.enableView(DocumentConfiguration.tutorial, isEnabled: true) //parametrizacion de las vistas
.enableView(DocumentConfiguration.preview, isEnabled: true)
.enableView(DocumentConfiguration.result, isEnabled: true)
.attempts(3) //reintentos
.processTime(30) // tiempod e procesamiento
.initialTime(5) //tiempo de espera para iniciar captura
.theme(customTheme) //customizacion...
.enableAccessibility(true) //lectura de textos...
)
.startProcess(from: rootViewController, data: data) {(result, error) in //se inicia todo...
print("[SDK] startProcess invoked. Waiting for response...")
if let error = error {
print("[SDK Response] Error received: \\(error)")
DispatchQueue.main.async {
self.onFaceError?(Message(type: .system(code: MessageType.sdkError)), 0)
}
return
}
//Respuesta de BlackBox...
print("[SDK Response] Result received: \\(String(describing: result?.data))")
}
}
<aside> 💡
continue con el siguiete paso de la integracion. Paso 3b - Consumo primer servicio (Solicitud Validación Estado)
</aside>