O primeiro passo é instanciar um objeto Intent passando o nome da aplicação como argumento, neste caso, o nome é com.elgin.e1.digitalhub.TEF
. Através desta informação, o Android buscará o aplicativo do IDH entre os aplicativos instalados no dispositivo.
Em seguida, devem ser configurados os parâmetros obrigatórios através da função putExtra(String, String). Esses e outros parâmetros estão detalhados Referência.
Intent i = new Intent("com.elgin.e1.digitalhub.TEF");
i.putExtra("funcao", "configurar");
i.putExtra("nome", "Elgin");
i.putExtra("versao", "1.5.0");
i.putExtra("textoPinpad", "Elgin Tef");
startActivityForResult(i,1234);
Depois podemos ativar o 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);
Os 2 passos acima só é necessário fazer a primeira vez, nas próximas vezes tudo fica salvo no IDH. Os 2 passos também podem ser feitos direto na interface do IDH.
Por fim, se executa a função nativa do Android startActivityForResult(Intent, int) passando como parâmetros o objeto Intent e um número arbitrário. Este número será utilizado como um ID para a recuperação de informações que o IDH enviará ao aplicativo que o acionou. Nesta documentação, utilizaremos o ID = 1234.
Exemplos de transações do IDH ElginTef
Venda simples
Intent i = new Intent("com.elgin.e1.digitalhub.TEF");
i.putExtra("funcao", "vender");
startActivityForResult(i,1234);
Débito
Intent i = new Intent("com.elgin.e1.digitalhub.TEF");
i.putExtra("funcao", "debito");
i.putExtra("valor", "1400");
startActivityForResult(i,1234);
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);
Pix
Intent i = new Intent("com.elgin.e1.digitalhub.TEF");
i.putExtra("funcao", "pix");
i.putExtra("valor", "13.00");
startActivityForResult(i,1234);
Cancelamento
Intent i = new Intent("com.elgin.e1.digitalhub.TEF");
i.putExtra("funcao", "cancelar");
i.putExtra("valor", "11.00");
i.putExtra("nsu", "000144");
i.putExtra("data", "10/05/23");
startActivityForResult(i,1234);
Relatório
Intent i = new Intent("com.elgin.e1.digitalhub.TEF");
i.putExtra("funcao", "relatorio");
startActivityForResult(i,1234);
Reimprimir
Intent i = new Intent("com.elgin.e1.digitalhub.TEF");
i.putExtra("funcao", "reimprimir");
startActivityForResult(i,1234);