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 timeout
val initializationRequest = InitializationRequest(
theme = theme, // Parâmetro opcional
credentials = credentials,
timeout = timeout // 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
tapOnPhone.initialize(initializationRequest)
Para não travar a thread principal, uma opção é envelopar essa requisição em uma thread.
Não há retorno da inicialização, se houver algum erro, será lançada uma exceção do tipo ZoopException
ou KernelException
.
import kotlin.concurrent.thread
thread {
try {
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?
)
* */