Getnet DocsGetnet Docs

Gestionar los resultados de la transacción

Esta guía te muestra cómo gestionar los resultados de las transacciones devueltos por la aplicación Get Mini. Aprenderás a registrar el resultado de la transacción, comprobar el código de resultado y extraer los datos de la transacción de la respuesta.

Requisitos

Antes de seguir los pasos, asegúrate de tener:

Registra siempre tu result launcher antes de iniciar cualquier intent de transacción.

Proceso de gestión de resultados

Esta sección te guía en la implementación del resultado para procesar las respuestas de transacción de la aplicación Get Mini.

Paso 1: Registrar el Activity Result Launcher

Registra un ActivityResultLauncher en el método onCreate() de tu Activity o en la inicialización del Fragment. Este launcher recibirá el resultado cuando la aplicación Get Mini complete la transacción.

El siguiente código muestra cómo registrar el launcher:

ActivityResultLauncher<Intent> paymentLauncher = registerForActivityResult(
    new ActivityResultContracts.StartActivityForResult(),
    result -> {
        // Handle the result here
        handleTransactionResult(result);
    }
);

Paso 2: Comprobar el código de resultado

Cuando la aplicación Get Mini devuelve el control a tu aplicación, comprueba primero el código de resultado. Un código de resultado de RESULT_OK indica que la operación se completó correctamente, mientras que RESULT_CANCELED indica que se canceló o falló.

private void handleTransactionResult(ActivityResult result) {
    if (result.getResultCode() == Activity.RESULT_OK) {
        // Transaction successful
        processSuccessfulTransaction(result.getData());
    } else if (result.getResultCode() == Activity.RESULT_CANCELED) {
        // Transaction cancelled or failed
        processFailedTransaction(result.getData());
    }
}

Paso 3: Extraer los datos de la transacción

Extrae los datos relevantes de los extras del intent según el tipo de operación. Para pagos exitosos, recibirás números de autorización y la ruta del ticket certificado. Para fallos, recibirás mensajes de error y el código de resultado (STATE).

private void processSuccessfulTransaction(Intent data) {
    if (data != null) {
        String authNumber = data.getStringExtra("AUTHORIZATION_NUMBER");
        String order = data.getStringExtra("ORDER");
        String state = data.getStringExtra("STATE");

        // Display success message
        showSuccessMessage("Payment approved. Auth: " + authNumber);
    }
}

private void processFailedTransaction(Intent data) {
    if (data != null) {
        String errorMsg = data.getStringExtra("ERROR_MSG");
        String state = data.getStringExtra("STATE");

        // Display error message
        showErrorMessage("Transaction failed: " + errorMsg);
    }
}

Incluso cuando el código de resultado es RESULT_CANCELED, los extras del intent a menudo contienen información valiosa de depuración en los campos ERROR_MSG y STATE. Analiza siempre los extras para proporcionar comentarios significativos al usuario.

Próximos pasos

Ahora que sabes cómo gestionar los resultados de la transacción, puedes: