Impressão de Comprovantes

O PayGo Integrado, ao finalizar uma transação, retorna à automação comercial um objeto saidaTransacao. Se a transação foi aprovada, a automação deve realizar a impressão dos comprovantes.

Caso tenha interesse em realizar a impressão do comprovante gráfico, basta verificar se existe comprovante gráfico para a operação realizada (saidaTransacao.comprovanteGraficoDisponivel()) e, se sim, realizar a impressão ou exibição na tela. Segue abaixo a lista de funções que retornam comprovantes. Para mais informações sobre os tipos de comprovantes, consulte aqui.

  • saidaTransacao.obtemComprovanteGraficoLojista()
  • saidaTransacao.obtemComprovanteGraficoPortador()
  • saidaTransacao.obtemComprovanteCompleto()
  • saidaTransacao.obtemComprovanteReduzidoPortador()
  • saidaTransacao.obtemComprovanteDiferenciadoLoja()
  • saidaTransacao.obtemComprovanteDiferenciadoPortador()

Os comprovantes são retornados à automação no formato de String ou lista de Strings. O primeiro passo para realizar a impressão, é converter essa string para Bitmap e então chamar as funções de impressão, conforme exemplo abaixo:

protected fun stringBase64ToBitmap(stringBase64: String?): Bitmap? { val ba = Base64.decode(stringBase64, Base64.DEFAULT) return BitmapFactory.decodeByteArray(ba, 0, ba.size) } protected fun callIPrinter(comprovante: Bitmap?, iPrinter: IPrinter) { viewModelScope.launch(SupervisorJob() + Dispatchers.Default) { kotlin.runCatching { var printing = true val listener = object : IPrinterListener { override fun onSuccess() { printing = false } override fun onError(p0: PrinterError?) { printing = false _printerError.postValue(p0) } } iPrinter.printImage(comprovante, listener) iPrinter.printFormFeed(listener) while (printing) { delay(50) } }.exceptionOrNull()?.let { printerException -> printerException.printStackTrace() _printerError.postValue(PrinterError.ERROR) } } }

Did this page help you?