TapOnPhone::pay
.É necessário passar os parâmetros conforme a seguir:
data class PaymentRequest(
val amount: Long,
val paymentType: PaymentType,
val installments: Int? = null,
val referenceId: String? = null,
val metadata: String? = null,
)
amount
-> Valor em centavos. Ex: 100 = R$ 1,00
paymentType
-> Tipo de pagamento (PaymentType.CREDIT, PaymentType.DEBIT)
installments
-> Quantidade de parcelas (para compra parcelada valor deve ser igual ou maior que 2)
referenceId
-> Seu identificador para transação
metadata
-> String arbitrária enviado junto à transação (limitada a 512 caracteres)
val tapOnPhone = TapOnPhone()
// Depois de inicializado com sucesso
coroutineScope.launch {
tapOnPhone.pay(
payRequest = PaymentRequest(
amount = 10000, // R$ 10,00
paymentType = PaymentType.CREDIT,
installments = 2,
referenceId = UUID.randomUUID().toString(),
metadata = """
{
"clientId": "1234",
"name": "John Doe"
}
""",
),
onApproved = { result ->
println("Pagamento Aprovado! Id: ${result.transactionId}")
},
onError = { error ->
println("Pagamento negado - id: ${error.transactionId}")
println("Mensagem: ${error.message}")
println("Código: ${error.code}")
println("Descrição: ${error.description}")
},
)
}
PaymentApprovedResponse
data class PaymentApprovedResponse(
val transactionId: String, // Id da transação na Zoop
val referenceId: String, // Seu id para transação, se fornecido no request
val cardBrand: CardBrand // Bandeira do cartão
)
PaymentErrorResponse
data class PaymentApprovedResponse(
val transactionId: String?, // Id da transação na Zoop se disponível, caso a falha tenha ocorrido antes de ser enviado para Zoop, será `null`
val referenceId: String?, // Seu id para transação, se fornecido no request
val message: String, // mensagem de erro para o usuário
val code: Int?, // código de erro
val source: String?, // onde ocorreu o erro
val description: String? // descrição mais detalhada do erro
)