Atualizar carga de tabelas

Force uma carga de tabelas no dispositivo usando MPOSPlugin.createTableLoadRequestBuilder(), sem iniciar um fluxo de venda.

Essa funcionalidade não é mandatória. Durante uma transação, caso seja necessário, o dispositivo realiza a carga de tabelas automaticamente. Use este fluxo somente quando precisar forçar a carga antes de prosseguir com uma venda.

Criar e enviar a requisição

Crie a requisição com MPOSPlugin.createTableLoadRequestBuilder(), configure os callbacks e envie a operação com Zoop.post().

val tableLoadRequest = MPOSPlugin.createTableLoadRequestBuilder()
    .callback(object: Callback<mPOSTableLoadResponse>() {
        override fun onStart() {
            state = state.copy(status = Status.MESSAGE, message = "Iniciando")
        }

        override fun onSuccess(response: mPOSTableLoadResponse) {
            state = state.copy(status = Status.MESSAGE, message = "SUCESSO")
        }

        override fun onFail(error: Throwable) {
            val message = if (error.message?.contains("invalid session") == true) {
                "Não foi realizado um login"
            } else {
                error.message
            }

            state = state.copy(status = Status.MESSAGE, message = message ?: "Falha")
        }
    })
    .messageCallback(object: Callback<MessageCallbackRequestField.MessageData>() {
        override fun onSuccess(response: MessageCallbackRequestField.MessageData) {
            state = state.copy(status = Status.MESSAGE, message = response.message)
        }

        override fun onFail(error: Throwable) {
        }
    })
    .build()

Zoop.post(tableLoadRequest)

Comportamento esperado

Ao executar a carga de tabelas, a aplicação deve acompanhar os estados retornados pelos callbacks e exibir as mensagens recebidas para o usuário.

O fluxo pode terminar com sucesso, falha ou encerramento da operação. Em caso de falha por sessão inválida, trate a mensagem invalid session como ausência de login.

Callbacks

A carga de tabelas usa dois callbacks principais:

  • .callback: retorna os estados do fluxo da carga de tabelas.
  • .messageCallback: retorna mensagens do fluxo que devem ser exibidas pela aplicação.

.callback

Use .callback para acompanhar o início, sucesso, falha e finalização do fluxo de carga.

CallbackQuando é chamadoUso recomendado
onStartQuando o fluxo da carga de tabelas começa.Exibir uma mensagem de carregamento, como Iniciando carga de tabelas.
onSuccessQuando a carga de tabelas termina com sucesso.Ler a resposta mPOSTableLoadResponse e informar que a carga foi concluída.
onFailQuando ocorre uma falha na carga de tabelas.Registrar o erro e exibir uma mensagem de falha para o usuário.
onCompleteQuando o fluxo termina, tanto em casos de sucesso quanto de falha.Finalizar estados de carregamento ou limpar controles temporários da interface.

onStart

Sinaliza o início do fluxo da carga de tabelas.

onSuccess

Sinaliza sucesso no fluxo da carga e retorna um objeto mPOSTableLoadResponse.

data class mPOSTableLoadResponse(
    val message: String
)

onFail

Sinaliza falha no fluxo da carga. O callback recebe uma exceção que indica o motivo da falha.

A exceção pode ser de um dos seguintes tipos:

  • ZoopPaymentException: falha no fluxo da carga. A mensagem de erro pode ser acessada por exception.message.
  • ZoopTimeoutException: tempo excedido na operação.
  • ZoopClosedConnectionException: conexão interrompida.
  • ZoopNetworkException: falha de conexão.

onComplete

Sinaliza o final do fluxo da carga, independentemente de sucesso ou falha.

.messageCallback

Use .messageCallback para receber mensagens do fluxo de carga de tabelas.

CallbackQuando é chamadoUso recomendado
onSuccessQuando o SDK envia uma mensagem operacional da carga de tabelas.Exibir response.message na interface da aplicação.
onFailNão é chamado nesse callback.Não implementar ações dependentes de falha neste callback.

onSuccess

Retorna a mensagem que deve ser exibida pela aplicação para o usuário. A mensagem pode ser acessada por response.message.

onFail

Não recebe nenhum dado. Esta callback não é chamada neste fluxo.


Did this page help you?