Skip to main content

2. Intents de Venda


 Softensistemas Logo

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

Data: 

08/02/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-1757426146984.jpg

I - Fluxograma

Processo

Envolvidos

Dados de Entrada

Dados de Saída

PROC001 Criando Pagamentos

GV e Hub Elgin

Dados de Pagamentos

Retorno da Operação

PROC002 Retorno de Pagamentos

Hub Elgin e GV

-

-

Especificação Funcional


PROC001 Criando Pagamentos:

Regras de Interface:

1. Selecionado a forma de pagamento, deve ser redirecionado para o TEF HUB pela Intent.

image-1757361149580.jpg

2. Enviado o pagamento ao TEF, o APP da Elgin será aberto aguardando o pagamento.

Regras de Negócio:

1. O valor enviado na intent será o valor liquido da venda, sem edição.

2. Exemplo de Intents:

Parâmetro Descrição
funcao

Funções que podem ser chamadas no Intent:

debito
credito
pix

valor

valor da transação

parcelas

Quantidade de parcelas

financiamento

A vista(1), parcelado emissor(2) ou parcelado estabelecimento(3)

nsu

NSU da transação

numParcelas

Número de parcelas, em caso de compra parcelada. O campo é numérico.

data

dd/mm/aa

3. Visando a integração auto-atendimento, para o intent crédito será definido como apenas 1(uma) "parcelas". e o financiamento como (3) Parcelado estabelecimento.

Questões Técnicas:

1. Intent Débito:

Intent i = new Intent("com.elgin.e1.digitalhub.TEF");
i.putExtra("funcao", "debito");
i.putExtra("valor", "1400");
startActivityForResult(i,1234);

2. Intent Crédito:

Intent i = new Intent("com.elgin.e1.digitalhub.TEF");
i.putExtra("funcao", "credito");
i.putExtra("valor", "1500");
i.putExtra("parcelas", "3");
i.putExtra("financiamento", "3");
startActivityForResult(i,1234);

3. Intent PIX:

Intent i = new Intent("com.elgin.e1.digitalhub.TEF");
i.putExtra("funcao", "pix");
i.putExtra("valor", "13.00");
startActivityForResult(i,1234);

PROC002 Retorno de Pagamentos:

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 pagamento: 

{
    "funcao": "<nome da função chamada>",
    "mensagem": "<mensagem 'Sucesso' ou com descrição do erro>",
    "resultado": {
        "mensagem": string,
        "administradora": string,           // [Opcional]
        "autorizacao": string,              // [Opcional]
        "cnpjRede": string,                 // [Opcional]
        "data": string,                     // [Opcional]
        "nsu": string,                      // [Opcional]
        "nsuRede": string,                  // [Opcional]
        "numeroCartao": string,             // [Opcional]
        "pagamento": string,                // [Opcional]
        "rede": string,                     // [Opcional]
        "tipoCartao": string,               // [Opcional]
        "valor": string,                    // [Opcional]
        "vencimento": string,               // [Opcional]
        "viaCliente": string,               // [Opcional]
        "viaEstabelecimento": string,       // [Opcional]
        "viaSMS": string,                   // [Opcional]
    }
}
 

©SOFTEN SISTEMAS 2025