Início Rápido: Sua primeira transação
Este guia ajuda você a processar sua primeira transação de pagamento usando o Get Mini App2App. Você criará um Intent, iniciará o aplicativo Get Mini e lidará com a resposta — tudo em poucos minutos.
Requisitos
Antes de começar, certifique-se de que você tenha:
- O aplicativo Get Mini instalado no seu dispositivo Android
- Um dispositivo PIN pad compatível emparelhado e pronto
- Um ambiente de desenvolvimento Android com o projeto do seu aplicativo
- Concluído o guia de Pré-requisitos e configuração
Certifique-se de que o PIN pad está conectado e que o aplicativo Get Mini está configurado corretamente antes de testar.
Passo 1: Registrar o Activity Result Launcher
Primeiro, registre um ActivityResultLauncher na sua Activity ou Fragment. Isso lidará com o retorno de chamada quando o aplicativo Get Mini concluir a transação.
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import android.content.Intent;
import android.app.Activity;
public class MainActivity extends AppCompatActivity {
private ActivityResultLauncher<Intent> paymentLauncher;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Register the Activity Result Launcher
paymentLauncher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
if (result.getResultCode() == Activity.RESULT_OK) {
// Payment successful
Intent data = result.getData();
if (data != null) {
String authNumber = data.getStringExtra("AUTHORIZATION_NUMBER");
String order = data.getStringExtra("ORDER");
// Display success message to user
Toast.makeText(this,
"Payment Successful! Auth: " + authNumber,
Toast.LENGTH_LONG).show();
}
} else if (result.getResultCode() == Activity.RESULT_CANCELED) {
// Payment failed or cancelled
Intent data = result.getData();
if (data != null) {
String errorMsg = data.getStringExtra("ERROR_MSG");
String state = data.getStringExtra("STATE");
// Display error message to user
Toast.makeText(this,
"Payment Failed: " + errorMsg,
Toast.LENGTH_LONG).show();
}
}
}
);
}
}Passo 2: Criar e iniciar o Intent de pagamento
Em seguida, crie um método para construir o Intent de pagamento e inicie-o com o launcher registrado.
private void processPayment(double amount, String invoiceNumber) {
// Create the payment Intent
Intent paymentIntent = new Intent("es.redsys.paysys.mPOSRedsys_PAYMENT_REQUEST");
// Add required parameters
paymentIntent.putExtra("amount", amount);
paymentIntent.putExtra("invoice", invoiceNumber);
try {
// Launch the Get Mini application
paymentLauncher.launch(paymentIntent);
} catch (ActivityNotFoundException e) {
// Handle case where Get Mini app is not installed
showInstallDialog();
}
}
private void showInstallDialog() {
String playStoreUrl = "[https://play.google.com/store/apps/details?id=es.android.redsys.Get](https://play.google.com/store/apps/details?id=es.android.redsys.Get) Mini.movil";
new AlertDialog.Builder(this)
.setTitle("Get Mini Not Found")
.setMessage("The Get Mini app must be installed to process payments.")
.setPositiveButton("Install", (dialog, which) -> {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(playStoreUrl));
startActivity(intent);
})
.setNegativeButton("Cancel", null)
.show();
}Passo 3: Acionar o pagamento
Por fim, chame o seu método processPayment quando o usuário iniciar um pagamento (por exemplo, quando ele tocar em um botão “Pagar agora”).
// Example: Process a payment of €10.50 with invoice number "ORD-12345"
Button payButton = findViewById(R.id.pay_button);
payButton.setOnClickListener(v -> {
processPayment(10.50, "ORD-12345");
});Passo 4: Testar a sua integração
Execute o seu aplicativo em um dispositivo com o aplicativo Get Mini instalado:
- Inicie o seu aplicativo
- Toque no botão de pagamento
- O aplicativo Get Mini deve iniciar e solicitar que você insira ou aproxime um cartão
- Conclua a transação no PIN pad
- O seu aplicativo recebe o retorno de chamada com o resultado da transação
Solução de problemas
Aplicativo Get Mini não encontrado: Se você vir uma ActivityNotFoundException, o aplicativo Get Mini não está instalado. Siga o guia Gerenciar a disponibilidade do aplicativo para direcionar os usuários a instalá-lo.
Transação cancelada: O aplicativo Get Mini retorna RESULT_CANCELED quando uma transação falha ou é cancelada pelo usuário. Verifique o extra ERROR_MSG para obter detalhes.
PIN pad não conectado: Certifique-se de que o dispositivo PIN pad está emparelhado corretamente via Bluetooth e que o aplicativo Get Mini está configurado para usá-lo.
Próximos passos
Parabéns! Você processou a sua primeira transação de pagamento. Para saber mais:
- Estornar um pagamento - Saiba como estornar um pagamento anterior
- Lidar com os resultados da transação - Guia detalhado sobre o processamento de dados de resposta
- Gerenciamento de recibos - Saiba como exibir e compartilhar recibos de transação
- Parâmetros de solicitação - Referência completa de todas as ações e parâmetros do Intent