Emitir comprobantes digitales
Esta guía explica cómo emitir comprobantes digitales utilizando el TicketDigitalRepository. Esta función ofrece una alternativa ecológica a la impresión, permitiendo el envío de tickets por correo electrónico o su visualización mediante un código QR.
Para utilizar estas funciones, generalmente necesitarás el operationId de una transacción completada, disponible en el objeto Transaction devuelto por los pagos o las búsquedas en el historial.
Envío de recibos por correo electrónico
Para enviar un recibo digital directamente a la dirección de correo electrónico de un cliente, utiliza la función sendTicketDigital.
Repositorio: TicketDigitalRepository
Función: sendTicketDigital
Parámetros:
operId: El identificador único de la operación.email: La dirección de correo electrónico del cliente.
Ejemplo de implementación
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 -> {}
}
}El resultado exitoso contiene un objeto TicketDigitalResult.
Obtención de una URL para código QR
Si prefieres mostrar un código QR en la pantalla del TPV para que el cliente lo escanee, puedes recuperar la URL asociada al recibo digital utilizando getTicketDigitalURL.
Repositorio: TicketDigitalRepository
Función: getTicketDigitalURL
Parámetros:
operId: El identificador único de la operación.
Ejemplo de implementación
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 -> {}
}
}El resultado exitoso contiene un objeto TicketDigitalUrlResult.
Próximos pasos
- Controlar la Impresora del Dispositivo: Aprende a controlar la impresora física si no se prefiere la entrega digital.
- Configurar Pagos Bizum: Guías de integración para Bizum.
- Configurar Alipay y WeChat QR: Guías para pagos mediante códigos QR.