InterfaceAutomacao v2.1.0.6
Este documento descreve a API Interface Automação.
O fluxo operacional da Interface é descrito no diagrama a seguir. Este fluxo contém todas as chamadas dos métodos a serem efetuadas pela automação, evidenciando a ordem de implementação:
-
Ao iniciar a aplicação, a automação deve instanciar um objeto
DadosAutomacao
, populando-o com seus dados. Uma vez instanciado o objeto, pode ser obtida a instância do objetoTransacoes
, através do métodoTransacoes.obtemInstancia(DadosAutomacao, Context)
. - Antes de iniciar uma transação, a automação pode efetuar a captura de dados, como tipo de cartão, financiamento, quantidade de parcelas. A captura do valor inicial da transação e do tipo de transação é obrigatória.
-
Os dados capturados devem ser informados através do objeto
EntradaTransacao
e seus respectivos métodos "informaXxx". Este objeto, em seu construtor, espera dois parâmetros: O tipo de operação (uma das constantes do enumeradoOperacoes
e um identificador de venda para automação, que pode ser utilizado para controle (preferencialmente devendo ser único para cada transação). -
A realização da transação é efetuada através do método
Transacao.realizaTransacao(EntradaTransacao)
. Este método é blocante, retornando apenas ao fim da operação. Por este motivo, recomenda-se sua chamada dentro de um processo secundário (como uma Thread ou um Serviço). O retorno do método é um objeto do tipoSaidaTransacao
, contendo todos os dados da operação realizada. A automação pode então obter todos os dados relevantes da operação realizada, porém dois campos merecem especial atenção:SaidaTransacao.obtemInformacaoConfirmacao()
eSaidaTransacao.obtemResultadoTransacao()
. -
O método
SaidaTransacao.obtemInformacaoConfirmacao()
deve ser chamado ao final de cada transação, independente do resultado, pois é ele que informa a obrigatoriedade de confirmação da transação. A não confirmação de uma transação que requer confirmação a deixará pendente, travando o ponto de captura para novas transações enquanto a pendência não for resolvida. -
Caso a transação necessite de confirmação:
-
A automação deve instanciar um objeto do tipo
Confirmacoes
e informar o status final da transação (enumeradoStatusTransacao
), indicando se ela deve ser confirmada ou desfeita por algum motivo (métodoConfirmacao.informaStatusTransacao(StatusTransacao)
. -
Através do objeto
Confirmacoes
também deve ser informado qual o identificador da transação a ser confirmada/desfeita, utilizando o métodoConfirmacoes.informaIdentificadorConfirmacaoTransacao(String)
. Este identificador deve ser obtido através do métodoSaidaTransacao.obtemIdentificadorConfirmacaoTransacao()
, ao final de cada operação realizada. -
A confirmação é efetuada através do método
Transacao.confirmaTransacao(Confirmacao)
. Este método também é blocante, portanto, recomenda-se que sua chamada seja executada em um processo em segundo plano.
-
A automação deve instanciar um objeto do tipo
-
Caso a transação não necessite de confirmação, ou a confirmação foi efetuada com sucesso, a
automação pode encerrar o seu fluxo transacional (impressão de comprovantes, armazenamento
de dados, liberação de mercadoria, etc.), observando se a transação foi ou não efetuada
com sucesso, através do método
SaidaTransacao.obtemResultadoTransacao()
.
Packages