Pix

Venda

  • Faz-se uso do método TapOnPhone::payByPix.
  • O parâmetro pixNfc é opcional, por padrão é true.
    • Quando true, o QR Code será enviado à antena NFC do dispositivo para leitura pela carteira digital.

Parâmetros

É necessário passar os parâmetros conforme a seguir:

data class PixRequest(
    val amount: Long,
    val referenceId: String? = null, 
    val metadata: String? = null, 
    val pixNfc: Boolean = true
)

amount -> Valor em centavos. Ex: 100 = R$ 1,00
referenceId -> Seu identificador para transação
metadata -> String arbitrária formato json, enviado junto à transação (limitada a 512 caracteres)
pixNfc -> Se true, o QR Code será enviado à antena NFC do dispositivo para leitura pela carteira digital

Exemplo de pagamento

Para cancelar a operação, basta chamar tapOnphone.cancelPix().
Ao cancelar, o callback onError será chamado com a exceção ZoopRequestCanceledException.

val tapOnPhone = TapOnPhone()

// Depois de inicializado com sucesso
coroutineScope.launch {
    tapOnPhone.payByPix(
        pixRequest = PixRequest(
            amount = 10000, // R$ 10,00
            referenceId = UUID.randomUUID().toString(), // Seu id para transação
            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}")
            error.exception?.printStackTrace()
        },
        onQrCode = { qrCode ->
            // Aqui, vc desenha o QRCode na tela do seu app
            println("QR Code: $qrCode")
        }
    )
}

Resposta de sucesso PixApprovedResponse

data class PixApprovedResponse(
    val transactionId: String, // Id da transação na Zoop
    val referenceId: String, // Seu id para transação, se fornecido no request
)

Resposta de erro PixErrorResponse

data class PixErrorResponse(
    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 exception: ZoopException? // exceção lançada pela Zoop, se disponível
)

/**
* Tipo de exceção lançada pela Zoop
* ZoopPaymentException -> Falha geral no processo da criação ou confirmação da transação
* ZoopRequestCanceledException -> Requisição cancelada pelo usuário
* ZoopException -> Exceção não mapeada pelo fluxo transacional
*/