Crie um pagamento em etapa única
Este guia mostra como criar um fluxo de pagamento automatizado que reduz a interação do usuário. Você pré-configura os parâmetros de pagamento e pula as telas de seleção manual. Com um pagamento em etapa única, o terminal processa a transação rapidamente, com o mínimo de toques do usuário.
Antes de começar
Antes de começar, confirme que você tem:
- Leitura de como executar uma chamada de Polling (
getnet://payment/v1/polling) antes de iniciar a transação, para garantir que não há transações pendentes nem processos travados. - Getnet payment app instalado no terminal Android.
- Um
callerIdúnico para correlacionar a requisição com a resposta.
pagamentos em etapa única funcionam melhor quando combinados com o modo de operação calculado (operationMode = "1"), no qual sua aplicação faz todos os cálculos de juros antes de enviar a requisição.
Passo 1: configure e envie o Intent de pagamento
Para criar um fluxo em etapa única, configure o Intent com todos os parâmetros obrigatórios e as flags de automação. A tabela abaixo descreve todos os parâmetros que você pode usar:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
amount | String | Sim | Valor da transação (com duas casas decimais implícitas, ex.: “10000” = $100.00) |
originalAmount | String | Sim | Valor em moeda local para realizar a transação. |
tip | String | Não | Valor da gorjeta a ser somado ao total da transação. A representação decimal é a mesma do parâmetro amount (ex.: “500” = $5.00) |
waiterCode | String | Condicional | Código do garçom para atribuição da gorjeta. Obrigatório quando há gorjeta. |
receiptCode | String | Sim | Código de identificação a ser impresso no comprovante |
callerId | String | Sim | Identificador único para correlacionar a requisição com a resposta |
paymentMethod | String | Não | "1" para cartão, "2" para QR Code. Pula a tela de seleção do meio de pagamento. |
installments | String | Não | Número de parcelas desejado (somente cartão de crédito) |
planId | String | Não | ID do plano de parcelamento. Verifique os planos disponíveis no seu mercado. |
interest | String | Não | Indica se o plano de parcelamento tem juros ("true") ou é sem juros ("false") |
operationMode | String | Não | "1" para modo calculado (sua aplicação trata os juros), "0" para manual (o terminal aplica as regras de negócio). Consulte o guia Estratégia de cálculo de juros. |
skipConfirmation | String | Não | Defina como "true" para pular a tela de revisão de parcelas e juros. "false" (padrão) exibe a tela normalmente - o usuário precisa interagir para prosseguir. |
skipReceipt | String | Não | Defina como "true" para ocultar a tela de visualização do comprovante do cliente após a aprovação. "false" (padrão) exibe a tela normalmente. |
allowPrintCurrentTransaction | String | Não | Defina como "true" para a Getnet cuidar da impressão do comprovante (comportamento padrão). Consulte o guia Responsabilidade de impressão. |
Veja um exemplo básico com os parâmetros obrigatórios:
private val REQUEST_CODE = 1001
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("getnet://payment/v1/payment"))
intent.putExtra("amount", "10000") // $100.00
intent.putExtra("originalAmount", "10000")
intent.putExtra("receiptCode", "987654")
intent.putExtra("callerId", "req_001")
startActivityForResult(intent, REQUEST_CODE)Passo 2: trate a resposta
O terminal retorna a resposta via onActivityResult. Verifique o campo result para confirmar o sucesso:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
val result = data?.extras?.getString("result")
when (result) {
"0" -> {
// Transaction approved
val nsu = data?.extras?.getString("nsu")
val authCode = data?.extras?.getString("authorizationCode")
val amount = data?.extras?.getString("amount")
// Handle success
}
else -> {
// Transaction failed or cancelled
val resultDetails = data?.extras?.getString("resultDetails")
// Handle error
}
}
}
}Parâmetros de resposta
A resposta do terminal inclui os seguintes campos principais:
| Parâmetro | Tipo | Descrição |
|---|---|---|
| result | String | Resultado da transação: "0" para sucesso; outros valores indicam falha ou cancelamento. Consulte a referência Códigos de resultado. |
| resultDetails | String | Mensagem detalhada sobre o resultado da transação (ex.: “APPROVED”, descrições de erro) |
| amount | String | Valor final cobrado com duas casas decimais implícitas |
| tip | String | Valor da gorjeta somado à transação (se informado) |
| waiterCode | String | Código do garçom para atribuição da gorjeta (se informado) |
| receiptCode | String | Código de identificação impresso no comprovante |
| callerId | String | O identificador único enviado na requisição para correlacionar com a resposta |
| nsu | String | Código de autorização da transação Getnet - único por terminal (não pode se repetir no mesmo dia) |
| authorizationCode | String | Código de autorização fornecido pelo emissor do cartão |
| paymentType | String | Tipo de pagamento usado: crédito, débito, voucher etc. |
| brand | String | Bandeira do cartão (ex.: “VISA”, “MASTERCARD”) |
| cardBin | String | Primeiros 8 dígitos do cartão (BIN) |
| cardLastDigits | String | Últimos 4 dígitos do cartão usado |
| inputType | String | Forma de leitura do cartão: "021" (magnético), "051" (chip), "071" (chip por aproximação), "801" (magnético - fallback) |
| gmtDateTime | String | Data e hora GMT da transação (formato: MMDDhhmmss, GMT UTC 0) |
| installments | String | Número de parcelas processadas (se aplicável) |
| planId | String | ID do plano de parcelamento usado na transação (se aplicável) |
| interest | String | Indica se houve aplicação de juros: "true" (com juros) ou "false" (sem juros) |
| automationSlip | String | Dados do comprovante em formato JSON (retornado quando allowPrintCurrentTransaction = "false"). Consulte o guia Responsabilidade de impressão. |
Próximos passos
Depois de criar um pagamento com sucesso, você pode explorar:
- Crie um pagamento parcelado - processe pagamentos com cartão de crédito em planos de parcelamento
- Estratégia de cálculo de juros - entenda os modos de operação para o cálculo de parcelas
- Reembolso e cancelamento - reverta ou cancele transações anteriores
- Responsabilidade de impressão - trate a impressão personalizada de comprovantes na sua aplicação
- Códigos de resultado e estruturas de dados - lista completa dos códigos de status da transação