Criar um Pagamento de Etapa Única
Este guia orienta você no processamento de uma transação de pagamento padrão (Venda) usando a aplicação Get Smart. Uma transação de pagamento cobra um valor específico no cartão do cliente em uma única etapa. Este é o caminho de integração mais comum para aplicações de ponto de venda (PDV).
Requisitos
Antes de começar, certifique-se de que você possui:
- Aplicação Get Smart instalada e configurada no dispositivo Android
- Credenciais de conta de estabelecimento fornecidas pela Get Smart
- Permissão para lançar Intents externos em sua aplicação
Entre em contato com seu representante Get Smart para obter as credenciais de estabelecimento e verificar se sua aplicação Get Smart está configurada corretamente.
Processo da Transação de Pagamento
Esta seção orienta você no processo de criação e execução de uma transação de pagamento com a integração Get Smart App2App. Você aprenderá como lançar o Intent e tratar o resultado da transação.
Passo 1: Criar e Lançar o Intent de Pagamento
Uma transação de pagamento envolve a criação de um Intent com a ação Get Smart, a adição dos parâmetros da transação e o seu lançamento usando startActivityForResult. A aplicação Get Smart processa o pagamento e retorna o resultado para sua aplicação.
A tabela abaixo lista os parâmetros que você precisa incluir em seu Intent:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
amount | double | Sim | O valor total a ser cobrado |
type | int | Sim | Definido como 1 para transações de Venda |
invoice | String | Não | Número do pedido ou identificador opcional para rastreamento |
Sempre envolva o lançamento do Intent em um bloco try-catch para tratar casos em que a aplicação Get Smart não esteja instalada no dispositivo.
O exemplo de código a seguir mostra como criar e lançar um Intent de pagamento:
// Define request code for result handling
static final int REQUEST_CODE_PAYMENT = 1001;
// Initialize the Intent with the Get Smart action
Intent intent = new Intent("es.android.redsys.mPOS.movil.tpvAndroid_PAYMENT_REQUEST");
// Add transaction parameters
intent.putExtra("amount", 25.90);
intent.putExtra("type", 1); // 1 = Sale
intent.putExtra("invoice", "INV-12345"); // Optional tracking ID
// Launch the Intent with error handling
try {
startActivityForResult(intent, REQUEST_CODE_PAYMENT);
} catch (ActivityNotFoundException e) {
// Display a message to the user to install the Get Smart app
new AlertDialog.Builder(this)
.setTitle("Get Smart App Not Found")
.setMessage("Please install and configure the Get Smart application.")
.setPositiveButton("OK", null)
.show();
}Passo 2: Receber e Tratar o Resultado da Transação
Após a aplicação Get Smart processar o pagamento, ela devolve o controle para sua aplicação por meio do método de callback onActivityResult. Você deve verificar se o resultCode é RESULT_OK e extrair os detalhes da transação dos extras do Intent retornado.
Ao final de uma transação bem-sucedida, você receberá um código de autorização e um ID de pedido, que são usados para identificar e rastrear este pagamento.
O exemplo de código a seguir mostra como tratar o resultado da transação:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_PAYMENT) {
if (resultCode == RESULT_OK && data != null) {
// Transaction successful - extract response data
String authCode = data.getStringExtra("AUTHORIZATION");
String orderId = data.getStringExtra("ORDER");
// Process successful payment
} else {
// Transaction cancelled or failed
// Handle error appropriately
}
}
}Para detalhes completos sobre todos os campos de resposta e tratamento de erros, consulte Tratar Resultados da Transação.
Próximos Passos
Agora que você processou com sucesso uma transação de pagamento de etapa única, você pode explorar mais recursos da integração Get Smart App2App:
- Tratar Resultados da Transação - Guia completo sobre o processamento de respostas de transação
- Estornar um Pagamento - Aprenda como reverter transações
- Referência de Parâmetros de Requisição - Especificações completas de parâmetros