Zoop.Initialize(context)
val smartPOSPlugin = Zoop.make<SmartPOSPlugin>()
Zoop.plug(smartPOSPlugin)
Cada dispositivo só precisa fazer essa ativação uma única vez afim 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.
Instalar o app disponível aqui