Para que os pagamentos sejam realizados, é necessário que o dispositivo esteja ativado no nosso ambiente, o plugin realiza a ativação automaticamente na inicialização. A ativação demora em torno de 2 a 3 segundos e é blocante, ou seja, a thread principal será bloqueada até que a ativação seja concluída.
val credentials = InitializationRequest.Credentials(
clientId = {clientId},
clientSecret = {clientSecret},
marketplace = {marketplace},
seller = {seller},
accessKey = {accessKey}
)
clientId: id do cliente, recebido no processo de onboarding.
clientSecret: secret do cliente, recebido no processo de onboarding.
marketplace: marketplace recebido no processo de onboarding.
seller: seller recebido no processo de onboarding.
accessKey: accessKey recebido no processo de onboarding.
Informações sobre tema
Informações sobre como configurar volume do beep
Informações sobre timeout
val initializationRequest = InitializationRequest(
theme = theme, // Parâmetro opcional
credentials = credentials,
timeout = timeout, // Parâmetro opcional,
beepVolume = beepVolumeConfig // Parâmetro opcional,
)
Você pode passar um objeto indicando que não quer que o plugin exiba as telas de erro, conforme exemplo abaixo:
Este parâmetro é opcional, se não passado, vai como habilitado por padrão.
val parameters = Parameters(showErrorScreen = false)
/*
* data class Parameters(
val showErrorScreen: Boolean
)
* */
Ao prover o contexto, é recomendado passar o applicationContext
e não o contexto da activity.
ex. context.applicationContext
val tapOnPhone = TapOnPhone(context, parameters)
// val tapOnPhone = TapOnPhone(context) // Sem parâmetros
context: context da aplicação Android
val status = tapOnPhone.initialize(initializationRequest)
Para não travar a thread principal, uma opção é envelopar essa requisição em uma thread.
O status da inicialização tem tipo InitializationStatus.
Se a inicialização for bem sucedida, o status será InitializationStatus.SUCCESS.
Se a inicialização falhar, o status será InitializationStatus.FAILED.
Se não foi chamado ainda, o status será InitializationStatus.NOT_INITIALIZED.
Se a inicialização estiver em andamento, o status será InitializationStatus.PROCESSING.
import kotlin.concurrent.thread
thread {
try {
val status = tapOnPhone.initialize(initializationRequest)
} catch (e: KernelException) {
// KernelException()
// val kernelError: KernelError = e.kernelError
} catch (e: ZoopException) {
// Tratar exceção
}
}
/*
* data class KernelError(
val code: Int?,
val name: String?,
val description: String?
)
*
* enum class InitializationStatus {
SUCCESS,
PROCESSING,
NOT_INITIALIZED,
FAILED
}
* */
A SDK também oferece a opção de obter o ID da instância do terminal. Para isso, você pode usar o instanceId
:
val instanceId = tapOnPhone.instanceId
O instanceId só estará disponível após a inicialização bem-sucedida do terminal.