Implementação
1) Instanciando a PaytimeTapOnPhoneSdk
Obtendo a instância da SDK:
private val paytimeTapOnPhoneSdkInstance = PaytimeTapOnPhoneSdk.instanceInterface exposta pela PaytimeTapOnPhoneSdk:
interface PaytimeTapOnPhoneSdk {
fun configure(context: Context)
fun activateDevice(
params: TapOnPhoneSdkActivateDeviceParams,
listener: TapOnPhoneSdkActivateDeviceListener
)
fun isDeviceActive(listener: TapOnPhoneSdkIsDeviceActiveListener)
fun deactivateDevice(listener: TapOnPhoneSdkDeactivateDeviceListener)
fun checkDeviceStatus(): TapOnPhoneSdkDeviceStatus
fun getActiveEstablishmentDetails(listener: TapOnPhoneSdkActiveEstablishmentListener)
fun makeTransaction(
params: TapOnPhoneSdkTransactionParams,
listener: TapOnPhoneSdkMakeTransactionListener
)
fun nullifyTransaction(
transactionId: String,
listener: TapOnPhoneSdkNullifyTransactionListener
)
fun listTransactions(listener: TapOnPhoneSdkListTransactionsListener)
fun getTransaction(
transactionId: String,
listener: TapOnPhoneSdkGetTransactionListener
)
fun isNFCSupported(): Boolean
fun isNFCEnabled(): Boolean
fun goToNfcSetting()
}1.1) Configuração
Para começar, é necessário chamar o método de configuração. O funcionamento de todos os outros métodos está atrelado à configuração, já que o context da aplicação é utilizado por todo o SDK.
É necessário que este método seja chamado apenas uma vez. Recomenda-se chamá-lo no lifecycle de onCreate da aplicação.
paytimeTapOnPhoneSdkInstance.configure(applicationContext)1.2) Ativação do dispositivo
Para habilitar o uso da PaytimeTapOnPhoneSdk, é necessário chamar o método de ativação do dispositivo. TapOnPhoneSdkActivateDeviceParams precisa do código do estabelecimento (disponível no cadastro do estabelecimento no portal), e informações como limite da transação e limite para pedir PIN.
paytimeTapOnPhoneSdkInstance.activateDevice(params, listener)listener é uma instância da interface TapOnPhoneSdkActivateDeviceListener, que é usada para tratar as respostas da ativação.
2) Realizar transação
Transações são realizadas através do método makeTransaction.
O método makeTransaction recebe dois parâmetros: params e listener.
params é uma instância da classe TapOnPhoneSdkTransactionParams, que contém os detalhes da transação (por exemplo, a valor da transação, o tipo de crédito - à vista ou parcelado, a quantidade de parcelas e o tipo de transação - CREDIT, DEBIT).
listener é uma instância da interface TapOnPhoneSdkMakeTransactionListener, que é usada para tratar as respostas da transação.
Todos os valores monetários são tratados pela SDK como centavos. Por exemplo, uma transação de R$ 10,99 deve informar o parâmetro amount = 1099.
2.1) Realizar transação CREDIT ou DEBIT
val params = TapOnPhoneSdkTransactionParams(
amount = 1000,
creditType = CreditType.NO_INSTALLMENT,
installment = null, // or an integer
typeTransaction = TypeTransaction.CREDIT
)
paytimeTapOnPhoneSdkInstance.makeTransaction(params, listener)No callback de onSuccess, o parâmetro retornado é o objeto da transação.
val listener = object: TapOnPhoneSdkMakeTransactionListener {
override fun onSuccess(p0: TapOnPhoneSdkTransactionStore) {
// Transação realizada com sucesso
}
override fun onError(
p0: ReturnCodes,
p1: List<String>,
p2: Int?
) {
// Erros
}
}Para testar fluxo de pedido de senha, basta criar uma transação no valor maior do que o CVM Limit informado no método
activateDevice. Ao tentar pagar por aproximação, a SDK exibirá a opção de fornecer a senha.
3) Cancelamento/estorno de transação
Transações são estornadas através do método nullifyTransaction.
O método nullifyTransaction recebe dois parâmetros: transactionId e listener.
transactionId é um campo do tipo String retornado dentro do TapOnPhoneSdkTransactionStore quando uma transação é realizada.
listener é uma instância da interface TapOnPhoneSdkNullifyTransactionListener, que é usada para tratar as respostas da transação.
paytimeTapOnPhoneSdkInstance.nullifyTransaction(transactionId, listener)Observações:
- Apenas transações do mesmo dia podem ser canceladas/estornadas;
4) Listagem de transações (local)
Lista as transações executadas no dispositivo. O retorno do listener de sucesso retorna uma Lista de TapOnPhoneSdkTransactionStore. No momento, nenhuma opção de filtros é oferecida.
paytimeTapOnPhoneSdkInstance.listTransactions(listener)5) Obter transação via ID (local)
Obtém os dados de uma transação local através do transactionId dessa transação. O retorno do listener de sucesso retorna um item do tipo TapOnPhoneSdkTransactionStore ou null.
paytimeTapOnPhoneSdkInstance.getTransaction(
transactionId: String,
listener: TapOnPhoneSdkGetTransactionListener
)6) Outras operações
Sobre as operações da PaytimeTapOnPhoneSdk.
6.1) isDeviceActive(listener: TapOnPhoneSdkIsDeviceActiveListener)
Retorna se o dispositivo está ativo ou não;
6.2) deactivateDevice(listener: TapOnPhoneSdkDeactivateDeviceListener)
Desativa o dispositivo, tirando assim a habilidade do mesmo de fazer transações.
6.3) checkDeviceStatus(): TapOnPhoneSdkDeviceStatus
Retorna informações importantes, como: se o dispositivo é seguro, se está ativo e se pode usar o Tap On Phone.
6.4) getActiveEstablishmentDetails(listener: TapOnPhoneSdkActiveEstablishmentListener)
Obtém dados do estabelecimento ativo para receber vendas no Tap On Phone.
6.5) isNFCSupported(): Boolean
Retorna se o dispositivo possui NFC.
6.6) isNFCEnabled(): Boolean
Retorna se o NFC está ativo.
6.7) goToNfcSetting()
Abre as configurações de NFC do dispositivo.
Updated 4 months ago