# 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

<Callout type="tip">

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.

</Callout>

## 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:

```java
// 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:

```java
@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](/pt/get-smart/get-smart-app2app/transaction-guides/transactions/handle-transaction-results).

### 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](/pt/get-smart/get-smart-app2app/transaction-guides/transactions/handle-transaction-results) - Guia completo sobre o processamento de respostas de transação
* [Estornar um Pagamento](/pt/get-smart/get-smart-app2app/transaction-guides/transactions/refund-a-payment) - Aprenda como reverter transações
* [Referência de Parâmetros de Requisição](https://docs.globalgetnet.com/pt/products/local-processor-spain/get-smart-app2app?doc=getsmart-app2app-request-reference) - Especificações completas de parâmetros