Crear un pago
Esta guía te orientará en el procesamiento de una transacción de pago estándar (Venta) utilizando la aplicación Get Smart. Una transacción de pago carga un importe específico en la tarjeta de un cliente en un solo paso. Esta es la vía de integración más común para aplicaciones de punto de venta (TPV).
Requisitos
Antes de comenzar, asegúrate de tener:
- Aplicación Get Smart instalada y configurada en el dispositivo Android
Comprueba que la aplicación Get Smart esté instalada y actualizada a la última versión en el dispositivo antes de empezar.
Proceso de la transacción de pago
Esta sección te guía a través del proceso de creación y ejecución de una transacción de pago con la integración Get Smart App2App. Aprenderás cómo lanzar el Intent y gestionar el resultado de la transacción.
Paso 1: Crear y lanzar el Intent de pago
Una transacción de pago implica la creación de un Intent con la acción de Get Smart, la adición de los parámetros de la transacción y su lanzamiento mediante startActivityForResult. La aplicación Get Smart procesa el pago y devuelve el resultado a tu aplicación.
La tabla siguiente enumera los parámetros que debes incluir en tu Intent:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
amount | double | Sí | El importe total a cargar |
type | int | Sí | Establecer en 1 para transacciones de Venta |
invoice | String | No | Número de pedido o identificador opcional para el seguimiento |
Envuelve siempre el lanzamiento del Intent en un bloque try-catch para gestionar los casos en los que la aplicación Get Smart no esté instalada en el dispositivo.
El siguiente ejemplo de código muestra cómo crear y lanzar un Intent de pago:
// 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();
}Paso 2: Recibir y gestionar el resultado de la transacción
Una vez que la aplicación Get Smart procesa el pago, devuelve el control a tu aplicación a través del método de callback onActivityResult. Debes verificar que el resultCode sea RESULT_OK y extraer los detalles de la transacción de los extras del Intent devuelto.
Al final de una transacción exitosa, recibirás un código de autorización y un ID de pedido, que se utilizan para identificar y realizar el seguimiento de este pago.
El siguiente ejemplo de código muestra cómo gestionar el resultado de la transacción:
@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("AUTORIZATION_NUMBER");
String orderId = data.getStringExtra("ORDER");
// Process successful payment
} else {
// Transaction cancelled or failed
// Handle error appropriately
}
}
}Para obtener detalles completos sobre todos los campos de respuesta y la gestión de errores, consulta Gestionar resultados de la transacción.
Próximos pasos
Ahora que has procesado con éxito una transacción de pago, puedes explorar más funciones de la integración Get Smart App2App:
- Gestionar resultados de la transacción - Guía completa sobre el procesamiento de respuestas de transacciones
- Devolver un pago - Aprende cómo revertir transacciones
- Referencia de parámetros de petición - Especificaciones completas de parámetros