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
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"}].