Pagamento

Venda

  • Faz-se uso do método TapOnPhone::pay.

Parâmetros

É 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)

Exemplo de pagamento

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}")
        },
    )
}

Resposta de sucesso 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
)

Resposta de erro 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
)