Ativação

Ativação

  • É necessário inicializar o SDK sem passar as credenciais, a fim de realizar a requisição para recuperar as credenciais.
import com.zoop.pos.application

Zoop.initialize(context) {
    application { // Exceto em dispositivos Android.
        id = "{your-app-package-or-name}"
        version = "X.Y.Z"
    }
}
Dados da aplicação

id: pacote ou nome da sua aplicação.
version: número de versão da sua aplicação no formato X.Y.Z.

  • Neste momento, é necessário injetar o plugin para desktop, conforme abaixo:
Zoop.plug(DesktopPlugin(Zoop.constructorParameters()))
  • Com o SDK inicializado, é necessário fazer uma ativação pelo seu dashboard para recuperar as credenciais*, utilizando um token gerado com a requisição de ativação, conforme exemplo a seguir.

Ativação pelo dashboard

Cada dispositivo só precisa fazer essa ativação uma única vez a fim de criar o dispositivo na nossa base de dados, associando o dispositivo ao estabelecimento, após isso, é possível inicializar o plugin diretamente com as credenciais recebidas.

Exemplo

val activationRequestBuilder = ZoopFoundationPlugin.createDashboardActivationRequestBuilder()
    .tokenCallback(object: Callback<DashboardTokenResponse>() {
        override fun onSuccess(response: DashboardTokenResponse) {
            // "Apresentar token ao usuário: ${response.token}"
            displayActivationToken(response.token)
        }

        override fun onFail(error: Throwable) {
            // "Falha ao requisitar token"
            displayTokenGenerationError()
        }
    }
    .confirmCallback(object: Callback<DashboardConfirmationResponse>() {
        override fun onSuccess(response: DashboardConfirmationResponse) {
            /**
             * Nesse ponto, é necessário guardar as credenciais localmente em um banco de dados/shared preferences,
             * para usar na próxima inicialização, passando como parâmetro na ativação
             */
            saveCredentials(response)
            displayTokenActiveMessage()
        }

        override fun onFail(error: Throwable) {
            /**
             * Caso o login seja cancelado, receberá a resposta aqui, com mensagem "request canceled"
             * loginRequest.cancel()
             */
            // "Apresentar erro na confirmação do token: ${error.message}"
            when (error) {
                is ZoopTimeoutException -> displayTokenExpiredMessage()
                else -> displayGenericTokenActivationMessageError()
            }
        }
    })
    .themeCallback(object: Callback<DashboardThemeResponse>() {
        override fun onSuccess(response: DashboardThemeResponse) {
            /**
             * Aqui você recebe o esquema de cores configurado para o seller no dashboard,
             * e também sinaliza o sucesso no fluxo de ativação do terminal.
             */
            applyBackgroundTheme(response)
        }

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

    Zoop.post(activationRequestBuilder)

*Observação: Você pode armazenar as credenciais localmente com a resposta do confirmCallback. Fazendo isso, é possível informá-las na próxima inicialização sem precisar passar pela ativação via dashboard.