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:
- Inicia tu aplicación
- Pulsa el botón de pago
- La aplicación Get Mini debería iniciarse y pedirte que insertes o acerques una tarjeta
- Completa la transacción en el PIN pad
- 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:
- Devolver un pago - Aprende a devolver un pago anterior
- Gestionar los resultados de la transacción - Guía detallada sobre el procesamiento de datos de respuesta
- Gestión de tickets certificados - Aprende a mostrar y compartir tickets certificados de transacciones
- Parámetros de solicitud - Referencia completa de todas las acciones y parámetros de Intent