PassiveFaceLiveness (Obsoleto)
Câmera inteligente que captura uma selfie confiável do seu usuário usando inteligência artificial, capaz de detectar e reprovar fotos instantâneas e gravações. Ideal para o seu onboarding.
Permissões obrigatórias
No info.plist arquivo, adicione as permissões abaixo:
Permissão
Motivo
Obrigatório?
Privacidade - Descrição de Uso da Câmera
Para capturar a selfie do usuário
Sim
Utilização
Primeiro, instancie um objeto do tipo ** PassiveFaceLiveness:**
let passiveFaceLiveness = PassiveFaceLiveness.Builder(mobileToken: "mobileToken")
// veja a tabela abaixo
.build()PassiveFaceLiveness.Builder
Parâmetro
Obrigatório?
String mobileToken
Token de uso associado à sua conta CAF
Sim
.setPeopleId(peopleId: String?)
Identificador do usuário com a finalidade de identificar um perfil fraudulento
Não, é usado apenas para analytics
.setAnalyticsSettings(useAnalytics: Bool)
Habilita/desabilita a coleta de dados para analytics
Não, o padrão é true
.setStabilitySensorSettings(message: String?, stabilityThreshold :Double?)
Altera as configurações padrão do sensor de estabilidade. O limite deste sensor está na faixa das duas últimas acelerações coletadas do dispositivo.
Não. O padrão é "Mantenha o celular parado" e 1,5, respectivamente
.setCaptureSettings( beforePictureInterval: TimeInterval?)
Altera as configurações usadas para capturar a selfie. O parâmetro indica o tempo em milissegundos entre o enquadramento correto do rosto e a captura real da foto.
Não. O padrão é 2,0
setLayout(layout: PassiveFaceLivenessLayout)
Altera as máscaras do documento para sucesso, falha e normal.
Também permite alterar os botões de som e cancelar na parte superior da tela
Não
.setColorTheme(color: UIColor)
Altere a cor dos botões de som e cancelar que ficam no topo da tela. Também altere a cor dos botões do popup, exibidos antes de cada documento.
Não
.enableSound(enableSound: Bool)
Habilita/desabilita os sons e o ícone de som no SDK
Não. O padrão é true
.showStepLabel(show: Bool)
Mostrar/ocultar o rótulo central inferior (que contém o nome do documento)
Não. O padrão é true
.showStatusLabel(show: Bool)
Mostrar/ocultar o rótulo central (que contém o status)
Não. O padrão é true
.setNetworkSettings(requestTimeout:TimeInterval)
Altere as configurações padrão de rede
Não. O padrão é 60 (segundos)
.setProxySettings(proxySettings: ProxySettings?)
Define as configurações do proxy, conforme explicado aqui
Não. O padrão é nil
.showPreview(_ show: Bool, title: String?, subtitle: String?, confirmLabel: String?, retryLabel: String?)
Ativa/desativa a pré-visualização da captura. Se mostrar tem true, após cada captura, o SDK fornece uma tela para o usuário aprovar ou refazer a captura. Para os demais parâmetros, informe nil para usar o valor padrão ou uma String para um texto personalizado.
Não. O padrão é false
.setCompressSettings(compressionQuality: CGFloat)
Permite definir a qualidade no processo de compressão. Por padrão, todas as capturas são comprimidas. O método espera valores entre 0 e 1,0 como parâmetros, sendo 1,0 a melhor qualidade de compressão (recomendada).
Não. O padrão é 1.0
.setMessageSettings(waitMessage: String?, stepName: String?, faceNotFoundMessage: String?, faceTooFarMessage: String?, faceNotFittedMessage: String?, holdItMessage: String?, invalidFaceMessage: String?, multipleFaceDetectedMessage: String?, sensorStabilityMessage: String?, verifyingLivenessMessage: String?, eyesClosedMessage: String?)
Permite personalizar as mensagens exibidas no balão de "status" durante o processo de captura e análise.
Não. O padrão é este
.setPersonCPF(personCPF: String)
Vincula uma tentativa de prova de vida a um CPF
Não. O padrão é nil
.setPersonName(personName: String)
Vincula uma tentativa de prova de vida a um nome
Não. O padrão é nil
.setManualCaptureSettings(enable: Bool, time: TimeInterval)
Habilita/desabilita a captura manual. O tempo parâmetro define o tempo para que o modo de captura seja habilitado.
Não. O padrão é desativado
.enableMultiLanguage(_ enable: Bool)
Habilitar/desabilitar suporte a vários idiomas
Não. O padrão é habilitado
.setVideoCaptureSettings(time: TimeInterval)
Permite habilitar e configurar a captura de vídeo.
Não. O padrão é desativado
.setGetImageUrlExpireTime(expireTime: String)
Define por quanto tempo a URL da imagem ficará disponível no servidor até expirar. Espere receber um intervalo de tempo entre "30m" e "30d".
Exemplos:
setGetImageUrlExpireTime("30m"): Para definir apenas minutossetGetImageUrlExpireTime("24h"): Para definir apenas hora(s)setGetImageUrlExpireTime("1h 10m"): Para definir hora(s) e minuto(s)setGetImageUrlExpireTime("10d"): Para definir dia(s)
Não. O padrão é 3h
.setImageCaptureSettings(beforePictureInterval: TimeInterval!, enableManualCapture: Bool, timeManualCapture: TimeInterval)
Permite definir a captura por imagem. O atributo beforePictureInterval define o tempo que o usuário deve permanecer com o rosto encaixado na máscara. O enableManualCapture atributo habilita ou desabilita a captura manual. E timeManualCapture define o momento em que a captura manual será habilitada.
Não. O padrão é habilitado. Para beforePictureInterval o padrão é 2 (segundos). Para enableManualCapture o padrão é false e para timeManualCapture o padrão é 20 (segundos).
.setMask(type: MaskType)
Define o tipo de máscara usado nas capturas. Há três tipos:
.standard, com o padrão pontilhado no formato do documento;.vazia, que remove completamente a máscara.
Não. O padrão é .padrão
.setCurrentStepDoneDelay(currentStepDoneDelay: TimeInterval)
Atrasa a atividade após a conclusão de cada etapa. Este método pode ser usado para exibir uma mensagem de sucesso na própria tela após a captura, por exemplo.
Não. O padrão é false
.setEyesClosedSettings(threshold: Double, isEnable: Bool)
Permite personalizar as configurações de validação de olhos abertos do SDK. O método recebe como parâmetro isEnable para habilitar ou desabilitar a validação, e limite, valor entre 0,0 e 1,0
Não. O padrão é true e 0.5
.setResolutionSettings(resolution: Resolution)
Permite definir a resolução de captura. O método recebe como parâmetro um Resolução, que possui as seguintes opções:
Não. O padrão é hd1280x720
Resolução
Descrição
low
Especifica as configurações de captura apropriadas para taxas de bits de vídeo e áudio de saída adequadas para compartilhamento via 3G
medium
Especifica as configurações de captura apropriadas para as taxas de bits de vídeo e áudio de saída adequadas para compartilhamento via WiFi
high
Especifica as configurações de captura apropriadas para saída de vídeo e áudio em alta qualidade
photo
Especifica as configurações de captura apropriadas para saída de qualidade de foto em alta resolução
inputPriority
Especifica as configurações de captura apropriadas para saída de qualidade de foto em alta resolução
hd1280x720
Especifica as configurações de captura apropriadas para saída de vídeo em qualidade 720p (1280 x 720 pixels)
hd1920x1080
Configurações de captura adequadas para saída de vídeo em qualidade 1080p (1920 x 1080 pixels)
hd4K3840x2160
Configurações de captura adequadas para saída de vídeo em qualidade 2160p (3840 x 2160 pixels)
.setStage(stage: CAFStage)
Permite escolher o ambiente em que o SDK será executado (produção, beta). O método recebe como parâmetro um enum CAFStage para selecionar o ambiente:
Não. O padrão é .PROD
Enum
Descrição
.PROD
Usará a Trust Platform produção para registrar as execuções do SDK.
.BETA
Usará a Trust Platform beta para registrar as execuções do SDK.
Cada ambiente (beta e produção) requer seu próprio mobileToken específico, gerado na Trust Platform do respectivo ambiente.
MessageSettings
Atributo
Valor Padrão
waitMessage: String
Mensagem exibida quando o SDK está em processo de abertura
"Aguarde..."
stepName: String
Rótulo estático presente na parte inferior da activity
"Registro facial"
faceNotFoundMessage: String
Mensagem exibida quando o algoritmo não reconhece um rosto
"Não encontramos nenhum rosto"
faceNotFittedMessage: String
Mensagem exibida quando o rosto não está encaixado corretamente na máscara
"Encaixe seu rosto"
faceTooFarMessage: String
Mensagem exibida quando há um rosto muito pequeno
"Aproxime o rosto"
multipleFaceDetectedMessage: String
Mensagem exibida quando mais de um rosto é detectado
"Mais de um rosto detectado"
holdItMessage: String
Mensagem exibida quando o usuário está na posição correta para a captura
"Segure assim"
invalidFaceMessage: String
Mensagem exibida quando a verificação de prova de vida rejeita a selfie
"Não conseguimos capturar seu rosto. Tente novamente."
verifyingLivenessMessage: String
Mensagem exibida durante a verificação de prova de vida.
"Verificando selfie…"
captureProcessingErrorMessage: String
Mensagem exibida quando ocorre um problema de processamento ou erro na resposta da API.
"Ops, tivemos um problema ao processar sua imagem. Tente novamente."
eyesClosedMessage: String
Mensagem exibida quando ambos os olhos estão fechados.
"Não use óculos escuros e mantenha os olhos abertos."
Depois de criar um objeto do tipo PassiveFaceLiveness, inicie a PassiveFaceLivenessController passando este objeto como parâmetro no construtor:
Obtendo o resultado
Para obter o resultado, você deve implementar o PassiveFaceLivenessControllerDelegate delegate no seu controlador:
PassiveFaceLivenessResult
Parâmetro
Pode ser nulo?
image: UIImage?
Foto da selfie tirada ou imagem do melhor quadro capturada do vídeo - se o formato VideoCapture estiver habilitado.
Sim, em caso de erro
capturePath: String?
Caminho do vídeo no dispositivo
Sim, em caso de erro
imageUrl: String
URL contendo a selfie em JPEG em nosso servidor temporário
Sim, em caso de erro
signedResponse: String
Resposta assinada do servidor CAF que confirmou que a selfie capturada tem um rosto real (não é uma foto ou vídeo). Use este parâmetro se quiser uma camada extra de segurança, verificando se a assinatura da resposta não foi comprometida, causada por uma interceptação da requisição. Se ela estiver comprometida, isso indica fortemente a interceptação da requisição
Sim, em caso de erro ou indisponibilidade do servidor
trackingId: String?
Identificador desta execução em nossos servidores. Se possível, salve este campo e envie-o para nossa API. Dessa forma, teremos mais dados sobre como o usuário se comportou durante a execução
Sim, se o usuário definir useAnalytics = false ou as chamadas de analytics não funcionarem
lensFacing: Int
Define o lado da câmera que foi usado. Use PassiveFaceLivenessResult.LENS_FACING_FRONT ou PassiveFaceLivenessResult.LENS_FACING_FRONT para validar.
Não
PassiveFaceLivenessFailure
Superclasse que leva ao encerramento do SDK. Para descobrir qual foi o motivo, descubra qual classe de objeto possui o método ** isKindOfClass() **, equivalente a instanceof em Java e is em Dart:
isKindOfClass()
Descrição
Exemplo
InvalidTokenReason
O token informado não é válido para o produto correspondente
Parametrize "test123" como token no builder do SDK
PermissionReason
Falta alguma permissão obrigatória para executar o SDK
Iniciar o DocumentDetector sem permissão de câmera concedida
NetworkReason
Falha na conexão com a internet
O usuário estava sem internet durante o facematch no FaceAuthenticator
ServerReason
Quando uma requisição do SDK recebe um código de status de falha
Em teoria, isso não deveria acontecer. Se acontecer, nos avise!
StorageReason
Não há espaço no armazenamento interno do dispositivo do usuário
Quando não há espaço no armazenamento interno ao capturar a foto do documento
Exemplos
Personalizando o layout
Você pode personalizar o layout criando um objeto do tipo PassiveFaceLivenessLayout e passando-o como parâmetro para PassiveFaceLivenessBuilder:
Atualizado

