Skip to content

UICallback

UICallback

Interface que disponibiliza os callbacks de interação com o usuário, responsável por gerenciar o comportamento e orquestrar a captura dos dados necessários para processar uma transação.

Para inicializar o MobileSDK, é necessário ter uma instância de UICallback. Sendo assim, nossa sugestão é criar uma Activity que se responsabilize pelo fluxo de integração e implemente essa interface (verifique nosso App de exemplo).

Abaixo, temos uma lista dos métodos definidos pela interface e informações que devemos utilizar para compreender qual o comportamento esperado pelo SDK, durante o processo transacional.

onBeep()

Deve emitir um feedback sonoro, quando suportado.

onClean()

Os componente utilizados para exibir mensagens e capturar dados ao usuário, devem ser “resetados”. Ou seja, devem ter seus status iniciais restaurados.

onShowError(String message)

Utilizado para exibir uma mensagem de erro ao usuário. O App deve definir a melhor forma para tratar o callback. Contudo, a mensagem deve ser exibida de uma forma que permita ao usuário identificar que se trata de uma mensagem de erro.

Para auxiliar na visualização da mensagem, aplicar uma sleep de 2 segundos, após exibição da mensagem.

onShowMessage(String message)

Deve exibir a mensagem ao usuário, da forma como ela é notificada. Esse callback é utilizado para apresentar mensagens gerais ao usuário, por exemplo, Aguarde, Solicitando autorização, exibir mensagens enviadas pelo autorizador, etc

onRequestConfirmation(String message)

Deve exibir a mensagem e solicitar confirmação ao usuário. Pode ser utilizado para confirmar a intenção de cancelar a execução da transação, por exemplo.

onShowAlert(String message)

Deve exibir a mensagem ao usuário, de preferência, de forma destacada, para enfatizar que se trata de uma mensagem de atenção.

Atualmente, esta função é utilizada no momento de se desfazer uma transação, onde é apresentada uma mensagem indicando que a transação foi desfeita e o cupom deve ser retido. Por ser uma situação importante, é necessário a confirmação de leitura pelo operador, mesmo que o callback não exija uma resposta.

onInput(InputModel inputModel, Result result)

Deve exibir ao usuário um componente para entrada de dados, respeitando as regras e definição do InputModel.

onShowMenu(String label, List items, int selectedOption, MenuResult menuResult)

Deve exibir um componente de seleção, onde o usuário terá a possibilidade de selecionar uma das opções apresentadas ou cancelar a operação.

onMaskInput(boolean clean, String label, String mask, String defaultValue, boolean enterKey, Result result)

Deve solicitar ao usuário a entrada de um dado, utilizando a máscara de edição informada nos parâmetros do callback. Dessa forma, é responsabilidade do App interpretar a máscara e formatar para o usuário.

Observação

A máscara deve ser omitida na resposta.

Exemplo

10/20, deve ser respondida como 1020.

getCanceledStatus()

Deve informar que o usuário sinalizou a intenção de abortar a operação. Normalmente esse callback é chamado em operações de pinpad, ou seja, quando a aplicação está no fluxo de pagamento, interagindo com o usuário através do DTEFMobile para capturar dados do cartão.

Exemplo

Leitura do cartão, captura de senha.

setCanceled(boolean canceled)

Permite que o usuário sinalize que deseja abortar uma operação que ocorre de forma paralela ao fluxo de UI.

Esse callback funciona de forma complementar ao getCanceledStatus(). Para indicar que o fluxo deve ser abortado, o App deve informar valor true.

onShowQRCode(String message, String qrCode, List tags)

Deve exibir o qrCode para o usuário e aguardar até o próximo comando de callback. Normalmente, utilizado no fluxo de pagamento com QrLinx/PIX, onde a lista de tags, pode ser retornada com informações associadas ao QrCode apresentado.

Observação

No caso do fluxo de QrLinx/PIX, a lista de tags irá informar o nome das carteiras de Wallet que podem finalizar (pagar) o QrCode

void setCurrentTransactionInfo(int code, String value)

Adicionado na v2.7.3.4

Esse callback permite passar para a automação informação relacionada à transação corrente.

Parâmetro Descrição
code código da informação passada para a automação
value valor da informação passada para a automação

Os códigos das informações constam na tabela a seguir:

Informação Código
Código da rede autorizadora 25
Campos não utilizados na transação de Frota (formato JSON) 456

Exemplo

code = 25

Para a rede Ticket Log o código é 0156. Assim, nesta callback a automação deve receber code = 25 e value = "0156", indicando que a transação será autorizada pela rede Ticket Log.

code = 456

Quando a automação enviar na transação de Frota produtos que não forem utilizados (devido às regras da adquirente), retorna-se nesta callback code = 456 e value sendo uma String em formato JSON, conforme a estrutura a seguir: "nao_utilizados" : [{"cod":"string", "quantidade":"double", "valorTotal": "double"}].