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

Realizando Pagamentos

Aqui iremos mostrar um exemplo de como realizar um pagamento utilizando o PaymentActivity.

Criando o launcher

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

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

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

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

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") }

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

finish()
}
}

Iniciando a PaymentActivity

Crie uma Intent para a PaymentActivity, informe os parâmetros da transação, e utilizando o launcher criado inicie o pagamento.

val paymentIntent = Intent()
paymentIntent.setClassName("com.getcard.hub.getcardpayapp", "com.getcard.hub.getcardpayapp.ui.PaymentActivity")
paymentIntent.putExtra("AMOUNT_EXTRA", 5000) // Valor da transação EM CENTAVOS
paymentIntent.putExtra("PAYMENT_TYPE_EXTRA", "CREDIT") // Tipo de pagamento
paymentIntent.putExtra("INSTALLMENT_TYPE_EXTRA", "INSTALLMENT_BUYER") // Tipo de parcelamento
paymentIntent.putExtra("INSTALLMENT_NUMBER_EXTRA", 2) // Quantidade de parcelas

//Verifica se o aplicativo existe no dispositivo
if (paymentIntent.resolveActivity(context.packageManager) != null) {
Log.d("Exemplo", "Iniciando GetCardPay")
paymentLauncher.launch(paymentIntent)
} else {
Log.e("Exemplo", "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çãoTipoValores Possiveis
AMOUNT_EXTRAValor da transação a ser realizadaString ou Int1 a 2147483647
PAYMENT_TYPE_EXTRATipo de pagamento (ex: crédito, débito, PIX)StringCREDIT, DEBIT, PIX, VOUCHER
INSTALLMENT_TYPE_EXTRATipo de parcelamento (ex: loja, administradora)StringONE_TIME, INSTALLMENT_BUYER, INSTALLMENT_SELLER
INSTALLMENT_NUMBER_EXTRANúmero de parcelasString ou Int1 a 2147483647

Extras de saída

Parâmetros recebidos como resposta de um pagamento.

EXTRADescriçãoTipoValores Possiveis
RESULT_TRANSACTION_ID_EXTRAID da transação (apenas se for autorizada)String?UUID?
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?...
RESULT_ACQUIRER_NAME_EXTRANome da adquirente que processou a transaçãoString?...
RESULT_ACQUIRER_SAT_CODE_EXTRACódigo SAT da adquirente que processou a transação.String?...
RESULT_ACQUIRER_CNPJ_EXTRACNPJ da adquirente que processou a transação.String?...
RESULT_NSU_EXTRAIdentificador único da transação.String?...
RESULT_CARD_EXPIRATION_DATE_EXTRAData de expiração do cartão de crédito, no padrão MM/yyString?...
RESULT_REFUND_CODE_EXTRACódigo de referência do estornoString?...
aviso

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