mPOSPixPaymentRequestBuilder
. private fun pix() {
pixRequest = MPOSPlugin.createPixPaymentRequestBuilder()
.amount(5L)
.callback(object : Callback<mPOSPixPaymentResponse>() {
override fun onStart() {
state = state.copy(status = Status.MESSAGE, message = "Iniciando")
}
override fun onSuccess(response: mPOSPixPaymentResponse) {
state = state.copy(status = Status.MESSAGE, message = "SUCESSO")
}
override fun onFail(error: Throwable) {
val message = if (error.message?.contains("invalid session") == true) {
"Não foi realizado um login"
} else {
error.message
}
state = state.copy(status = Status.MESSAGE, message = message ?: "Falha")
}
})
.messageCallback(object : Callback<MessageCallbackRequestField.MessageData>() {
override fun onSuccess(response: MessageCallbackRequestField.MessageData) {
state = state.copy(status = Status.MESSAGE, message = response.message)
}
override fun onFail(error: Throwable) {
}
})
.qrCodeCallback(object : Callback<QRCodeCallbackRequestField.QRCodeData>() {
override fun onSuccess(response: QRCodeCallbackRequestField.QRCodeData) {
state = state.copy(status = Status.QR_CODE, qrCode = response.data)
}
override fun onFail(error: Throwable) {
}
})
.build()
Zoop.post(pixRequest!!)
}
Responsável pelo fluxo do pagamento, início, processamento, conclusão (sucesso/falha).
onStart
-> Esta callback é sinalizada quando o fluxo do pagamento começa, podendo ser sinalizado pela aplicação o início do processamento.
OnSuccess
-> Neste momento, a transação foi aprovada, e você recebe o objeto do tipo MPOSPixPaymentResponse, contendo um *TransactionData, acessível por response.transactionData
, contendo todos os dados da transação,, para utilizar o request de impressão, será necessário passar este objeto para o request de impressão.
OnFail
-> Falha na transação, é recebido um exception, podendo ser do tipo:
- ZoopPaymentException
-> Falha no fluxo do pagamento, neste caso, passamos a mensagem de erro, podendo ser acessada como exception.message
- ZoopTimeoutException
-> Tempo excedido na operação
- ZoopClosedConnectionException
-> Conexão interrompida
- ZoopNetworkException
-> Falha de conexão
OnComplete
-> Sinaliza o final do fluxo do pagamento, tanto em casos de sucesso/falha.
Referência:
TransactionData(
val value: Int?, // Valor da transação em centavos
val paymentType: Int?, // Tipo de pagamento
val installments: Int?, // Parcelas
val status: String?, // Status (approved/canceled)
val brand: String?, // Marca do cartão ex: Visa
val address: String?, // Endereço do seller
val sellerName: String?, // Nome do seller
val acquiring: String?, // Adquirente
val pan: String?, // PAN do cartão
val autoCode: String?, // Código de autorização
val documentType: String?, // Tipo de documento, CPF/CNPJ
val document: String?, // Documento
val nsu: String?, // NSU
val date: String?, // Data da transação
val hour: String?, // Hora da transação
val cv: String?, // CV
val arqc: String?, // ARQC
val aid: String?, // AID
val sellerReceipt: String?, // Recibo do estabelecimento
val customerReceipt: String?, // Recibo do cliente
val approvalMessage: String? // Mensagem de aprovação ex: APROVADA PELO EMISSOR,
val aidLabel: String? // Label do cartão,
val transactionId: String? // Id da transação,
val receiptId: String? = null // Id do recibo, caso aplicável (hoje, apenas transações Pix),
val pixId: Strting? = null // Id do Pix
)
Responsável por receber o QRCode para exibição no POS.
OnSuccess
-> QRCode a ser exibida pela aplicação para o usuário, acessada como response.data
OnFail
-> Não recebe nenhum dado, esta callback não é chamada.
Responsável pelas mensagens no fluxo do pagamento. ex: “Aproxime, insira ou passe o cartão”
OnSuccess
-> Mensagem a ser exibida pela aplicação para o usuário, acessada como response.message
OnFail
-> Não recebe nenhum dado, esta callback não é chamada.