Parámetros de la petición
Esta referencia enumera las funciones públicas y los parámetros que expone la biblioteca Slim Pack, con sus nombres y firmas exactas.
Esta guía se aplica a Slim Pack.
Las siguientes tablas reflejan el modelo de invocación real utilizado por la biblioteca. Los parámetros se enumeran exactamente como deben aparecer en el código, sin alias, traducciones ni campos inferidos.
Funciones de inicialización y ciclo de vida
Estas son las funciones que se utilizan para inicializar y gestionar el ciclo de vida del TPVPC.
fnDllIniTpvpcLatente
Inicializa el TPVPC y abre la comunicación con el PIN pad. Esta función debe llamarse una vez cuando se inicia la aplicación.
Firma de la función (C#):
int fnDllIniTpvpcLatente(string cComercio, string cTerminal, string cClaveFirma, string cConfPuerto, string cVersion);
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
cComercio | String | Sí | Identificador del comercio (FUC) proporcionado por la entidad. |
cTerminal | String | Sí | Identificador del terminal asignado al PIN pad. |
cClaveFirma | String | Sí | Clave de firma asociada al comercio y al terminal. |
cConfPuerto | String | No | Configuración de puerto. Si está vacío o es nulo, el valor se carga desde la configuración local de TPVPC. |
cVersion | String | No | Versión del protocolo ("5.1", "6.1", "8.1"). Si está vacío, se utiliza la configuración por defecto. |
Valor de retorno: 0 si la inicialización es exitosa. Cualquier otro valor indica un error a nivel de biblioteca.
fnDllParaTpvpcLatente
Detiene la comunicación y libera todos los recursos internos.
Firma de la función:
int fnDllParaTpvpcLatente();
Esta función no tiene parámetros de entrada.
Operaciones de pago y financieras
Todas las operaciones financieras se ejecutan a través de funciones exportadas que reciben parámetros tipados y devuelven un buffer de respuesta XML. Un valor de retorno de 0 solo indica que la operación fue procesada; la autorización siempre debe validarse a partir del XML.
fnDllOperPinPad
Ejecuta un PAGO o PREAUTORIZACION utilizando un PIN pad físico.
Firma de la función:
int fnDllOperPinPad(string cImporte, string cFactura, string cTipoOper, StringBuilder cXMLResp, int iTamMaxResp);
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
cImporte | String | Sí | Importe en formato XXXXXXXXX.XX. |
cFactura | String | Sí | Referencia de la operación del comercio. |
cTipoOper | String | Sí | Tipo de operación: "PAGO" o "PREAUTORIZACION". |
cXMLResp | StringBuffer | Sí | Buffer de salida que recibe la respuesta XML. |
iTamMaxResp | Integer | Sí | Tamaño máximo del buffer (recomendado: al menos 8192). |
fnDllOperManualExt
Ejecuta un PAGO o PREAUTORIZACION mediante la introducción manual de los datos de la tarjeta.
Firma de la función:
int fnDllOperManualExt(string cTarjeta, string cCaducidad, string cCVC2, string cImporte, string cFactura, string cTipoOper, StringBuilder cXMLResp, int iTamMaxResp);
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
cTarjeta | String | Sí | Número de la tarjeta (15–19 dígitos). |
cCaducidad | String | Sí | Fecha de caducidad en formato AAMM. |
cCVC2 | String | Condicional | Código de seguridad, requerido dependiendo de la configuración del comercio. |
cImporte | String | Sí | Importe en formato XXXXXXXXX.XX. |
cFactura | String | Sí | Referencia de la operación del comercio. |
cTipoOper | String | Sí | "PAGO" o "PREAUTORIZACION". |
cXMLResp | StringBuffer | Sí | Buffer XML de salida. |
iTamMaxResp | Integer | Sí | Tamaño máximo del buffer. |
Operaciones de confirmación y devolución
Una confirmación captura una preautorización autorizada previamente; una devolución devuelve fondos. Las dos pasan por la misma familia de funciones, y la que debes llamar depende de dónde vengan la tarjeta y la referencia original.
| Función | Cuándo usarla | Parámetros |
|---|---|---|
fnDllOperComContable | Tienes el pedido original. Sirve a las dos operaciones mediante cTipoOper. | cNumPedido, cRTSOriginal, cImporte, cFactura, cTipoOper, cXMLResp, iTamMaxResp |
fnDllComContableTrj | La tarjeta se lee de nuevo en el PIN pad. | cImporte, cFactura, cNumPedido, cRTSOriginal, cXMLResp, iTamMaxResp |
fnDllDevSinOrigTrj | Devolución sin referencia original, con lectura en el PIN pad. | cImporte, cFactura, cXMLResp, iTamMaxResp |
fnDllOperDevSinOrig | Devolución sin referencia original, con tarjeta introducida manualmente. | cTarjeta, cCaducidad, cImporte, cFactura, cXMLResp, iTamMaxResp |
fnDllOperComContableTerminal | La operación se hizo en otro terminal. | cNumTerminal, cNumPedido, cRTSOriginal, cImporte, cFactura, cTipoOper, cXMLResp, iTamMaxResp |
cTipoOper solo aparece en las dos funciones ComContable que sirven a las dos operaciones, y toma DEVOLUCION o CONFIRMACION. Las demás llevan la operación en su propio nombre.
| Parámetro | Tipo | Descripción |
|---|---|---|
cNumPedido | String | Número de pedido de la operación original. El campo pedido se encuentra en todas las respuestas del TPVPC. Valor obligatorio en modo Transparente. |
cRTSOriginal | String | Identificador RTS de la transacción original, del campo identificadorRTS. Valor opcional; en modo Transparente se recomienda su uso. |
cImporte | String | Importe que se quiere devolver o confirmar, en formato XXXXXXXXX.XX. |
cFactura | String | Campo suministrado por el comercio para asociar una descripción a la operación. El TPVPC no realiza ninguna validación sobre él. |
cTipoOper | String | DEVOLUCION o CONFIRMACION. |
cTarjeta / cCaducidad | String | Número de tarjeta y caducidad, solo en la devolución con entrada manual. |
cNumTerminal | String | Terminal que ejecutó la operación original, solo en la variante entre terminales. |
cXMLResp | Buffer | Buffer que recibe el resultado XML. |
iTamMaxResp | Integer | Tamaño máximo del buffer de respuesta. |
Pagos recurrentes
El modo recurrente es un interruptor de sesión, no un parámetro. Dos funciones lo activan y lo desactivan, y ninguna recibe argumentos:
| Función | Firma | Efecto |
|---|---|---|
fnDllActivaRecurrente | void fnDllActivaRecurrente() | Todas las operaciones a partir de aquí llevan token recurrente. |
fnDllDesActivaRecurrente | void fnDllDesActivaRecurrente() | Las operaciones vuelven a ser pagos normales. |
fnDllIniTpvpcLatente desactiva el modo recurrente, así que hay que activarlo de nuevo después de cada inicialización.
El token llega en el elemento <token> de la respuesta XML del pago.
Validación de autorización
Todas las operaciones financieras se consideran AUTORIZADAS solo si la respuesta XML contiene:
<estado>F</estado>
<resultado>Autorizada</resultado>Cualquier otra combinación debe tratarse como DENEGADA, independientemente de los códigos numéricos o los valores de retorno de la biblioteca.