Skip to main content

1. Inicio configuração TEF Android


 Softensistemas Logo

Projeto/Sistema:
TEF Android - GerencieVendas
Versão do Template:
1.2
Processo:
Inicio configuração TEF Android
Versão do Documento:
1.0
Responsável(eis): 
Luís Leite

Data: 

08/09/2025

1. Introdução

Este documento descreve o processo de integração de pagamentos eletrônicos utilizando Intents do Android para comunicação entre o GV e o aplicativo Elgin Pay.

2. Processo

 

image-1757341331492.jpg

I - Fluxograma

Processo

Envolvidos

Dados de Entrada

Dados de Saída

Configuração Inicial

GV e Hub Elgin

Dados da empresa

Liberação

Configuração Layout

GV e Hub Elgin

Dados de configuração

-

Respostas Intents

GV e Hub Elgin

-

-

Especificação Funcional


PROC001 Configuração Inicial:

Protótipo de Tela:

image-1757514520432.png

 

Descrição dos Campos:

Campo

Tipo

Tamanho

Obrig. ?

Máscara

Observações

Habilitar TEF Elgin

Toggle Switch

-

-

-

Padrão Desabilitado

Regras de Interface:

1.Toggle "Habilitar TEF Elgin" deve ficar desabilitado como padrão.

2. Ao habilitar o TEF, uma tela de loading semelhante ao do sincronizar dados deve ser aberta, até que seja enviada e retornado a informação da ativação do TEF:

image-1757334281812.png

(APENAS EXEMPLO)

Regras de Negócio:

1. Essa configuração só será realizada uma vez na primeira ativação no dispositivo. 

2. Devem ser feita as configurações do aplicativo de pagamentos da Elgin, também via Intent, conteúdo no PROC002

Questões Técnicas:

1. A comunicação é feita via Intent que é enviada ao Intent Digital Hub, onde é feito a comunicação com o app da Elgin para pagamento, mais detalhes aqui: https://elgindevelopercommunity.github.io/group__idh11.html

2. Ao habilitar o TEF pela primeira vez precisa ativar o app no dispositivo:

2.1 A Intent inicial é feita com os parâmetros obrigatórios putExtra(String, String). Esses e outros parâmetros estão detalhados Referência. Essa é feita apenas uma única vez:

Intent i = new Intent("com.elgin.e1.digitalhub.TEF");
i.putExtra("funcao", "configurar");
i.putExtra("nome", "Nome app");
i.putExtra("versao", "Versão do App");
i.putExtra("textoPinpad", "Elgin Tef");
startActivityForResult(i,1234); // ID = 1234

2.2 Posterior a primeira Intent deve ser enviada a Intent de ativação do terminal

Intent i = new Intent("com.elgin.e1.digitalhub.TEF");
i.putExtra("funcao", "ativar");
i.putExtra("cnpjCpf", "00.000.000/0000-00");
startActivityForResult(i,1234); // ID = 1234

2.3 startActivityForResult(Intent, int): Função nativa do android com parametros informados do objeto intent e um numero arbitrário, não tratar como sequencial. Definir um Int para cada operação, assim é vinculado o tipo de envio e a resposta.

PROC002 Configuração Layout:

Regras de Negócio:

1. Existem funções para a customização do aplicativo de pagamento da Elgin. Devem ser realizadas após os passos de configuração da empresa.
Demais detalhes: https://elgindevelopercommunity.github.io/group__idh210.html

2. Seguir o mesmo esquema de cores do app GV (vai ser preciso validar a quais objetos em tela cada parâmetro corresponde).

Questões Técnicas:

1. Exemplo Customização Geral - Configura background e Logotipo:

Intent intent = new Intent(com.elgin.tefhub.CUSTOM);
intent.putExtra("grupo", "application");
intent.putExtra("logotipo", "/sdcard/Pictures/batman.png");
intent.putExtra("background", "#3ba8e3");
startActivity(intent);

2. Exemplo Customização de cabeçalho - Configura botões, textos e ícones:

Intent intent = new Intent(com.elgin.tefhub.CUSTOM);
intent.putExtra("grupo", "header");
intent.putExtra("corBotao", "#363636");
intent.putExtra("corIcone", "#FFC321");
startActivity(intent);

3. Exemplo Customizar Conteúdo ou itens da parte central - Customiza botões, textos de botões, ícones de botões e mensagens:

Intent intent = new Intent(com.elgin.tefhub.CUSTOM);
intent.putExtra("grupo", "content");
intent.putExtra("corBotao", "#6bd5ae");
intent.putExtra("corIcone", "#5f5f5f");
intent.putExtra("corFonte", "#ffffff"); 
intent.putExtra("corFonteMensagem", "#5f5f5f"); 
startActivity(intent);

PROC003 Resposta Intents:

Questões Técnicas:

1. Quando utilizado startActivityForResult os dados são retornados na função protected void onActivityResult(int requestCode, int resultCode, Intent data)

O parâmetro requestCode é usado para verificar se o retorno corresponde à chamada. O resultCode identifica o status da execução do fluxo do idh elgintef (esses valores pertencem ao Android, RESULT_OK (-1) , RESULT_CANCELED (0)). O parâmetro data é para recuperar os dados enviados pelo IDH (Intent Digital Hub).

Dentro da implementação do onActivityResult deve existir um condicional comparando se o requestCode é igual ao ID passado no startActivityForResult, e dentro dessa condição verificar se o processo foi executado com sucesso para então recuperar os outros valores enviados por meio da função data.getExtras().getString()

2. Exemplo:

2.1 Implementar a sobrecarga da função onActivityResult()

2.2 Obter o valor de getStringExtra com a chave retorno com o valor de [Utilizando Payloads] com o Array (Json) de retorno dos métodos invocados

@Override 
// 1) sobrecarga da função onActivityResult() 
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
 
    try { 
        // 2) recebe o retorno do E1_DigitalHub (um Intent de retorno) 
        String retorno = data.getStringExtra("retorno"); 
        Toast.makeText(getApplicationContext(), "Retorno = " + retorno, Toast.LENGTH_LONG).show(); 
    } catch (Exception e) { 
        Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show(); 
    } 
}

3. Exemplo de retorno configuração 

{
    "funcao": "<nome da função chamada>",
    "mensagem": "<mensagem 'Sucesso' ou com descrição do erro>",
    "resultado": {
        "mensagem": string
    }
}

4. Exemplo de retorno ativação:

{
    "funcao": string,
    "mensagem": string,
    "resultado": { } // retorno vazio
}

©SOFTEN SISTEMAS 2025