Inicio
Documentación
Recursos
Certificaciones
Comunidad

Recursos

Revisa las actualizaciones de nuestras soluciones y operatividad del sistema o pide soporte técnico.

Comunidad

Recibe las últimas novedades, pide ayuda a otros integradores y comparte tus conocimientos.

Crear intención de pago - Procesamiento de pagos - Mercado Pago Developers

Búsqueda inteligente powered by OpenAI 

Crear una intención de pago

Una intención de pago es un llamado que contiene los detalles de una transacción a realizarse, y que debe ser creada para iniciar una instancia de pago en la aplicación RDCPass.

Para crear una intención de pago, sigue los pasos a continuación.

  1. Agrega el siguiente intent-filter (Activity) en el archivo AndroidManifest.xml de tu proyecto:

android


<intent-filter> 
	<action android:name="android.intent.action.SEND" /> 
	<category android:name="android.intent.category.DEFAULT" /> 
	<data android:mimeType="text/*" /> 
</intent-filter>
  1. Implementa la función “shareRDCPass”, tal como se muestra a continuación:

android


public void shareRDCPass(String total, String intent) { 
	try { 
		Intent sharingIntent = new Intent(intent); 
		sharingIntent.setClassName("redelcom.cl.rdcpass", "redelcom.cl.rdcpass.MainActivity"); 
		sharingIntent.putExtra("packageName", getPackageName()); 
		sharingIntent.putExtra("className", getClass().toString().split(" ")[1]); 
		sharingIntent.putExtra(Intent.EXTRA_TEXT, total); 
		sharingIntent.putExtra("userTransactionId", "DEMO1234");
		sharingIntent.putExtra("description", "Descripcion para tu transacción");
		sharingIntent.putExtra("payment_type", "TIPO_PAGO");
		sharingIntent.putExtra("request_tip", false);
		sharingIntent.putExtra("rdcDTE", false);

		ArrayList<String> arrayListUserTransactionId = new ArrayList<String>(); 
		arrayListUserTransactionId.add("DEMO1233"); 
		sharingIntent.putExtra("completeTransactions", arrayListUserTransactionId);
		startActivity(sharingIntent); 
	} catch (Exception e) { 
		e.printStackTrace(); 
	} 
}

Deberás modificar los siguientes parámetros teniendo en cuenta estas especificaciones:

ParámetroDescripciónEjemploTipo
String totalObligatorio.
Monto total de la transacción. Solo se acepta la moneda CLP y un monto numérico, sin puntos ni caracteres especiales.
2000String
String intentObligatorio.
Corresponderá al tipo de intención a requerir. Para este caso, utilizaremos el parámetro Intent.ACTION_SEND, que se corresponde con la creación de una intención de pago.
Intent.ACTION_SENDString
userTransactionIdOpcional.
Puedes incluir un código referencial a la solicitud de pago, reemplazando “DEMO1234” por el código elegido.
Transaction1234Alfanumérico
descriptionOpcional.
Puedes incluir una descripción del pago, que se verá reflejada en la pantalla de pago. Recuerda reemplazar “Descripción para tu transacción” por la descripción deseada.
Artículo1Alfanumérico
payment_typeOpcional.
Selecciona el medio de pago a utilizar (si esto se omite, se deberá seleccionar en el POS). Deberás reemplazar “TIPO_PAGO”.
• “EFECTIVO”
• “TARJETA”
• “WALLET” (Pagos con QR)
• “SIN_EFECTIVO” (Permite seleccionar en el POS entre: “TARJETAS Y WALLET”)
• “SIN_WALLET” (Permite seleccionar en el POS entre: “EFECTIVO Y TARJETAS”)
Alfanumérico
request_tipOpcional.
Maneja la solicitud de propina.
true /falseBooleano. Por defecto, false.
rdcDTEOpcional.
Utiliza los servicios de Redelcom para generar el documento tributario.
true /falseBooleano. Por defecto, false.
completeTransactionsOpcional.
Debes incluirlo en caso de necesitar consultar el último userTransactionId más adelante, para mantener una conciliación en las transacciones realizadas.
-Alfanumérico
  1. Si quieres recibir la respuesta a la intención de pago creada desde RDCPass, utiliza el siguiente bloque de código:

android


try{ 
	Intent intent = getIntent(); 
	String action = intent.getAction(); 

	JSONObject payload = new JSONObject(intent.getStringExtra(Intent.EXTRA_TEXT)); 
	String userTransactionId = intent.getStringExtra(“userTransactionId”); 
	if (Intent.ACTION_SEND.equals(action)) { 
		// Define what to do with the received data “payload” 
	} 
} catch (Exception e) { 
	e.printStackTrace(); 
} 
CampoDescripción
JSONObject payload = new JSONObject(intent.getStringExtra(Intent.EXTRA_TEXT));Permite recepcionar la respuesta del pago. Sólo debes utilizarlo si quieres recibir la respuesta de RDCPass.
String userTransactionId = intent.getStringExtra(“userTransactionId”);Si utilizaste un userTransactionId, incluye este campo y el identificador elegido. Sólo debes utilizarlo si quieres recibir la respuesta de RDCPass.

Para ver un ejemplo de respuesta completa a la creación de la intención de pago, dirígete a nuestro Anexo: ejemplos de respuestas.

Importante
Aconsejamos almacenar los userTransactionId asociados a cada transacción realizada para facilitar luego la consulta por una intención de pago.