Pular para o conteúdo principal
Versão: 1.4.1
aviso

As impressões via intent estão disponíveis a partir da versão 1.3.0 do aplicativo

Realizando Impressão

Por padrão, o GetCard Pay já realiza a impressão de um comprovante ao final das transação, mas é possível fazer impressões a qualquer momento.

O GetCard Pay suporta impressão de texto e impressão de imagems.

Para realizar a impressão de algo, podemos criar um launcher para nossa activity de impressão e depois inicia-la:

val printLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
val responseOperationStatus = result.data?.getStringExtra("RESULT_OPERATION_STATUS_EXTRA")
val responseMessage = result.data?.getStringExtra("RESULT_MESSAGE_EXTRA")
Toast.makeText(this, "$responseOperationStatus: $responseMessage", Toast.LENGTH_SHORT).show() //Toast
}

Impressão de texto

val printIntent = Intent()
printIntent.setClassName("com.getcard.hub.getcardpayapp", "com.getcard.hub.getcardpayapp.ui.PrintActivity")
printIntent.putExtra("RECEIPT", "String que será impressa")

//Verifica se o aplicativo existe no dispositivo
if (printIntent.resolveActivity(context.packageManager) != null) {
Log.d("Teste", "Iniciando GetCard Pay")
launcher.launch(printIntent)
} else {
Log.e("Teste", "Não existe GetCard Pay nesse dispositivo")
Toast.makeText(context, "App não instalado", Toast.LENGTH_SHORT).show()
}

Impressão de Imagem

Para usar a impressão de imagem, será necessário configurar um FileProvider do Android. Para mais informações, consulte a documentação oficial.

fun getImageUri(context: Context, bitmap: Bitmap): Uri {
val imagesFolder = File(context.cacheDir, "images")
imagesFolder.mkdirs()
val file = File(imagesFolder, "shared_image.png")
FileOutputStream(file).use { out ->
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out)
}
return FileProvider.getUriForFile(context, "${context.packageName}.provider", file)
}

//###############

val uri = getImageUri(context, Mocks.generateReceiptBitmap())

val printIntent = Intent().apply {
setClassName(
"com.getcard.hub.getcardpayapp",
"com.getcard.hub.getcardpayapp.ui.PrintActivity"
)
putExtra("RECEIPT_IMAGE_URI", uri)
flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
clipData = ClipData.newUri(context.contentResolver, "RECEIPT_IMAGE_URI", uri)
}
if (printIntent.resolveActivity(context.packageManager) != null) {
Log.d("Teste", "Iniciando GetCardPay")
launch(printIntent)
} else {
Log.e("Teste", "Não existe GetCardPay nesse dispositivo")
Toast.makeText(context, "App não instalado", Toast.LENGTH_SHORT).show()
}

Extras de entrada

Parâmetros para iniciar um pagamento.

EXTRADescriçãoTipo
RECEIPTString a ser impressaString
RECEIPT_IMAGE_URIURI da imagem que será impressaURI
aviso

Se AMBOS os extras forem utilizados, o GetCard Pay irá priorizar a impressão de imagem.

Extras de saída

Parâmetros recebidos como resposta de um pagamento.

EXTRADescriçãoTipoValores Possiveis
RESULT_OPERATION_STATUS_EXTRAStatus da operação (ex: autorizada, negada, cancelada)StringSUCCESS, DECLINED, FAILED, CANCELLED, UNKNOWN, UNAUTHORIZED
RESULT_MESSAGE_EXTRAMensagem complementar da operaçãoString...