import com.zoop.pos.application
Zoop.initialize(context) {
application { // Exceto em dispositivos Android.
id = "{your-app-package-or-name}"
version = "X.Y.Z"
}
}
id
: pacote ou nome da sua aplicação.version
: número de versão da sua aplicação no formato X.Y.Z.
Zoop.plug(DesktopPlugin(Zoop.constructorParameters()))
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.
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.