Guia de uso e integração

Apresenta as informações necessárias para uso e integração do SDK Oiti em seus aplicativos iOS.

Siga as instruções detalhadas e aproveite os recursos avançados oferecidos por esta ferramenta para melhorar a segurança e a precisão da autenticação biométrica e verificação de documentos.

⚠️

Appkey em fluxos com Liveness 2D/3D + Doc Core

Cada appkey está associada a uma transação específica ou tem um prazo de expiração definido. Em fluxos que tenham apenas Liveness, a appkey não deve ser reutilizada.

Exceção: para os fluxos de trabalho que incluem Liveness 2D ou 3D e têm a etapa de Doc Core como próxima etapa, a appkey será reutilizada para realizar a análise do documento.

💡

Ambiente

Todos os módulos do SDK possuem o parâmetro de environment que indica o ambiente de execução desejado, esse parâmetro recebe um objeto do tipo Environment que possui dois valores:

ValorDescrição
HMLAponta para o ambiente de homologação.
PRDAponta para o ambiente de produção.

Liveness 3D

Passo 1: Importação do módulo

Importe o OILiveness3D no arquivo onde será utilizada:

import OILiveness3D

Passo 2: Configuração do Liveness3DUser

Crie um objeto do tipo Liveness3DUser passando para esse objeto os seguintes parâmetros:

ParâmetroDescrição
appkeyChave gerada para execução dessa etapa.
ticketToken para uso da Certiface API.
environmentAmbiente de execução desejado. Possui o valor HML como padrão.
defaultThemeObjeto contendo a customização padrão do processo de autenticação biométrica.
lowLightThemeObjeto contendo a customização do processo de autenticação biométrica, quando o SDK reconhecer um ambiente com baixa luminosidade.
textsDicionário contendo os textos que serão alterados no processo de autenticação biométrica.

💡

Nota

  1. O parâmetro ticket é opcional;
  2. Os parâmetros defaultTheme, lowLightTheme e texts são opcionais e estão relacionados a customização.
let liveness3DUser = Liveness3DUser(
    appKey: "APP-KEY",
    ticket: "TICKET",
    environment: .HML
)

Passo 3: Configuração do Liveness3DViewController

Crie uma instância para a classe Liveness3DViewController passando os seguintes parâmetros:

ParâmetroDescrição
liveness3DUserObjeto com as informações necessárias para execução do Liveness 3D.
delegateObjeto responsável por implementar os métodos que tratam o resultado do Liveness3D.
customInstructionViewObjeto contendo a customização da tela de instruções.
customPermissionViewObjeto contendo a customização da tela de permissão de câmera.
let controller = Liveness3DViewController(
    liveness3DUser: liveness3DUser,
    delegate: self
)

💡

Notas

  1. Os parâmetros customInstructionView e customPermissionView são opcionais e estão relacionados a customização;
  2. O objeto liveness3DUser é o mesmo criado no passo 2.

Passo 4: Implementação do delegate

Implemente o protocolo Liveness3DDelegate que possui os seguintes métodos:

MétodoDescrição
handleLiveness3DValidation(validateModel:)Método chamado após ser efetuada a autenticação biométrica.
handleLiveness3DError(error:)Método chamado caso ocorra algum problema durante a autenticação biométrica.

Passo 5: Apresentação da controller

Apresente a controller instanciada anteriormente como uma modal:

controller.modalPresentationStyle = .fullScreen 
present(liveness3DViewController, animated: true)

💡

Nota

O objeto controller é o mesmo criado no passo 3.

Exemplo do código completo:

import UIKit
import OILiveness3D

class ViewController: UIViewController {

    func openLivenes3DPressed() {
        let liveness3DUser = Liveness3DUser(
            appKey: "APP-KEY",
            ticket: "TICKET",
            environment: .HML
        )
        
        let controller = Liveness3DViewController(
            liveness3DUser: liveness3DUser,
            delegate: self
        )
        
        controller.modalPresentationStyle = .fullScreen
        present(controller, animated: true)
    }
}

extension ViewController: Liveness3DDelegate {
    func handleLiveness3DValidation(validateModel: Liveness3DSuccess) {
        // Seu código ...
    }
        
    func handleLiveness3DError(error: Liveness3DError) {
        // Seu código ...
    }
}

Liveness 2D

Passo 1: Importação do módulo

Importe o OILiveness2D no arquivo onde será utilizada:

import OILiveness2D

Passo 2: Configuração do FaceCaptchaViewController

Crie uma instância para a classe FaceCaptchaViewController passando os seguintes parâmetros:

ParâmetroDescrição
appKeyChave gerada para execução dessa etapa.
environmentAmbiente de execução desejado.
delegateObjeto responsável por implementar os métodos que tratam o resultado do Liveness 2D.
customInstructionsViewObjeto contendo a customização da tela de instruções.
customLivenessViewObjeto contendo a customização da tela de prova de vida.
customProcessResultViewObjeto contendo a customização da tela de processamento dos resultados.
customResultViewObjeto contendo a customização da tela de resultado do processamento.
customCameraPermissionViewObjeto contendo a customização da tela de permissão de câmera.

💡

Nota

Os parâmetros customInstructionsView, customLivenessView, customProcessResultView, customResultView e customCameraPermissionView são opcionais e estão relacionados a customização.

let controller = FaceCaptchaViewController(
    appKey: "APP-KEY",
    environment: .HML,
    delegate: self
)

Passo 3: Apresentação da controller

Apresente a controller instanciada anteriormente como uma modal:

controller.modalPresentationStyle = .fullScreen
present(controller, animated: true)

💡

Nota

O objeto controller é o mesmo criado no passo 2.

Passo 4: Implementação do delegate

Implemente o protocolo FaceCaptchaDelegate que possui os seguintes métodos:

MétodoDescrição
handleSuccess(model:)Método chamado após ser efetuada a autenticação biométrica.
handleError(error:)Método chamado caso o ocorra algum problema durante a autenticação biométrica.
handleCanceled()Método chamado caso o usuário cancele o processo de autenticação biométrica.

Exemplo do código completo:

import UIKit
import OILiveness2D

class ViewController: UIViewController {
    
    func openFaceCaptchaPressed() {
        let controller = FaceCaptchaViewController(
            appKey: "APP-KEY",
            environment: .HML,
            delegate: self
        )

        controller.modalPresentationStyle = .fullScreen
        present(controller, animated: true)
    }
}

extension ViewController: FaceCaptchaDelegate {
    func handleSuccess(model: FaceCaptchaSuccessModel) {
        // Seu código ...
    }
        
    func handleError(error: FaceCaptchaError) {
        // Seu código ...
    }
  
    func handleCanceled() {
        // Seu código ...
    }
}


Doc Core

Passo 1: Importação do módulo

Importe o OILiveness2D no arquivo onde será utilizada:

import OILiveness2D

Passo 2: Configuração do DocumentscopyViewController

Crie uma instância para a classe DocumentscopyViewController passando os seguintes parâmetros:

ParâmetrosDescrição
ticketToken para uso da Certiface API.
appKeyChave gerada para execução dessa etapa.
environmentAmbiente de execução desejado.
delegateObjeto responsável por implementar os métodos que tratam o resultado da Documentoscopia.
customInstructionViewObjeto contendo a customização da tela de instruções.
customViewObjeto contendo a customização da tela de captura de documento.
customCameraPermissionViewObjeto contendo a customização da tela de permissão de câmera.
customLoadingViewObjeto contendo a customização da tela de carregamento do resultado.
customResultViewObjeto contendo a customização da tela de resultado.

💡

Nota

  1. O parâmetro ticket é opcional;
  2. Os parâmetros customInstructionView, customView, customCameraPermissionView, customLoadingView e customResultView são opcionais e estão relacionados a customização.
let controller = DocumentscopyViewController(
    ticket: "TICKET",
    appKey: "APP-KEY", 
    environment: .HML,
    delegate: self
)

Passo 3: Apresentação da controller

Apresente a controller instanciada anteriormente como uma modal:

controller.modalPresentationStyle = .fullScreen
present(controller, animated: true)

💡

Nota

O objeto controller é o mesmo criado no passo 2.

Passo 4: Implementação do delegate

Implemente o protocolo DocumentscopyDelegate que possui os seguintes métodos:

MétodoDescrição
handleDocumentscopyCompleted()Método chamado após ser efetuada a verificação de documento.
handleDocumentscopyError(error:)Método chamado caso o ocorra algum problema durante a verificação de documento.
handleDocumentscopyCanceled()Método chamado caso o usuário cancele o processo de verificação de documento.

Exemplo do código completo:

import UIKit
import OILiveness2D

class ViewController: UIViewController {
  
    func openDocumentscopyPressed() {
        let controller = DocumentscopyViewController(
            ticket: "TICKET",
            appKey: "APP-KEY", 
            environment: .HML,
            delegate: self
        )

        controller.modalPresentationStyle = .fullScreen
        present(controller, animated: true)
    }
}

extension ViewController: DocumentscopyDelegate {
    func handleDocumentscopyCompleted() {
        // Seu código ...
    }
        
    func handleDocumentscopyError(error: DocumentscopyError) {
        // Seu código ...
    }
  
    func handleDocumentscopyCanceled() {
        // Seu código ...
    }
}