O objetivo deste manual é fornecer todas as informações necessárias para instalação e uso da ferramenta nos aplicativos desenvolvidos para plataforma Android.
Este SDK realiza a captura de faces para processamento de liveness pela ClearSale. Todas as informações coletadas são dados relacionados apenas ao dispositivo, sem relação ao aplicativo integrado.
As informações de captura de imagem dependem da permissão concedida pelo usuário no momento de captura. Neste caso é necessário que o aplicativo solicite o acesso à câmera ao usuário para dar prosseguimento à coleta de prova de vida.
O SDK respeita a política de privacidade da Google para a captura dos dados do dispositivo e o nível de permissão atribuído pelo usuário (usuário do dispositivo).
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 PAT // valor fornecido pela ClearSale
}
authentication {
basic(BasicAuthentication)
}
}
}
}
...
}
Obs: o PAT é o token para baixar o repositório do SDK de Liveness Android da ClearSale
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:sdk-csliveness:1.1.5'
...
}
dependencies {
implementation 'sale.clear.studio:sdk-csliveness:1.1.5-hml'
...
}
Instruções para configuração do framework no projeto:
<uses-permission android:name="android.permission.INTERNET"/>
CSLiveness é a classe responsável pela inicialização do SDK.
Esta classe possui um construtor público que deverá receber três parâmetros necessários para a comunicação com os servidores da ClearSale.
Parâmetros | Descrição |
---|---|
clientId | ClientId identifica o client junto a ClearSale, este valor é fornecido pela ClearSale. |
clientSecret | ClientSecret serve como token de autenticação do cliente. |
vocalGuidance | VocalGuidance é um conjunto de áudios que ajuda o usuário a concluir o Liveness, reproduzindo falas humanas do que precisa ser feito em cada etapa. |
identifierID | Identifier ID é uma string de até 100 caracteres OPCIONAL 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 | É 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. |
Nome do método | Descrição |
---|---|
getClientId() :String | Permite recuperar o valor configurado no parâmetro clientId. |
getClientSecret() :String | Permite recuperar o valor configurado no parâmetro clientSecret. |
CSLivenessActivity é a Activity responsável pela inicialização da tela de captura da imagem.
CSLivenessResult é a classe que informa o resultado da caputra do liveness.
Esta classe não possui um construtor público e deve usada apenas para receber o resultado emitido pela CSLivenessActivity.
Nome do método | Descrição |
---|---|
getResponseMessage() :String |
Permite recuperar o resultado da captura do liveness. Caso seja um caso de sucesso ela irá
conter como resposta a string Real , do contrário será uma string explicando o erro
que aconteceu.
|
getSessionId() :String | Esse id identifica a captura do liveness dentro da ClearSale e poderá ser usado para a consulta da imagem. Em caso de erro ele retornará null. |
getImage() :String | Retorna um base64 da imagem autenticada pelo processo de liveness. Em caso de erro no processo de liveness ele retornará null. |
Para inicializar o sdk crie uma instância da classe CSLiveness na Activity que você deseja que seja iniciada a captura do liveness passando as credenciais de acesso que foram recebidas pela ClearSale, um booleano para habilitar ou desabilitar o Vocal Guidance, Cpf do usuario (OPCIONAL), Identifier Id (OPCIONAL).
mCSLiveness = new CSLiveness(clientID, clientSecret, vocalGuidance, identifierId, cpf);
Como os campos identifierId e cpf são opcionais eles podem receber valores nulos, por exemplo:
mCSLiveness = new CSLiveness(clientID, clientSecret, vocalGuidance, null, null);
Crie uma Intent passando a atual Activity e a classe CSLivenessActivity como parâmetros.
Intent mIntent = new Intent(this, CSLivenessActivity.class);
mIntent.putExtra(CSLiveness.PARAMETER_NAME, mCSLiveness);
Em seguida passe a instância da classe CSLiveness para dentro da CSLivenessActivity através do método putExtra(String name, Serializable value) da seguinte maneira:
mIntent.putExtra(CSLiveness.PARAMETER_NAME, mCSLiveness);
Para inicializar a chamada da tela de captura do liveness use o seguinte método.
startActivityForResult(mIntent, REQUEST_CODE);
Após a finalização do processo de captura CSLivenessActivity vai emitir o resultado através de um objeto do tipo CSLivenessResult. Para recuperar o valor emitido utilize o método onActivityResult(int requestCode, int resultCode, Intent data) da seguinte forma.
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (requestCode == REQUEST_CODE){
if (resultCode == RESULT_OK && data != null) {
CSLivenessResult mCSLivenessResult = (CSLivenessResult) data.getSerializableExtra(CSLiveness.PARAMETER_NAME);
Log.d(mCSLivenessResult.getResponseMessage());
} else {
Log.d("UserCancel");
}
}
super.onActivityResult(requestCode, resultCode, data);
}
Juntando todas as etapas o código fica da seguinte forma:
//chame o método startCSLiveness no momento que você deseja iniciar a tela de captura do processo de liveness.
void startCSLiveness (){
String clientID = "clientID recebido da ClearSale";
String clientSecret = "clientSecret recebido da ClearSale";
String cpf = "43325556409" //Cpf do cliente OPCIONAL;
String identifierId = "rgmrieg98revefnbwbr0rgw" //Identifier ID é uma string de até 100 caracteres OPCIONAL que identifica todo o fluxo do usuário
boolean vocalGuidance = true; //Coloque true para habilitar o Vocal Guidance ou false para desabilita-lo
mCSLiveness = new CSLiveness(clientID, clientSecret, vocalGuidance, identifierId, cpf);
Intent mIntent = new Intent(this, CSLivenessActivity.class);
mIntent.putExtra(CSLiveness.PARAMETER_NAME, mCSLiveness);
startActivityForResult(mIntent, REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (requestCode == REQUEST_CODE){
if (resultCode == RESULT_OK && data != null) {
CSLivenessResult mCSLivenessResult = (CSLivenessResult) data.getSerializableExtra(CSLiveness.PARAMETER_NAME);
Log.d(TAG, mCSLivenessResult.getResponseMessage());
} else {
Log.d(TAG, "UserCancel");
}
}
super.onActivityResult(requestCode, resultCode, data);
}
Caso opte por não colocar o identifierId e Cpf, o código ficará da seguinte forma:
//chame o método startCSLiveness no momento que você deseja iniciar a tela de captura do processo de liveness.
void startCSLiveness (){
String clientID = "clientID recebido da ClearSale";
String clientSecret = "clientSecret recebido da ClearSale";
boolean vocalGuidance = true; //Coloque true para habilitar o Vocal Guidance ou false para desabilita-lo
mCSLiveness = new CSLiveness(clientID, clientSecret, vocalGuidance, null, null);
Intent mIntent = new Intent(this, CSLivenessActivity.class);
mIntent.putExtra(CSLiveness.PARAMETER_NAME, mCSLiveness);
startActivityForResult(mIntent, REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (requestCode == REQUEST_CODE){
if (resultCode == RESULT_OK && data != null) {
CSLivenessResult mCSLivenessResult = (CSLivenessResult) data.getSerializableExtra(CSLiveness.PARAMETER_NAME);
Log.d(TAG, mCSLivenessResult.getResponseMessage());
} else {
Log.d(TAG, "UserCancel");
}
}
super.onActivityResult(requestCode, resultCode, data);
}
Todas as informações coletadas pelo SDK da ClearSale são com exclusiva finalidade de prevenção à fraude e proteção ao próprio usuário, aderente à política de segurança e privacidade das plataformas Google e Apple e à LGPD. Por isso, estas informações devem constar na política de privacidade do aplicativo.
O SDK da ClearSale coleta as seguintes informações do dispositivo :
Algumas dessas informações podem vir a serem compartilhadas com nossas ferramentas de monitoria e error tracking.
Ao realizar o download e utilizar nosso SDK você estará concordando com a seguinte licença:
Copyright © 2024 ClearSale
Todos os direitos são reservados, sendo concedida a permissão para usar o software da maneira como está, não sendo permitido qualquer modificação ou cópia para qualquer fim. O Software é licenciado com suas atuais configurações “tal como está” e sem garantia de qualquer espécie, nem expressa e nem implícita, incluindo mas não se limitando, garantias de comercialização, adequação para fins particulares e não violação de direitos patenteados. Em nenhuma hipótese os titulares dos Direitos Autorais podem ser responsabilizados por danos, perdas, causas de ação, quer seja por contrato ou ato ilícito, ou outra ação tortuosa advinda do uso do Software ou outras ações relacionadas com este Software sem prévia autorização escrita do detentor dos direitos autorais.