Último recibo
Recupere os dados da última transação no Plugin SmartPOS para visualização, tratamento de recibo não encontrado ou reimpressão.
Recupere os dados da última transação realizada no terminal SmartPOS para visualização ou impressão.
Você pode imprimir a última transação passando o objeto retornado para o request de impressão.
Quando usar
Use a consulta do último recibo quando sua aplicação precisar recuperar a transação mais recente armazenada no terminal.
Esse fluxo pode ser útil para:
- exibir os dados da última transação;
- permitir reimpressão de recibo;
- recuperar informações depois de uma falha de interface;
- consultar dados de uma venda, Pix ou cancelamento recente.
Pré-requisitos
Antes de consultar o último recibo:
1. Ative o terminal em Ativação SmartPOS.
2. Inicialize o SDK e plugue o SmartPOSPlugin em Inicialização SmartPOS.
3. Solicite as permissões Android necessárias em tempo de execução.
4. Prepare a interface para exibir os dados da transação ou tratar recibo não encontrado.
Classe utilizada
Para visualizar o último recibo, use o builder de último recibo do Plugin SmartPOS.
A requisição é criada por:
SmartPOSPlugin.createLastReceiptRequestBuilder()Exemplo
val request = SmartPOSPlugin.createLastReceiptRequestBuilder()
.callback(object: Callback<LastReceiptResponse>() \{
override fun onSuccess(response: LastReceiptResponse) {
val transactionData = response.transaction
}
override fun onFail(error: Throwable) {
// Recibo não encontrado
}
\})
.build()
Zoop.post(request)Retorno
A resposta retorna a última transação em um objeto TransactionData.
data class 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
var transactionId: String?, // Id da transação
val receiptId: String? = null, // Id do recibo, caso aplicável (hoje, apenas transações Pix)
val pixId: String? = null, // Id do Pix
val cardFingerprint: String? = null // Token único do cartão.
)O campo
pixIdé um identificador interno da Zoop.
Callbacks
.callback
.callbackControla o fluxo principal da consulta do último recibo.
| Método | Quando ocorre | Ação recomendada |
|---|---|---|
onSuccess | A última transação foi encontrada. | Use response.transaction para exibir ou imprimir o recibo. |
onFail | O recibo não foi encontrado ou a consulta falhou. | Exiba uma mensagem clara e permita retornar ao fluxo anterior. |
Imprimir o último recibo
Depois de recuperar response.transaction, envie o objeto para o fluxo de impressão.
val printRequest = SmartPOSPlugin.createPrintRequestBuilder()
.printData(Printer.PrintData(transactionData = transactionData))
.receiptType(ReceiptType.REPRINT_CUSTOMER)
.callback(object: Callback<SmartPOSPrinterResponse>() \{
override fun onSuccess(response: SmartPOSPrinterResponse) {
handlePrintSuccess()
}
override fun onFail(error: Throwable) {
handlePrinterError()
}
\})
.build()
Zoop.post(printRequest)Use o receiptType adequado ao tipo de via:
ReceiptType.REPRINT_ESTABLISHMENT // Reimpressão de via do estabelecimento
ReceiptType.REPRINT_CUSTOMER // Reimpressão de via do clienteTratamento recomendado
Trate todos os estados da consulta para evitar uma experiência ambígua:
1. Em onSuccess, valide se response.transaction está disponível.
2. Exiba os dados relevantes da transação para o operador.
3. Ofereça reimpressão quando o terminal suportar impressão.
4. Em onFail, informe que o recibo não foi encontrado ou que a consulta falhou.
5. Não assuma que sempre haverá uma transação anterior no terminal.
Checklist do último recibo
Antes de enviar a requisição com Zoop.post(request), confirme:
- O SDK foi inicializado com credenciais.
- O
SmartPOSPluginfoi plugado. - A interface trata sucesso e falha na consulta.
- O app trata o cenário de recibo não encontrado.
- A tela não assume que existe uma transção anterior.
- Para reimpressão, o app usa
Printer.PrintData(transactionData = transactionData). - Para reimpressão, o app define o
ReceiptTypecorreto.
Próximo passo
Depois de implementar a consulta do último recibo, consulte Métodos do fabricante para acessar métodos públicos do dispositivo.
Updated 9 days ago
