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:

Fluxograma de Operação

  1. 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 objeto Transacoes, através do método Transacoes.obtemInstancia(DadosAutomacao, Context).
  2. 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.
  3. 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 enumerado Operacoes e um identificador de venda para automação, que pode ser utilizado para controle (preferencialmente devendo ser único para cada transação).
  4. 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 tipo SaidaTransacao, 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() e SaidaTransacao.obtemResultadoTransacao().
  5. 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.
  6. Caso a transação necessite de confirmação:
    1. A automação deve instanciar um objeto do tipo Confirmacoes e informar o status final da transação (enumerado StatusTransacao), indicando se ela deve ser confirmada ou desfeita por algum motivo (método Confirmacao.informaStatusTransacao(StatusTransacao).
    2. Através do objeto Confirmacoes também deve ser informado qual o identificador da transação a ser confirmada/desfeita, utilizando o método Confirmacoes.informaIdentificadorConfirmacaoTransacao(String). Este identificador deve ser obtido através do método SaidaTransacao.obtemIdentificadorConfirmacaoTransacao(), ao final de cada operação realizada.
    3. 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.
  7. 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().