Pular para o conteúdo principal
Versão: 1.15.0

Realizando Estornos

Aqui iremos mostrar um exemplo de como realizar um estorno utilizando a RefundActivity.

Criando o launcher

Primeiro, defina um ActivityResultLauncher<Intent>, informado-o um callback para receber e tratar a resposta da RefundActivity da forma que desejar.
O trecho de código de exemplo abaixo está apenas escrevendo os dados retornados em log.

val refundLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
val data = result.data

if (data != null) {
Toast.makeText(this, response.status.toString(), Toast.LENGTH_SHORT).show()

data.getStringExtra("RESULT_OPERATION_STATUS_EXTRA")
?.also { Log.d("TestIntent", "RESULT_OPERATION_STATUS_EXTRA = $it") }

data.getStringExtra("RESULT_MESSAGE_EXTRA")
?.also { Log.d("TestIntent", "RESULT_MESSAGE_EXTRA = $it") }

data.getLongExtra("RESULT_TRANSACTION_TIMESTAMP_EXTRA", -1)
.also { Log.d("TestIntent", "RESULT_TRANSACTION_TIMESTAMP_EXTRA = $it") }

data.getIntExtra("RESULT_TRANSACTION_AMOUNT_EXTRA", -1)
.also { Log.d("TestIntent", "RESULT_TRANSACTION_AMOUNT_EXTRA = $it") }

data.getStringExtra("RESULT_INSTALLMENT_TYPE_EXTRA")
?.also { Log.d("TestIntent", "RESULT_INSTALLMENT_TYPE_EXTRA = $it") }

data.getIntExtra("RESULT_INSTALLMENT_NUMBER_EXTRA", -1)
.also { Log.d("TestIntent", "RESULT_INSTALLMENT_NUMBER_EXTRA = $it") }

data.getStringExtra("RESULT_PAYMENT_TYPE_EXTRA")
?.also { Log.d("TestIntent", "RESULT_PAYMENT_TYPE_EXTRA = $it") }

data.getStringExtra("RESULT_CARD_NUMBER_EXTRA")
?.also { Log.d("TestIntent", "RESULT_CARD_NUMBER_EXTRA = $it") }

data.getStringExtra("RESULT_CARD_BRAND_EXTRA")
?.also { Log.d("TestIntent", "RESULT_CARD_BRAND_EXTRA = $it") }

data.getStringExtra("RESULT_CARD_HOLDER_EXTRA")
?.also { Log.d("TestIntent", "RESULT_CARD_HOLDER_EXTRA = $it") }

data.getStringExtra("RESULT_NSU_HOST_EXTRA")
?.also { Log.d("TestIntent", "RESULT_NSU_HOST_EXTRA = $it") }

data.getStringExtra("RESULT_AUTHORIZATION_CODE_EXTRA")
?.also { Log.d("TestIntent", "RESULT_AUTHORIZATION_CODE_EXTRA = $it") }

data.getStringExtra("RESULT_END_TO_END_ID_EXTRA")
?.also { Log.d("TestIntent", "RESULT_END_TO_END_ID_EXTRA = $it") }

data.getStringExtra("RESULT_CUSTOMER_RECEIPT_EXTRA")
?.also { Log.d("TestIntent", "RESULT_CUSTOMER_RECEIPT_EXTRA = $it") }

data.getStringExtra("RESULT_ESTABLISHMENT_RECEIPT_EXTRA")
?.also { Log.d("TestIntent", "RESULT_ESTABLISHMENT_RECEIPT_EXTRA = $it") }

finish()
}
}

Iniciando a RefundActivity

aviso

Só é possível estornar uma transação que foi realizada pelo Getcard Pay.

Crie uma Intent para a RefundActivity, informe o ID da transação a ser estornada, e utilizando o launcher criado inicie o estorno.

val refundIntent = Intent()
/**
* Para o aplicativo de homologação(debug) utilize o package name com.getcard.hub.getcardpayapp.homolog
* Para o aplicativo de produção(release) utilize o package name com.getcard.hub.getcardpayapp
*/
refundIntent.setClassName("com.getcard.hub.getcardpayapp", "com.getcard.hub.getcardpayapp.ui.RefundActivity")
refundIntent.putExtra("TRANSACTION_ID_EXTRA", "<transaction-id>") // ID da transação a ser estornada
refundIntent.putExtra("FINISH_SCREEN_TIMEOUT_SECONDS_EXTRA", 2) // Tempo de espera, em segundos, da tela de finalização. O padrão é 10 segundos
refundIntent.putExtra("ALLOW_REFUND_CANCELLATION_EXTRA", false) // Indica se o cancelamento de estorno é permitido. O padrão é true
refundIntent.putExtra("AUTO_PRINT_RECEIPTS_EXTRA", false) // Indica se a impressão automática do comprovante é habilitada. O padrão é true

if (refundIntent.resolveActivity(context.packageManager) != null) {
Log.d("Teste", "Iniciando GetCardPay")
refundLauncher.launch(refundIntent)
} else {
Log.e("Teste", "Não existe GetCardPay nesse dispositivo")
Toast.makeText(context, "GetCard Pay não instalado", Toast.LENGTH_SHORT).show()
}

Extras de entrada

Parâmetros para iniciar um pagamento.

EXTRADescriçãoTipo
TRANSACTION_ID_EXTRAID da transação a ser estornadaString
FINISH_SCREEN_TIMEOUT_SECONDS_EXTRATempo de espera, em segundosInt
ALLOW_REFUND_CANCELLATION_EXTRACancelamento de estornoBoolean
AUTO_PRINT_RECEIPTS_EXTRAimpressão automáticaBoolean

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...
RESULT_TRANSACTION_TIMESTAMP_EXTRATimestamp da transaçãoLong...
RESULT_TRANSACTION_AMOUNT_EXTRAValor da transação realizadaInt?...
RESULT_INSTALLMENT_TYPE_EXTRATipo de parcelamento utilizadoString?ONE_TIME, INSTALLMENT_BUYER, INSTALLMENT_SELLER
RESULT_INSTALLMENT_NUMBER_EXTRANúmero de parcelas utilizadasInt?...
RESULT_PAYMENT_TYPE_EXTRATipo de pagamento utilizadoString?CREDIT, DEBIT, PIX, VOUCHER
RESULT_CARD_NUMBER_EXTRANúmero do cartão (parcial)String?...
RESULT_CARD_BRAND_EXTRABandeira do cartão (ex: Visa, Mastercard)String?...
RESULT_CARD_HOLDER_EXTRANome do portador do cartãoString?...
RESULT_NSU_HOST_EXTRANSU do host (número sequencial único)String?...
RESULT_AUTHORIZATION_CODE_EXTRACódigo de autorização da transaçãoString?...
RESULT_END_TO_END_ID_EXTRAEnd-to-end ID (usado em transações PIX)String?...
RESULT_CUSTOMER_RECEIPT_EXTRAComprovante do clienteString...
RESULT_ESTABLISHMENT_RECEIPT_EXTRAComprovante do estabelecimentoString?...
aviso

Todos os campos com ? podem retornar null dependendo do tipo de transação ou do status do processamento.