For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 minutos

  • setGetImageUrlExpireTime("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.

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