Emitir Comprovantes Digitais
Este guia explica como emitir comprovantes digitais utilizando o TicketDigitalRepository. Esta funcionalidade oferece uma alternativa ecológica à impressão, permitindo o envio de tickets por e-mail ou a exibição através de um código QR.
Para utilizar esses recursos, geralmente você precisará do operationId de uma transação concluída, que está disponível no objeto Transaction retornado por pagamentos ou buscas no histórico.
Enviando Comprovantes por E-mail
Para enviar um comprovante digital diretamente para o endereço de e-mail do cliente, utilize a função sendTicketDigital.
Repositório: TicketDigitalRepository
Função: sendTicketDigital
Parâmetros:
operId: O identificador exclusivo da operação.email: O endereço de e-mail do cliente.
Exemplo de Implementação
suspend fun emailReceipt(operationId: String, customerEmail: String) {
val result = ticketDigitalRepository.sendTicketDigital(
operId = operationId,
email = customerEmail
)
when (result) {
is RepositoryResult.Success -> {
// The request was successfully sent to the host
println("✅ Email sent successfully.")
}
is RepositoryResult.ConnectionError -> {
println("❌ Connection failed. Please check internet.")
}
is RepositoryResult.ProtocolError -> {
println("❌ Protocol Error: ${result.type}")
}
else -> {}
}
}O resultado de sucesso contém um objeto TicketDigitalResult.
Recuperando uma URL para QR Code
Se você preferir exibir um código QR na tela do TPV para que o cliente o escaneie, pode recuperar a URL associada ao comprovante digital utilizando getTicketDigitalURL.
Repositório: TicketDigitalRepository
Função: getTicketDigitalURL
Parâmetros:
operId: O identificador exclusivo da operação.
Exemplo de Implementação
suspend fun getQrUrl(operationId: String) {
val result = ticketDigitalRepository.getTicketDigitalURL(
operId = operationId
)
when (result) {
is RepositoryResult.Success -> {
// Extract the URL from the result
val urlResult = result.data
// Note: Depending on the specific result object structure, accessing the URL property
// (Check Javadoc for exact property name in TicketDigitalUrlResult)
println("✅ Receipt URL retrieved. Ready to generate QR.")
}
is RepositoryResult.ConnectionError -> println("❌ Connection Error")
else -> {}
}
}O resultado de sucesso contém um objeto TicketDigitalUrlResult.
Próximos Passos
- Controle a Impressora do Dispositivo: Saiba como controlar a impressora física caso o cliente prefira o papel.
- Configurar Pagamentos Bizum: Guias de integração para o Bizum.
- Configurar Alipay e WeChat QR: Guias para pagamentos via QR Code.