Getnet DocsGetnet Docs

Inicio rápido: Tu primera transacción

Esta guía te ayuda a procesar tu primera transacción de pago utilizando Get Mini App2App. Crearás un Intent, iniciarás la aplicación Get Mini y gestionarás la respuesta, todo en unos minutos.

Requisitos

Antes de empezar, asegúrate de tener:

  • La aplicación Get Mini instalada en tu dispositivo Android
  • Un dispositivo PIN pad compatible emparejado y listo
  • Un entorno de desarrollo Android con el proyecto de tu aplicación
  • La guía de Requisitos previos y configuración completada

Asegúrate de que el PIN pad está conectado y que la aplicación Get Mini está correctamente configurada antes de realizar las pruebas.

Paso 1: Registrar el ActivityResultLauncher

Primero, registra un ActivityResultLauncher en tu Activity o Fragment. Esto gestionará la devolución de llamada cuando la aplicación Get Mini complete la transacción.

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();
                    }
                }
            }
        );
    }
}

Paso 2: Crear e iniciar el Intent de pago

A continuación, crea un método para construir el Intent de pago e inícialo con el 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();
}

Paso 3: Lanzar el pago

Por último, llama a tu método processPayment cuando el usuario inicie un pago (por ejemplo, cuando pulse un botón de “Pagar ahora”).

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

Paso 4: Probar tu integración

Ejecuta tu aplicación en un dispositivo con la aplicación Get Mini instalada:

  1. Inicia tu aplicación
  2. Pulsa el botón de pago
  3. La aplicación Get Mini debería iniciarse y pedirte que insertes o acerques una tarjeta
  4. Completa la transacción en el PIN pad
  5. Tu aplicación recibe la devolución de llamada con el resultado de la transacción

Solución de problemas

Aplicación Get Mini no encontrada: Si ves una excepción ActivityNotFoundException, la aplicación Get Mini no está instalada. Sigue la guía Gestionar la disponibilidad de la aplicación para indicar a los usuarios que la instalen.

Transacción cancelada: La aplicación Get Mini devuelve RESULT_CANCELED cuando una transacción falla o es cancelada por el usuario. Comprueba el extra ERROR_MSG para obtener más detalles.

PIN pad no conectado: Asegúrate de que el dispositivo PIN pad está correctamente emparejado por Bluetooth y que la aplicación Get Mini está configurada para utilizarlo.

Próximos pasos

¡Enhorabuena! Has procesado tu primera transacción de pago. Para obtener más información: