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.
- 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>
- 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ámetro | Descripción | Ejemplo | Tipo |
String total | Obligatorio. Monto total de la transacción. Solo se acepta la moneda CLP y un monto numérico, sin puntos ni caracteres especiales. | 2000 | String |
String intent | Obligatorio. 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_SEND | String |
userTransactionId | Opcional. Puedes incluir un código referencial a la solicitud de pago, reemplazando “DEMO1234” por el código elegido. | Transaction1234 | Alfanumérico |
description | Opcional. 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ículo1 | Alfanumérico |
payment_type | Opcional. 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_tip | Opcional. Maneja la solicitud de propina. | true /false | Booleano. Por defecto, false. |
rdcDTE | Opcional. Utiliza los servicios de Redelcom para generar el documento tributario. | true /false | Booleano. Por defecto, false. |
completeTransactions | Opcional. Debes incluirlo en caso de necesitar consultar el último userTransactionId más adelante, para mantener una conciliación en las transacciones realizadas. | - | Alfanumérico |
- 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();
}
Campo | Descripció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.