Os SDKs de Captura de Documentos permitem a realização de capturas pelo usuário dentro de sua aplicação. Essas capturas passam por validações que identificam o tipo de documento e que avaliam a qualidade da imagem capturada, instruindo o usuário através de feedbacks visuais.
Todas as informações coletadas são dados relacionados apenas ao dispositivo do usuário.
É necessário que o usuário conceda permissão de acesso à câmera do dispositivo para capturar e enviar seu documento.
Certifique-se que o seu gradle a nível de projeto settings.gradle possua os seguintes repositórios:
buildscript {
...
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven {
url ARTIFACTS_FEED_URL // valor fornecido pela ClearSale
name ARTIFACTS_FEED_NAME // valor fornecido pela ClearSale
credentials {
username USERNAME // valor fornecido pela ClearSale
password ACCESSTOKEN // valor fornecido pela ClearSale
}
authentication {
basic(BasicAuthentication)
}
}
}
}
...
}
No arquivo build.gradle da sua aplicação, habilite a compatibilidade de origem Java 1.8.
android {
...
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
...
}
Existem dois pacotes, um deve ser utilizado para testes e o outro no ambiente produtivo.
Adicione no build.gradle do seu aplicativo a seguinte dependência:
dependencies {
implementation 'sale.clear.studio:documentoscopy-sdk:2.0.0'
...
}
dependencies {
implementation 'sale.clear.studio:documentoscopy-sdk:2.0.0-hml'
...
}
Instruções para configuração do framework no projeto:
<uses-permission android:name="android.permission.INTERNET"/>
CSDocumentoscopySDK é a classe responsável pela inicialização do SDK.
Esta classe possui uma função pública que deverá receber três parâmetros necessários para a comunicação com os servidores da ClearSale.
Atributo/Função | Descrição |
---|---|
initialize | Função que chama o SDK. |
context: Context | Contexto da aplicação. |
csDocumentoscopy: CSDocumentoscopy | Data class responsável por receber todos os parâmetros de autenticação do usuário. |
csDocumentoscopyListener: CSDocumentoscopySDKListener | Listener responsável por retornar os feedbacks do SDK para o usuário que o implementa. |
CSDocumentoscopy é o objeto responsável pelo recebimento dos dados necessários para a comunicação com os servidores da ClearSale.
Parâmetros | Descrição |
---|---|
clientId: String | ClientId identifica o client junto a ClearSale, este valor é fornecido pela ClearSale. |
clientSecret: String | ClientSecret serve como token de autenticação do cliente. |
identifierId: String | Identifier ID é uma string de até 100 caracteres OBRIGATÓRIA que identifica todo o fluxo do usuário de forma única e é gerada pela entidade. Serve para agilizar consultas e chamados feitos pela entidade (e pode ser utilizada como identificador interno entre produtos aqui da ClearSale). |
cpf: String | É uma string de 11 caracteres OPCIONAL (no formato CPF) do usuário que irá realizar o fluxo, devendo seguir as regras de validade estipuladas pelo Governo. |
Esta classe possui os seguintes parâmetros.
Parâmetro | Descrição |
---|---|
sessionId: String | ID único da sessão, utilizado para a recuperação da imagem). |
documentType: CSDocumentoscopySDKDocumentType | Resultado do tipo do documento sendo RG ou CNH. |
Esta interface possui as seguintes funções.
Função | Descrição |
---|---|
didOpen() | Este evento é acionado sempre que o SDK é iniciado. |
didTapClose() | Este evento é acionado sempre que o usuário sai de forma intencional do SDK. |
didFinishCapture(result: CSDocumentoscopySDKResult) | Ao concluir todo o fluxo e enviar as imagens com sucesso para o servidor, o SDK se encerra automaticamente após 2 segundos, acionando este evento. |
didReceiveError(error: CSDocumentoscopySDKError) | Ao ocorrerem erros mapeados, este evento será chamado logo após o fechamento automático do SDK. |
Este data class pode retornar os seguintes erros
Erro | Descrição |
---|---|
ContextSwitchFailure | Contexto SDK modificado. |
NoInternetConnection | Ocorreu um erro com a conexão de Internet do usuário. |
AuthFailure | Ocorreu um erro com a autenticação do usuário. |
PredictionFailure | Ocorreu um erro ao tentar recuperar a imagem na memória. |
InvalidCpfFailure | Ocorreu um erro ao validar o formato do CPF. |
InvalidIdentifierId | Ocorreu um erro ao validar o formato IdentifierId, certifique-se de que possui no máximo 100 caracteres. |
ImageConversion | Ocorreu um erro ao converter as imagens capturadas para o formato esperado. |
Faça a importação da biblioteca em sua classe.
import com.clear.studio.csdocs.entries.CSDocumentoscopy
import com.clear.studio.csdocs.entries.CSDocumentoscopySDKError
import com.clear.studio.csdocs.entries.CSDocumentoscopySDKListener
import com.clear.studio.csdocs.entries.CSDocumentoscopySDKResult
import com.clear.studio.csdocs.entries.CSDocumentoscopySDK
Instancie o SDK passando os parâmetros pedidos, conforme exemplo abaixo.
CSDocumentoscopySDK.initialize(this, CSDocumentoscopy(mClientId.text.toString(), mClientSecret.text.toString(), cpf = mCpf.text.toString(), identifierId = mIdentifierId.text.toString()), object: CSDocumentoscopySDKListener{
override fun didOpen(){
Log.d("Documentoscopia", "SDK Foi Aberto")
}
override fun didTapClose(){
Log.d("Documentoscopia", "Usuário encerrou manualmente o fluxo")
}
override fun didReceiveError(error : CSDocumentoscopySDKError){
mSessionId.text = (error.text + "errorCode: " + error.errorCode.toString())
}
override fun didFinishCapture(result: CSDocumentoscopySDKResult){
mSessionId.text = ("Session Id: " + result.sessionId)
mCSDocumentoscopySDKDocumentTypeView.setText("CSDocumentoscopySDKDocumentType: " + result.documentType.toString())
}
})