Integracion TpvpcImplantado
Integracion TpvpcImplantado
Integracion TpvpcImplantado
Integracion TpvpcImplantado
Versión: 2.27 28/08/2014 Referencia Referencia ReferenciaReferencia SM.DE.DNC.MAN.0046SM.DE.DNC.MAN.0046SM.DE.DNC.MAN.0046 SM.DE.DNC.MAN.0046
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014 Versión: 2.27 ii L a p ro p ie d a d i n te le c tu a l d e e s te d o c u m e n to p e rt e n e ce a R e d s y s . Q u e d a p ro h ib id a s u r e p ro d u c c ió n , v e n ta , o c e s ió n a t e rc e ro s
Autorizaciones y control de versión
Autorizaciones y control de versión
Autorizaciones y control de versión
Autorizaciones y control de versión
AUTOR: Redsys VALIDADO POR: APROBADO POR:
EMPRESA: Redsys EMPRESA: Redsys EMPRESA: Redsys
Firma: Firma: Firma:
Fecha: 01/04/2011 Fecha: 01/04/2011 Fecha: 01/04/2011 Comentarios: La gestión de la documentación impresa es responsabilidad de la persona que la imprime.
Las versiones impresas de los documentos no garantizan ser la última versión aprobada. Para consultar la última versión acceder a la base de datos de Alejandría.
Versión Versión Versión
Versión FechaFechaFechaFecha AfectaAfectaAfectaAfecta Breve descripción del cambioBreve descripción del cambio Breve descripción del cambioBreve descripción del cambio 2.8 12/02/10 Documentación Se actualiza el formato del documento. 2.9 12/05/10 Documentación Se añade un la ruta de un ejemplo de
Integración en Visual Basic .Net 2.10 12/05/10 Documentación Arreglados errores en sección consultas
2.11 29/09/10 Documentación
Agregados errores AX-TPVPCXXXX del componente ActiveX de comunicación con PinPad.
2.12 18/10/10 Documentación Se elimina la operativa PAN en claro antes de transacción.
2.13 25/11/10 Documentación Se añade la operativa de devoluciones con lectura.
2.14 01/12/10 Documentación Actualización de códigos de denegación 2.15 28/12/10 Documentación Actualización de códigos de error de
operación
2.16 04/02/11 Documentación Integración versión Linux 2.17 16/02/11 Documentación Integración versión JAVA
2.18 01/03/11 Documentación Se especifica que la devolución con tarjeta no es válida para Windows Mobile
Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014 Versión: 2.27 iii L a p ro p ie d a d i n te le c tu a l d e e s te d o c u m e n to p e rt e n e ce a R e d s y s . Q u e d a p ro h ib id a s u r e p ro d u c c ió n , v e n ta , o c e s ió n a t e rc e ro s
2.19 10/03/11 Anexo III Se añaden varios códigos de error para las diferentes funciones.
2.20 24/05/11 Documentación
Se añade la operativa de repeticiones de pagos con tarjeta en archivo. Nueva plantilla de documentación.
2.21 12/12/11 Documentación Se añade la operativa de reemplazo de preautorizaciones en el interfaz ActiveX.
2.22 19/04/12 Documentación
Se actualizan las etiquetas del mensaje DCC.
Se actualizan referencias a REDSYS. 2.23 6/6/12 Documentación Adaptación imágenes Redsys 2.24 27/7/12 Documentación Inclusión de operativa contactless
2.25 13/06/14 Documentación
Inclusión de recibos de operaciones AMEX, identificación e información añadida. Actualización de información en recibos Contactless.
2.26 23/06/14 Documentación Recibos de Devolucines y Devoluciones sin original
Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014 Versión: 2.27 iv L a p ro p ie d a d i n te le c tu a l d e e s te d o c u m e n to p e rt e n e ce a R e d s y s . Q u e d a p ro h ib id a s u r e p ro d u c c ió n , v e n ta , o c e s ió n a t e rc e ro s
ÍNDICE DE CONTENIDO
1. Introducción ... 1 2. Destinatarios ... 1 3. Integración TpvpcImplantado ... 23.1 Iniciar Comunicación en Modo Transparente ... 3
3.2 Iniciar Comunicación en Modo Interfaz de Usuario ... 4
3.3 Detener la Comunicación ... 5
3.4 Realizar un Pago o una Preautorización utilizando un dispositivo PinPad .... 6
3.5 Realizar un Pago o Preautorización introduciendo manualmente los datos de la tarjeta ... 7
3.6 ¿Cómo validar si la operación resultó AUTORIZADA? ... 10
3.7 Realizar una operación de Confirmación o Devolución ... 11
3.8 ¿Cómo realizar una Devolución/Confirmación desde otro terminal? ... 13
3.9 Realizar una operación de Devolución con lectura desde el Pinpad ... 14
3.10 ¿Cómo validar si la operación resultó AUTORIZADA? ... 16
3.11 Realizar una operación de Devolución sin Original ... 16
3.12 Realizar una operación de Devolución sin Original introduciendo manualmente los datos de la tarjeta ... 18
3.13 ¿Cómo validar si la operación resultó AUTORIZADA? ... 19
3.14 Realizar consultas de Operaciones ... 20
3.15 Realizar Consulta de Totales ... 23
3.16 Realizar Operación DCC ... 25
3.17 Realizar Operación DCC con Entrada Manual de Datos ... 27
3.18 Ejemplo de Operación DCC ... 28
3.19 Realizar una repetición de pago con tarjeta en archivo ... 32
4. ANEXO I. Integración ActiveX ... 34
5. ANEXO II. Integración Windows Mobile (Pocket PC) ... 37
6. ANEXO III. Errores devueltos ... 39
7. ANEXO IV. Versiones Librería ... 45
Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014 Versión: 2.27 v L a p ro p ie d a d i n te le c tu a l d e e s te d o c u m e n to p e rt e n e ce a R e d s y s . Q u e d a p ro h ib id a s u r e p ro d u c c ió n , v e n ta , o c e s ió n a t e rc e ro s
8. ANEXO V. Diccionario de Datos ... 47
9. ANEXO VI. Códigos Error TPVPC ... 51
10. ANEXO VII. Códigos de Denegación ... 58
11. ANEXO VIII. Ejemplos Impresión de Recibos ... 60
11.1 Recibo para una operación realizada con Lectura de Banda o Entrada Manual de Datos ... 60
11.2 Recibo para una operación realizada con una Tarjeta con Chip EMV ... 61
11.3 Recibo para una operación realizada con una Tarjeta DCC ... 62
11.4 Ejemplo de Recibo de una operación en la que se recibe el elemento <ReciboSoloCliente> ... 63
11.5 Ejemplo de Recibo cuando se recibe elemento <autenticadoPorPin> ... 64
11.6 Ejemplo de Recibo cuando se recibe elemento <operContactLess> ... 65
11.7 Ejemplo de Recibo cuando Deniega Tarjeta EMV ... 67
11.8 Ejemplo de Recibo cuando se realiza una operación con tarjeta AMEX ... 69
11.9 Ejemplo de recibo de una devolución ... 71
11.10Ejemplo de recibo de devolución sin original ... 72
12. ANEXO IX. Al llamar a la función de Pago, Preautorización, Confirmación o Devolución nos devuelve el código -2 ... 74
13. ANEXO X. Operativas Adicionales ... 76
13.1 Operativa DCC realizadas directamente en PinPad. ... 76
13.2 Inhibición de recibo. ... 78
13.3 Ejemplo de Integración ActiveX desde página HTML ... 79
13.4 Ejemplo de Integración de Librería .dll desde Aplicación en C# ... 79
13.5 Ejemplo de Integración de ActiveX desde Aplicación Visual Basic 6.0 ... 79
13.6 Ejemplo de Integración de ActiveX desde Aplicación Visual Basic .NET (2005) ... 79
13.7 Ejemplo de Integración de ActiveX desde Aplicación PowerBuilder 11 ... 80
13.8 Ejemplo de Integración de Librería desde C# para Windows Mobile (Pocket Pc) ... 80
13.9 Ejemplo de Integración de ActiveX desde Aplicación Java ... 80
13.10Ejemplo de Integración de Librería en Visual C++ 6.0 ... 81
14. ANEXO XI. Tratamiento Firma Digitalizada ... 82
Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014 Versión: 2.27 vi L a p ro p ie d a d i n te le c tu a l d e e s te d o c u m e n to p e rt e n e ce a R e d s y s . Q u e d a p ro h ib id a s u r e p ro d u c c ió n , v e n ta , o c e s ió n a t e rc e ro s
16. ANEXO XIII. Integración Librería nativa C++ Linux ... 87
16.1 Requisitos mínimos de uso de la librería C++ Linux ... 87
16.2 Integración entorno Linux ... 87
16.3 Ejemplo de Integración de Librería en Linux: Librería dinámica ... 90
17. ANEXO XIV. Integración Librería JAVA ... 92
17.1 Requisitos mínimos de la librería JAVA ... 92
17.2 Desarrollo ... 92
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 1
1.
Introducción
Este documento describe la integración de aplicaciones propietarias usadas en comercios, con TpvpcImplantado. Para facilitar la integración de las distintas aplicaciones, se suministra una librería dinámica (DLL) que es compatible con prácticamente el 100% de los entornos de desarrollos utilizados en sistemas operativos Microsoft Windows.
La librería puede utilizarse en dos Modos:
•
Modo Interfaz de Usuario / Latente,
en este modo, toda intervención o mensajes que se deban mostrar al Titular de la Tarjeta, lo realizará la propia aplicación TpvpcImplantado. La aplicación del comercio, sólo recibirá el xml con el resultado de la operación.•
Modo Transparente,
la aplicación del comercio será la encarga de mostrar todos los mensajes necesarios al comercio, la aplicación o librería TpvpcImplantado no mostrará ningún mensaje.La aplicación TpvpcImplantado cuando se inicia en Modo Latente, recibe las peticiones utilizando un puerto de comunicación local (socket), con lo que si el equipo dispone de Antivirus o algún programa de control, se deberá permitir a la aplicación TpvpcImplantado, actuar como servidor. Esta configuración solo se ha de tener en cuenta cuando se inicie la librería en modo Latente.
Esta librería se irá actualizando en función de los nuevos requerimientos o funcionalidades. Se enviarán notificaciones de estas actualizaciones a la dirección de correo electrónica indicada en la solicitud de alta. Si el sistema detecta que se está usando una versión antigua, también lo informará con un campo especifico en las respuestas, en el Anexo II se indica esta información.
2.
Destinatarios
Este documento está destinado a: • COMERCIOS
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 2
3.
Integración TpvpcImplantado
A continuación se describen todas las funciones exportadas por la librería y un ejemplo de acceso a estas funciones en el lenguaje C# .NET.
Antes de poder realizar cualquier operación, es necesario inicializar la comunicación con TpvpcImplantado, para ello existen dos modos:
1. Modo Transparente, la aplicación del comercio se encargará de interactuar con el usuario.
2. Modo Interfaz de Usuario, la aplicación del comercio pasará los datos a la aplicación TpvpcImplantado, y esta se encargará de interactuar con el usuario.
La operación de inicialización, sólo se debe realizar cada vez que se inicie la aplicación, una vez inicializada, ya no es necesario realizar este proceso.
En las siguientes URLs se pueden obtener las últimas versiones del TpvpcImplantado, y la librería de integración, para aplicaciones propietarias:
Entorno de Real:
http://sis-d.sermepa.es/TPV_PC/implantado.html
Entorno de Pruebas:
http://sas-d.sermepa.es/TPV_PC/implantado.html
Muy importante, aclarar que la versión de librería del entorno de pruebas sólo es válida para este entorno, una vez realizadas las pruebas en el entorno de pruebas, se debe utilizar y distribuir en el caso de que fuese necesario, la versión descargada desde la URL indicada en “Entorno de Real”.
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 3
3.1
Iniciar Comunicación en Modo Transparente
Parámetros de entrada/salida:
cComercio, número de comercio. Este dato es facilitado por la entidad. cTerminal, número de terminal. Este dato es facilitado por la entidad. cClaveFirma, clave de firma del comercio. Este dato es facilitado por la entidad.
cConfPuerto, parámetro opcional que indica la configuración de puerto. A partir de la versión 1.0.4.0, este parámetro no debe indicarse, se recuperará la configuración establecida en el TPVPC.
Para PinPad conectados a puerto serie: COM<puerto>:,19200,N,8,1
Para PinPad conectados a puerto USB, se define dependiendo del modelo:
• Modelo i6280, se debe utilizar la cadena USB,2816,25216,2,2. • Modelo i6550, se debe utilizar la cadena USB,2816,25936,2,2. cVersion, parámetro opcional que indica la versión de protocolo a utilizar. A partir de la versión 1.0.4.0, este parámetro no debe indicarse, se recuperará la configuración establecida en el TPVPC.
Valores posibles “3.0”, “3.1”, “4.0”, “4.1” o “4.2”. Esta versión varía en función de la versión de software del modelo de pinpad. La versión actual es la versión “4.1”.
Valor devuelto:
0, se inició correctamente la aplicación.
Distinto de 0, indica un error en la operación. En el Anexo I, se describen los errores devueltos por todas las funciones.
int fnDllIniTpvpcLatente(LPCTSTR cComercio, LPCTSTR cTerminal, LPCTSTR cClaveFirma, LPCTSTR cConfPuerto, LPCTSTR cVersion);
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllIniTpvpcLatente(String cComercio, String cTerminal, String cClaveFirma, String cConfPuerto, String cVersion);
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 4
Ejemplo de llamada en Visual Basic .NET
Public Declare Function fnDllIniTpvpcLatente Lib
"dllTpvpcLatente.dll" (ByVal cComercio As String, ByVal cTerminal As String, ByVal cClaveFirma As String, ByVal cConfPuerto As String, ByVal cVersion As String) As Integer
3.2
Iniciar Comunicación en Modo Interfaz de Usuario
Parámetros de entrada/salida:
cUsr, nombre o identificador de usuario. Este dato es facilitado por la entidad.
cClave, clave de acceso del usuario. Este dato es facilitado por la entidad.
cModo, indica el modo en el que se inicializará la aplicación TpvpcImplantado.
“1” -> Modo Interfaz de Usuario.
int fnDllIniTpvpcLatenteExt(LPCTSTR cUsr, LPCTSTR cClave, LPCTSTR cModo);
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllIniTpvpcLatenteExt(String cUsuario, String cClave, String cModo);
Ejemplo de llamada en Visual Basic .NET
Public Declare Function fnDllIniTpvpcLatenteExt Lib
"dllTpvpcLatente.dll" (ByVal cUsuario As String, ByVal cClave As String, ByVal cModo As String) As Integer
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 5
Una vez inicializada la aplicación en cualquiera de sus modos, ya se pueden realizar cualquiera de las operaciones ofrecidas por la librería. Muy importante, recordar que esta función sólo es necesario llamarla la primera vez que se inicie la aplicación, o cuando se quiera cambiar los datos de comercio o usuario.
3.3
Detener la Comunicación
No tiene parámetros de entrada.
Fuerza la parada de TPVPC Latente. No devuelve errores.
int fnDllParaTpvpcLatente();
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllParaTpvpcLatente();
Ejemplo de llamada en Visual Basic .NET
Public Declare Function fnDllParaTpvpcLatente Lib
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 6
3.4
Realizar un Pago o una Preautorización utilizando un
dispositivo PinPad
Parámetros de entrada/salida:
cImporte, importe de la transacción en formato XXXXXXXXX.XX. Ejemplo: 1.23, 33.05, 0.01, etc.
cFactura, referencia de compra. Este valor lo puede especificar el comercio para ayudarle a identificar la transacción.
cTipoOper, indica el tipo de operación a realizar. Valores posibles: “PAGO” -> Se realizará un Pago.
“PREAUTORIZACION” -> Se realizará una preautorización.
“PAGO_TJT_ARCHIVO” -> Se realizará un pago inicial con tarjeta en archivo. Sólo para aquellos comercios que tengan contratado este servicio con su entidad.
cXMLResp, buffer, que almacenará una cadena XML con el resultado de la operación de pago o preautorización. El formato de este XML se encuentra detallado en la documentación "Conexión con TPVPC a través de WEB SERVICE" versión 6.0.
iTamMaxResp, indica el tamaño máximo del buffer donde se almacenará la cadena XML con el resultado de la operación. Se recomienda al menos un tamaño de 1024 bytes.
Valor de retorno:
Valor 0, indica que la operación se ha procesado correctamente. Muy importante resaltar que este resultado NO INDICA QUE LA OPERACIÓN ESTË AUTORIZADA, tan sólo es el resultado de su proceso.
Valor distinto de 0, Código de error indicando el motivo del fallo. En el Anexo III, se detallan estos errores.
Siempre que se devuelva el
código -2
, es necesario realizar una consulta de la última operación realizada por el comercio, para ver si la operación resultó autorizada.int fnDllOperPinPad(LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cTipoOper, LPTSTR cXMLResp, int iTamMaxResp);
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 7
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllOperPinPad(String cImporte, String cFactura, String cTipoOper, StringBuilder cXMLResp, int iTamMaxResp);
Ejemplo de llamada en Visual Basic .NET
Public Declare Function fnDllOperPinPad Lib
"dllTpvpcLatente.dll" (ByVal cImporte As String, ByVal
cFActura As String, ByVal cTipoOper As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
3.5
Realizar un Pago o Preautorización introduciendo
manualmente los datos de la tarjeta
Dependiendo del Modo elegido, se dispone de dos métodos distintos. Si se eligió el Modo Transparente, la aplicación del comercio deberá solicitar y validar los datos de la tarjeta.
Modo Transparente:
Parámetros de entrada/salida:
cTarjeta, número de tarjeta. Las tarjetas tienen una longitud entre 15 y 19 caracteres. Campo Opcional en Modo Usuario, si no se pasa lo pedirá el TpvpcImplantado.
cCaducidad, cadena con la caducidad de la tarjeta. El formato es AAMM. Ejemplo 06/13, el formato sería 1306. Campo Opcional en Modo Usuario, si no se pasa lo pedirá el TpvpcImplantado.
cCVC2, cadena con el valor de CVC2. Código de tres dígitos de seguridad que viene impreso generalmente en el reverso de la tarjeta, y que será necesario dependiendo de la actividad del comercio. Campo Opcional en Modo Usuario, si no se pasa lo pedirá el TpvpcImplantado. cImporte, importe de la transacción en formato XXXXXXXXX.XX. Ejemplo: 1.23, 33.05, 0.01, etc.
cFactura, referencia de compra. Este valor lo puede especificar el comercio para ayudarle a identificar la transacción.
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 8
cTipoOper, indica el tipo de operación a realizar. Valores posibles: “PAGO” -> Se realizará un Pago.
“PREAUTORIZACION” -> Se realizará una preautorización.
“PAGO_TJT_ARCHIVO” -> Se realizará un pago inicial con tarjeta en archivo. Sólo para aquellos comercios que tengan contratado este servicio con su entidad.
cXMLResp, buffer que almacenará una cadena XML con el resultado de la operación de pago o preautorización. El formato de este XML se encuentra detallado en la documentación "Conexión con TPVPC a través de WEB SERVICE" versión 6.0.
iTamMaxResp, indica el tamaño máximo del buffer donde se almacenará la cadena xml con el resultado de la operación. Se recomienda al menos un tamaño de 1024 bytes.
Valor de retorno:
Valor 0, indica que la operación se ha procesado correctamente. Muy importante indicar que este resultado NO INDICA QUE LA OPERACIÓN ESTÉ AUTORIZADA, tan sólo es el resultado de su proceso.
Valor distinto de 0, Código de error indicando el motivo del fallo. En el Anexo III, se detallan estos errores.
Siempre que se devuelva el
código -2
, es necesario realizar una consulta de la última operación realizada por el comercio, para ver si la operación resultó autorizada.int fnDllOperManualExt(LPCTSTR cTarjeta, LPCTSTR cCaducidad, LPCTSTR cCVC2, LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cTipoOper, LPTSTR cXMLResp, int iTamMaxResp);
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllOperManualExt(String cTarjeta, String cCaducidad, String cCVC2, String cImporte, String cFactura, String cTipoOper, StringBuilder cXMLResp, int iTamMaxResp);
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 9
Public Declare Function fnDllOperManualExt Lib
"dllTpvpcLatente.dll" (ByVal cTarjeta As String, ByVal
cCaducidad As String, ByVal cCVC2 As String, ByVal cImporte As String, ByVal cFActura As String, ByVal cTipoOper As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
Modo Interfaz de Usuario:
Esta función recibe los mismos parámetros de entrada que la función fnDllOperPinPad.
int fnDllOperManual(LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cTipoOper, LPTSTR cXMLResp, int iTamMaxResp);
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllOperManual(String cImporte, String cFactura, String cTipoOper, StringBuilder cXMLResp, int iTamMaxResp);
Ejemplo de llamada en Visual Basic .NET
Public Declare Function fnDllOperManual Lib
"dllTpvpcLatente.dll" (ByVal cImporte As String, ByVal
cFActura As String, ByVal cTipoOper As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 10
3.6
¿Cómo validar si la operación resultó AUTORIZADA?
En la cadena con el resultado de operación, siempre deben aparecer los siguientes elementos con el valor que se indica a continuación:
<estado>F</estado>
<resultado>Autorizada</resultado>
Si la respuesta no contiene estos valores, debe tomarse como una transacción DENEGADA
Ejemplo de cadena con el resultado de la operación de PAGO o PREAUTORIZACION: <Operaciones version="6.0"> <resultadoOperacion> <tipoPago>PAGO</tipoPago> <importe>1.01</importe> <moneda>978</moneda> <tarjetaComercioRecibo>************0018</tarjetaComercioRecibo> <tarjetaClienteRecibo>************0018</tarjetaClienteRecibo> <marcaTarjeta>2</marcaTarjeta> <caducidad>1210</caducidad> <comercio>777888991</comercio> <terminal>1</terminal> <pedido>10549</pedido> <tipoTasaAplicada>DEB</tipoTasaAplicada> <identificadorRTS>070001070319153828378272</identificadorRTS> <factura>FAC-LATENTE</factura> <fechaOperacion>2007-03-19 15:38:28.484</fechaOperacion> <estado>F</estado> <resultado>Autorizada</resultado> <codigoRespuesta>080922</codigoRespuesta> <Literales> <literal>NO REFUND</literal> </Literales> <firma>664AD45F54C3EB4D06A354E3158A17966012A1B8</firma> <operacionemv>true</operacionemv> <conttrans>001391</conttrans> <sectarjeta>00</sectarjeta> <idapp>A0000000043060</idapp> <codrespauto>00</codrespauto> <resverificacion>0800208000</resverificacion> </resultadoOperacion> </Operaciones>
Como se puede observar en el ejemplo, la transacción resultó AUTORIZADA, ya que aparecen los campos estado con valor F, y resultado con el literal Autorizada. Cualquier otro valor, debe tomarse como una transacción Denegada.
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 11
3.7
Realizar una operación de Confirmación o Devolución
Una confirmación se realiza siempre sobre operaciones de preautorización realizadas con anterioridad.
Una devolución, como su propio nombre indica, realiza el abono o devolución del importe indicado, a la tarjeta con la que se realizó la operación original.
Parámetros de Entrada:
cNumPedido, número de pedido de la operación original. El campo pedido se encuentra en todas las respuestas de peticiones de operaciones realizadas al TPVPC. Valor obligatorio en Modo Transparente.
cRTSOriginal, identificador RTS de la transacción original. El campo identificadorRTS se encuentra en todas las respuestas de peticiones de operaciones realizadas al TPVPC. Valor Opcional, en cualquiera de los modos. En modo Transparente se recomienda su uso.
cImporte, importe que se quiere devolver o confirmar, en formato XXXXXXXXX.XX. Ejemplo: 1.23, 33.05, 0.01, etc. Valor obligatorio en Modo Transparente.
cFactura, campo suministrado por el comercio, para asociar una descripción o valor a la operación. Este valor es generado por el comercio y el TPVPC no realizará ninguna validación sobre el mismo. cTipoOper, indica el tipo de operación a realizar. Puede tomar dos posibles valores:
CONFIRMACION, realizará una confirmación sobre una PREAUTORIZACIÓN que se autorizó con anterioridad.
DEVOLUCION, realizará una devolución de una operación que se autorizó con anterioridad.
Valor obligatorio en Modo Transparente.
cXMLResp, buffer que almacenará una cadena XML con el resultado de la operación de DEVOLUCION o CONFIRMACION. El formato de este XML se encuentra detallado en la documentación "Conexión con TPVPC a través de WEB SERVICE" versión 6.0.
iTamMaxResp, indica el tamaño máximo del buffer donde se almacenará la cadena xml con el resultado de la operación. Se recomienda al menos un tamaño de 1024 bytes.
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 12
Valor de retorno:
Valor 0, indica que la operación se ha procesado correctamente. Muy importante indicar que este resultado NO INDICA QUE LA OPERACIÓN ESTÉ AUTORIZADA, tan sólo es el resultado de su proceso.
Valor distinto de 0, Código de error indicando el motivo del fallo. En el Anexo III, se detallan estos errores.
int fnDllOperComContable(LPCTSTR cNumPedido, LPCTSTR cRTSOriginal, LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cTipoOper, LPTSTR cXMLResp, int iTamMaxResp);
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllOperComContable(String cNumPedido, String cRTSOriginal, String cImporte, String cFactura, String cTipoOper, StringBuilder cXMLResp, int iTamMaxResp);
Ejemplo de llamada en Visual Basic .NET
Public Declare Function fnDllOperComContable Lib
"dllTpvpcLatente.dll" (ByVal cNumPedido As String, ByVal cRTSOriginal As String, ByVal cImporte As String, ByVal cFactura As String, ByVal cTipoOper As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 13
3.8
¿Cómo realizar una Devolución/Confirmación desde
otro terminal?
Cuando se quiere realizar una devolución (o confirmación) desde un Terminal distinto al que realizó la operación original, existen dos opciones:
1º) Devolución/Confirmación a partir del número de pedido de la operación original.
Cuando sólo se dispone del número de pedido para identificar la operación original, es necesario especificar el Terminal por el que se realizó dicha operación. Se encuentra disponible la siguiente función:
int fnDllOperComContableTerminal(LPCTSTR cNumTerminal, LPCTSTR cNumPedido, LPCTSTR cRTSOriginal, LPCTSTR
cImporte, LPCTSTR cFactura, LPCTSTR cTipoOper, LPTSTR cXMLResp, int iTamMaxResp);
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")] public static extern int
fnDllOperComContableTerminal(String cNumTerminal, String cNumPedido, String cRTSOriginal, String cImporte, String cFactura, String cTipoOper, StringBuilder cXMLResp, int iTamMaxResp);
Ejemplo de llamada en Visual Basic .NET
Public Declare Function fnDllOperComContableTerminal Lib "dllTpvpcLatente.dll" (ByVal cNumTerminal As String, ByVal cNumPedido As String, ByVal cRTSOriginal As String, ByVal cImporte As String, ByVal cFactura As String, ByVal
cTipoOper As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
2º) Devolución/Confirmación a partir del identificador RTS de la transacción original.
Cuando se dispone del identificador de operación idRTS, basta con realizar la llamada a la función fnDllOperComContable como si fuese desde el Terminal original, pero una vez inicializado con un Terminal diferente.
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 14
Nota: esta operativa no funcionará si el tpv tiene asignado un código de comercio distinto al de la operación original.
3.9
Realizar una operación de Devolución con lectura
desde el Pinpad
Una devolución, como su propio nombre indica, realiza el abono o devolución del importe indicado, a la tarjeta con la que se realizó la operación original. Para mayor seguridad, se puede obligar a pasar la tarjeta original con la que se hizo el pago, de forma que el cliente esté presente.
Es importante señalar que este tipo de devolución no está soportada en Windows Mobile.
Parámetros de Entrada:
cImporte, importe que se quiere devolver, en formato XXXXXXXXX.XX. Ejemplo: 1.23, 33.05, 0.01, etc. Valor obligatorio en Modo Transparente.
cFactura, campo suministrado por el comercio, para asociar una descripción o valor a la operación. Este valor es generado por el comercio y el TPVPC no realizará ninguna validación sobre el mismo. cNumPedido, número de pedido de la operación original. El campo pedido se encuentra en todas las respuestas de peticiones de operaciones realizadas al TPVPC. Valor obligatorio en Modo Transparente.
cRTSOriginal, identificador RTS de la transacción original. El campo identificadorRTS se encuentra en todas las respuestas de peticiones de operaciones realizadas al TPVPC. Valor Opcional, en cualquiera de los modos. En modo Transparente se recomienda su uso.
cXMLResp, buffer, que almacenará una cadena XML con el resultado de la operación de DEVOLUCION. El formato de este XML se encuentra detallado en la documentación "Conexión con TPVPC a través de WEB SERVICE" version 6.0.
iTamMaxResp, indica el tamaño máximo del buffer donde se almacenará la cadena xml con el resultado de la operación. Se recomienda al menos un tamaño de 1024 bytes.
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 15
Valor de retorno:
Valor 0, indica que la operación se ha procesado correctamente. Muy importante indicar que este resultado NO INDICA QUE LA OPERACIÓN ESTÉ AUTORIZADA, tan sólo es el resultado de su proceso.
Valor distinto de 0, Código de error indicando el motivo del fallo. En el Anexo III, se detallan estos errores.
int fnDllComContableTrj(LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cNumPedido, LPCTSTR cRTSOriginal, LPTSTR cXMLResp, int iTamMaxResp);
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllComContableTrj(String cImporte, String cFactura, String cNumPedido, String cRTSOriginal, StringBuilder cXMLResp, int iTamMaxResp);
Ejemplo de llamada en Visual Basic .NET
Public Declare Function fnDllComContableTrj Lib
"dllTpvpcLatente.dll" (ByVal cImporte As String, ByVal cFactura As String, ByVal cNumPedido As String, ByVal cRTSOriginal As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 16
3.10
¿Cómo validar si la operación resultó AUTORIZADA?
En la cadena con el resultado de operación, siempre deben aparecer los siguientes elementos con el valor que se indica a continuación:
<estado>F</estado>
<resultado>Autorizada</resultado>
Si la respuesta no contiene estos valores, debe tomarse como una transacción DENEGADA.
Ejemplo de cadena con el resultado de la operación de DEVOLUCION o CONFIRMACION: <Operaciones version="6.0"> <comunicacionContable tipo="DEVOLUCION"> <resultadoComunicacion> <importe>1.01</importe> <moneda>978</moneda> <comercio>777888991</comercio> <terminal>1</terminal> <pedido>10550</pedido> <factura>FAC_384572</factura> <identificadorRTS>070001070319164116378278</identificadorRTS> <pedidoBase>10549</pedidoBase> <fechaOperacion>2007-03-19 16:41:16</fechaOperacion> <estado>F</estado> <resultado>Autorizada</resultado> <firma>DBBCA72FC4A5FEBB76E3260789DDCF51A3903D4F</firma> </resultadoComunicacion> </comunicacionContable> </Operaciones>
En el ejemplo descrito la operación ha resultado autorizada.
3.11
Realizar una operación de Devolución sin Original
Para realizar este tipo de operación, el comercio debe tener previamente habilitada la operativa. Estas devoluciones realizan el abono del importe especificado en la tarjeta leída desde el Pinpad. Como su nombre indica, esta operación no valida contra ninguna operación realizada con anterioridad.
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 17
cImporte, importe que se quiere devolver o confirmar, en formato XXXXXXXXX.XX. Ejemplo: 1.23, 33.05, 0.01, etc. Valor obligatorio en Modo Transparente.
cFactura, campo suministrado por el comercio, para asociar una descripción o valor a la operación. Este valor es generado por el comercio y el TPVPC no realizará ninguna validación sobre el mismo. cXMLResp, buffer que almacenará una cadena XML con el resultado de la operación de DEVOLUCION.
iTamMaxResp, indica el tamaño máximo del buffer donde se almacenará la cadena xml con el resultado de la operación. Se recomienda al menos un tamaño de 1024 bytes
Valor de retorno:
Valor 0, indica que la operación se ha procesado correctamente. Muy importante indicar que este resultado NO INDICA QUE LA OPERACIÓN ESTÉ AUTORIZADA, tan sólo es el resultado de su proceso.
Valor distinto de 0, Código de error indicando el motivo del fallo. En el Anexo III, se detallan estos errores.
int fnDllDevSinOrigTrj (LPCTSTR cImporte, LPCTSTR cFactura, LPTSTR cXMLResp, int iTamMaxResp)
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllDevSinOrigTrj(String cImporte, String cFactura, StringBuilder cXMLResp, int iTamMaxResp);
Ejemplo de llamada en Visual Basic .NET:
Public Declare Function fnDllDevSinOrigTrj Lib
"dllTpvpcLatente.dll" (ByVal cImporte As String, ByVal cFactura As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 18
3.12
Realizar una operación de Devolución sin Original
introduciendo manualmente los datos de la tarjeta
Para realizar este tipo de operación, el comercio debe tener previamente habilitada la operativa. Estas devoluciones realizan el abono del importe especificado en la tarjeta indicada. Como su nombre indica, esta operación no valida contra ninguna operación realizada con anterioridad.
Parámetros de entrada:
cTarjeta, número de tarjeta. Las tarjetas tienen una longitud entre 15 y 19 caracteres. Campo Opcional si está trabajando en Modo Interfaz de Usuario, en este modo lo solicitará la aplicación TpvpcImplantado.
cCaducidad, cadena con la caducidad de la tarjeta. El formato es AAMM. Ejemplo 06/13, el formato sería 1306. Campo Opcional si está trabajando en Modo Interfaz de Usuario, en este modo lo solicitará la aplicación TpvpcImplantado.
cImporte, importe que se quiere devolver o confirmar, en formato XXXXXXXXX.XX. Ejemplo: 1.23, 33.05, 0.01, etc. Valor obligatorio en Modo Transparente.
cFactura, campo suministrado por el comercio, para asociar una descripción o valor a la operación. Este valor es generado por el comercio y el TPVPC no realizará ninguna validación sobre el mismo. cXMLResp, buffer que almacenará una cadena XML con el resultado de la operación de DEVOLUCION.
iTamMaxResp, indica el tamaño máximo del buffer donde se almacenará la cadena xml con el resultado de la operación. Se recomienda al menos un tamaño de 1024 bytes
Valor de retorno:
Valor 0, indica que la operación se ha procesado correctamente. Muy importante indicar que este resultado NO INDICA QUE LA OPERACIÓN ESTÉ AUTORIZADA, tan sólo es el resultado de su proceso.
Valor distinto de 0, Código de error indicando el motivo del fallo. En el Anexo III, se detallan estos errores
int fnDllOperDevSinOrig(LPCTSTR cTarjeta, LPCTSTR cCaducidad, LPCTSTR cImporte, LPCTSTR cFactura, LPTSTR cXMLResp, int iTamMaxResp)
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 19
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllOperDevSinOrig(String cTarjeta, String cCaducidad, String cImporte, String cFactura,
StringBuilder cXMLResp, int iTamMaxResp);
Ejemplo de llamada en Visual Basic .NET :
Public Declare Function fnDllOperDevSinOrig Lib
"dllTpvpcLatente.dll" (ByVal cTarjeta As String, ByVal cCaducidad As String, ByVal cImporte As String, ByVal cFactura As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
3.13
¿Cómo validar si la operación resultó AUTORIZADA?
En la cadena con el resultado de operación siempre deben aparecer los siguientes elementos con el valor que se indica a continuación:
<estado>F</estado>
<resultado>Autorizada</resultado>
Si la respuesta no contiene estos valores, debe tomarse como una transacción DENEGADA
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 20
Ejemplo de cadena con el resultado de la operación de DEVOLUCION SIN ORIGINAL: <Operaciones version="6.1"> <comunicacionContable tipo="DEVOLUCION"> <resultadoComunicacion> <importe>1.01</importe> <moneda>978</moneda> <comercio>123443210</comercio> <terminal>1</terminal> <pedido>11205</pedido> <identificadorRTS>070001070413140553434193</identificadorRTS> <marcaTarjeta>1</marcaTarjeta> <fechaOperacion>2007-04-13 14:05:53</fechaOperacion> <estado>F</estado> <resultado>Autorizada</resultado> <firma>09BCDC2AB6B9178D3F3ADF7EBEC879BE9F631D80</firma> </resultadoComunicacion> </comunicacionContable> </Operaciones>
En este ejemplo la operación ha resultado autorizada.
3.14
Realizar consultas de Operaciones
Esta operativa permite realizar consultas de operaciones sobre el comercio-terminal en la función de Inicialización. Los XML de respuesta se describen con detalle en el documento TPVPC WS Consultas. En este documento se mostrarán algunos XML de ejemplo, pero no se entrará en detalle en la explicación de sus campos.
Parámetros de entrada:
cNumPedido, número de pedido de la operación a recuperar. Se puede especificar un valor NULL si no se desea realizar búsquedas por este campo.
cRTS, identificador de transacción, sólo se devolverán los datos de la operación solicitada. Se puede especificar un valor NULL, si no se desea realizar búsquedas por este campo. Si se indica este campo, se ignorará el resto de los campos especificados.
cFactura, campo de factura o referencia que puede especificar el comercio en las operaciones realizadas en el TPVPC, o NULL, si no se desea realizar búsquedas por este campo.
cFechaIni, fecha de inicio de operación. El formato debe ser el siguiente: YYYYMMdd HHmmss, 20070415 172905. Se puede especificar un valor NULL, si no se desea realizar búsquedas por este campo.
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 21
cFechaFin, fecha de fin de operación. El formato debe ser el siguiente: YYYYMMdd HHmmss, 20070415 182905. Se puede especificar un valor NULL, si no se desea realizar búsquedas por este campo.
cTipo, tipo de Operación. Se pueden indicar los siguientes valores: -> PAGO
-> PREAUTORIZACION -> CONFIRMACION -> DEVOLUCION
Se puede especificar un valor NULL, si no se desea realizar búsquedas por este campo.
cResultado, resultado de la operación. Se podrá consultar las operaciones Autorizadas o Denegadas. Se pueden indicar los siguientes valores:
-> AUTORIZADA, recupera sólo las operaciones autorizadas. -> DENEGADA, recupera sólo las operaciones denegadas. Se puede especificar un valor NULL, si no se desea realizar búsquedas por este campo.
cNumPagina, indica el número de página a recuperar. El WebService realiza una paginación de consulta, aquí se indica, en caso de devolver varias páginas, el número de página a recuperar. Si se quiere recuperar la primera página, se debe indicar el número 0.
cXMLResp, buffer que almacenará la cadena con el XML de respuesta recibido desde el TPVPC. El XML se describe en detalle en el documento TPVPC WS Consultas 2d1.
iTamMaxResp, tamaño máximo de la cadena que puede almacenar el buffer cXMLResp.
Valor de retorno:
= 0, la operación se procesó correctamente. Este resultado no indica que se haya autorizado o denegado, simplemente que la petición se ha realizado con éxito. Para ver el resultado de la operación se debe analizar la respuesta recibida en cXMLResp.
!= 0, Código de error indicando el motivo del fallo. Descripción de los posibles códigos de error:
-1 No se han establecido correctamente los datos de configuración. Es necesario volver a llamar a la función fnDllIniTpvpcLatente. Si el problema persiste contactar con la entidad.
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 22
-2 Se produjo un error interno del sistema al realizar la operación. Si el problema persiste contacte con su entidad. -3 Error en los parámetros de entrada. Si el problema persiste contactar con la entidad.
int fnDllOperConsulta(LPCTSTR cNumPedido, LPCTSTR cRTS, LPCTSTR cFactura, LPCTSTR cFechaIni, LPCTSTR cFechaFin,
LPCTSTR cTipo, LPCTSTR cResultado, LPCTSTR cNumPagina, LPTSTR cXMLResp, int iTamMaxResp);
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllOperConsulta(String cNumPedido, String cRTS, String cFactura, String cFechaIni, String
cFechaFin, String cTipo, String cResultado, String cNumPagina, StringBuilder cXMLResp, int iTamMaxResp);
Ejemplo de llamada en Visual Basic .NET
Public Declare Function fnDllOperConsulta Lib
"dllTpvpcLatente.dll" (ByVal cNumPedido As String, ByVal cRTS As String, ByVal cFactura As String, ByVal cFechaIni As
String, ByVal cFechaFin As String, ByVal cTipo As String, ByVal cResultado As String, ByVal cNumPagina As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
Ejemplo de respuesta:
<consultasversion="2.1"> <resultadoConsulta> <operacion>
<tipoOper>Autorizacion</tipoOper> <tarjeta>************5532</tarjeta> <caducidad>0702</caducidad> <importe>0.01</importe> <moneda>978</moneda> <terminal>1</terminal> <pedido>1110</pedido> <identificadorRTS>070001070423122035346136</identificadorRTS> <fechaOperacion>2007-04-23 12:20:35.628</fechaOperacion> <factura>IDOPER_PINPAD</factura>
<estado>F</estado>
<resultado>AUTORIZADA</resultado> <codigoRespuesta>0</codigoRespuesta>
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 23
</operacion> <operacion>
<tipoOper>Autorizacion</tipoOper> <tarjeta>************5532</tarjeta> <caducidad>0702</caducidad> <importe>0.01</importe> <moneda>978</moneda> <terminal>1</terminal> <pedido>1118</pedido> <identificadorRTS>070001070423094540346125</identificadorRTS> <fechaOperacion>2007-04-23 09:45:40.436</fechaOperacion> <factura>IDOPER_PINPAD</factura>
<estado>F</estado>
<resultado>AUTORIZADA</resultado> <codigoRespuesta>0</codigoRespuesta> </operacion> <numoperaciones>2</numoperaciones> <numpagina>1</numpagina> <totalpaginas>1</totalpaginas> <comercio>777888991</comercio> <timestamp>20070423 125118</timestamp>
<firma>8E7C43989E4586F3CA3ED781EF3CB2E1270C0075</firma> </resultadoConsulta>
</consultas>
3.15
Realizar Consulta de Totales
Esta operativa devuelve el total de operaciones realizadas por el comercio/terminal en la fecha indicada.
Parámetros de entrada:
cFecha, fecha del día para recuperar los totales. Si no se especifica, se utilizará el día actual.
cDesgloseVM, "S" indica que se realice un desglose por marca de Tarjeta Visa / Master.
cDesgloseMarcas, "S" indica que se realice un desglose por Marcas de Tarjeta.
Valor de retorno:
= 0, la operación se procesó correctamente. Este resultado no indica que se haya autorizado o denegado, simplemente que la petición se ha realizado con éxito. Para ver el resultado de la operación se debe analizar la respuesta recibida en cXMLResp.
!= 0, Código de error indicando el motivo del fallo. Descripción de los posibles códigos de error:
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 24
-1 No se han establecido correctamente los datos de configuración. Es necesario volver a llamar a la función fnDllIniTpvpcLatente. Si el problema persiste contactar con la entidad.
-2 Se produjo un error interno del sistema al realizar la operación. Si el problema persiste contacte con su entidad.
-3 Error en los parámetros de entrada.
int fnDllOperTotales(LPCTSTR cFecha, LPTSTR cDesgloseVM, LPTSTR cDesgloseMarcas, LPTSTR cXMLResp, int iTamMaxResp)
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllOperTotales(String cFecha, String cDesgloseVM, String cDesgloseMarcas, StringBuilder cXMLResp, int iTamMaxResp)
Ejemplo de llamada en Visual Basic .NET
Public Declare Function fnDllOperTotales Lib
"dllTpvpcLatente.dll" (ByVal cFecha As String, ByVal
cDesgloseVM As String, ByVal cDesgloseMarcas As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
Ejemplo de Respuesta: <consultasversion="2.0"> <resultadoConsultaTotales> <Totales> <fecha>2007-04-23</fecha> <moneda>978</moneda> <formato_moneda>#.##0,00</formato_moneda> <Autorizaciones> <autorizadas>0</autorizadas> <denegadas>0</denegadas> <importe_autorizadas>0.0</importe_autorizadas> </Autorizaciones> <Devoluciones> <autorizadas>0</autorizadas> <denegadas>0</denegadas> <importe_autorizadas>0.0</importe_autorizadas> </Devoluciones> <PreAutorizaciones> <autorizadas>0</autorizadas> <denegadas>0</denegadas>
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014 Versión: 2.27 25 <importe_autorizadas>0.0</importe_autorizadas> </PreAutorizaciones> <Confirmaciones> <autorizadas>0</autorizadas> <denegadas>0</denegadas> <importe_autorizadas>0.0</importe_autorizadas> </Confirmaciones> <total_neto>0.00</total_neto> </Totales> <timestamp>20070423 085423</timestamp>
<firma>D8C17407BFB547749864A68250B611F41377C502</firma> </resultadoConsultaTotales>
</consultas>
3.16
Realizar Operación DCC
Realiza una operación de Pago o Preautorización utilizando la opción Pago en Divisas o DCC (Dinamyc Currency Conversion). Este método sólo es llamado con los datos de respuesta obtenidos en la llamada a la función fnDllOperPinPad.
Parámetros de entrada/salida:
cImporte, importe de la transacción en formato XXXXXXXXX.XX. Ejemplo: 1.23, 33.05, 0.01, etc. Mismo valor que el que se utilizó en fnDllOperPinPad
cFactura, referencia de compra. Este valor lo puede especificar el comercio. Mismo valor que el que se utilizó en fnDllOperPinPad
cTipoOper, operación Pago o Preautorización. Mismo valor que el que se utilizó en fnDllOperPinPad
cCodDivisa, código de divisa en el que se desea realizar la transacción. Se debe especificar el código de la moneda que ha seleccionado el Titular, es decir, el valor del campo codigoDivisa, si el titular seleccionó pagar en su moneda, o el campo monedaOriginal.
cXMLResp, Devuelve un XML de Respuesta con el resultado de la operación de pago o preautorización. La librería validará que la firma recibida es correcta. El formato de este XML se encuentra detallado en la documentación "Conexión con TPVPC a través de WEB SERVICE" versión 6.0.
iTamMaxResp, indica el tamaño máximo del buffer de respuesta. Se recomienda al menos un tamaño de 1024 bytes.
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 26
En caso de que la operación se enviase correctamente la función devolverá 0. Si el TPVPC devuelve un XML con un código de error, la función también devolverá 0, ya que este código sólo indica si se pudo enviar correctamente la petición.
= 0, petición realizada correctamente. Es necesario revisar el XML con la respuesta de la transacción.
!= 0, Código de error indicando el motivo del fallo. Descripción de los posibles códigos de error:
-1 No se han establecido correctamente los datos de configuración. Es necesario volver a llamar a la función fnDllIniTpvpcLatente. Si el problema persiste contactar con la entidad.
-2 Se ha sobrepasado el TimeOut especificado por la aplicación.
-3 Error del Sistema. Es necesario reiniciar aplicación. -4 Los datos de entrada no tienen un formato correcto. Revisar lista de parámetros.
int fnDllOperPinPadDCC(LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cTipoOper, LPCTSTR cCodDivisa, LPTSTR cXmlResp, int iTamMaxResp);
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllOperPinPadDCC(String cImporte, String cFactura, String cTipoOper, String cCodDivisa,
StringBuilder cXMLResp, int iTamMaxResp);
Ejemplo de llamada en Visual Basic .NET:
Public Declare Function fnDllOperPinPadDCC Lib
"dllTpvpcLatente.dll" (ByVal cImporte As String, ByVal cFActura As String, ByVal cTipoOper As String, ByVal cCodDivisa As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 27
3.17
Realizar Operación DCC con Entrada Manual de Datos
Realiza una operación de Pago o Preautorización utilizando la opción Pago en Divisas o DCC (Dinamyc Currency Conversion). Este método sólo es llamado con los datos de respuesta obtenidos en la llamada a la función fnDllOperManualExt.
Parámetros de entrada/salida:
cCodDivisa, código de divisa en el que se desea realizar la transacción. Se debe especificar el código de la moneda que ha seleccionado el Titular, es decir, el valor del campo codigoDivisa, si el titular seleccionó pagar en su moneda, o el campo monedaOriginal.
cXMLResp, Devuelve un XML de Respuesta con el resultado de la operación de pago o preautorización. La librería validará que la firma recibida es correcta. El formato de este XML se encuentra detallado en la documentación "Conexión con TPVPC a través de WEB SERVICE" versión 6.0.
iTamMaxResp, indica el tamaño máximo del buffer de respuesta. Se recomienda al menos un tamaño de 1024 bytes.
Valor de retorno:
En caso de que la operación se enviase correctamente la función devolverá 0. Si el TPVPC devuelve un XML con un código de error, la función también devolverá 0, ya que este código sólo indica si se pudo enviar correctamente la petición.
= 0, petición realizada correctamente. Es necesario revisar el XML con la respuesta de la transacción.
!= 0, Código de error indicando el motivo del fallo. Descripción de los posibles códigos de error:
-1 No se han establecido correctamente los datos de configuración. Es necesario volver a llamar a la función fnDllIniTpvpcLatente. Si el problema persiste contactar con la entidad.
-2 Se ha sobrepasado el TimeOut especificado por la aplicación.
-3 Error del Sistema. Es necesario reiniciar aplicación. -4 Los datos de entrada no tienen un formato correcto. Revisar lista de parámetros.
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 28
int fnDllOperManualDCC(LPCTSTR cCodDivisa, LPTSTR cXMLResp, int iTamMaxResp);
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")]
public static extern int fnDllOperManualDCC(String cCodDivisa, StringBuilder cXMLResp, int iTamMaxResp);
Ejemplo de llamada en Visual Basic .NET:
Public Declare Function fnDllOperManualDCC Lib
"dllTpvpcLatente.dll" (ByVal cCodDivisa As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
3.18
Ejemplo de Operación DCC
Primero: Se realizará una operación de Pago o Preautorización estándar. Ejemplo:
fnDllOperPinPad (“25.36”, “OPER-DCC-TST”, “PAGO”, cXmlResp, 1024);
Si la operación es DCC, en la variable cXmlResp obtendremos el siguiente XML de respuesta: <Operacionesversion="6.0"> <resultadoConsulta> <divisas> <importeOriginal>25.36</importeOriginal> <monedaOriginal>978</monedaOriginal> <importeDivisa>17.81</importeDivisa> <codigoDivisa>826</codigoDivisa>
<nombreDivisa>POUND STERLING</nombreDivisa> <simboloDivisa>GBP</simboloDivisa> <formatoDivisa>2</formatoDivisa> <porcentajeComision>1.7500</porcentajeComision> <tasaDivisaConComision>1.424209</tasaDivisaConComision> <tasaDivisaSinComision>1.449133</tasaDivisaSinComision> <comercio>777888991</comercio> <terminal>5</terminal> <csb>4000</csb>
<nombreEntTermAct>REDSYS </nombreEntTermAct> </divisas>
<firma>3CB335CF2F15DDDC6623B3A30C48AD9B6873679F</firma> <InfoAuxiliar>
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014 Versión: 2.27 29 <aux.MarcaTarjeta>1</aux.MarcaTarjeta> <aux.TipoTarjeta>1</aux.TipoTarjeta> <aux.NumeroTarjeta> </aux.NumeroTarjeta>
<aux.NombreMarcaTarjeta>VISA</aux.NombreMarcaTarjeta> </InfoAuxiliar>
</resultadoConsulta> </Operaciones>
Segundo: Se mostrará al titular una pantalla donde se solicitará que seleccione la moneda con la que quiere realizar la transacción. Ejemplo (los literales en negrita deben aparecer siempre y en inglés):
Muestre el siguiente mensaje al cliente:
You have the choice of paying your bill in either:
<importeOriginal > EUR or <importeDivisa> <simboloDivisa>
Service and Exchange rate provided by <nombreEntTermAct> : <simboloDivisa> 1.00 =
<tasaDivisaConComision> EUR
INCLUDES <porcentajeComision>% MARK UP over source rate provided by
<aux.NombreMarcaTarjeta>.
NO COMMISSION
Seleccione divisa según indicaciones del cliente:
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 30
Como se ve en el ejemplo, hay que utilizar la información devuelta en el anterior XML de respuesta.
Tercero: Realizar la transacción en la moneda seleccionada por el titular:
fnDllOperPinPadDCC(“25.36”, “OPER-DCC-TST”, “PAGO”, “826”, cXmlResp, 1024);
El XML de Respuesta:
<Operaciones version="6.0"> <resultadoOperacion> <tipoPago>PAGO</tipoPago> <importe>25.36</importe> <moneda>978</moneda> <tarjetaClienteRecibo>************8095</tarjetaClienteRecibo> <tarjetaComercioRecibo>************8095</tarjetaComercioRecibo> <marcaTarjeta>1</marcaTarjeta> <caducidad>0000</caducidad> <comercio>777888991</comercio> <terminal>5</terminal> <pedido>2336</pedido> <identificadorRTS>070001080616130833332827</identificadorRTS> <factura>OPER-DCC-TST</factura>
<fechaOperacion>2008-06-16 13:00:10.0</fechaOperacion> <codigoDivisa>826</codigoDivisa> <importeDivisa>17.81</importeDivisa> <tasaCambio>1.424209</tasaCambio> <tasaDivisaSinComision>1.449133</tasaDivisaSinComision> <pocentajeComision>1.7500</pocentajeComision> <estado>F</estado>
<resultado>Autorizada</resultado>
<codigoRespuesta>067331</codigoRespuesta> <Literales>
<literal>I ACCEPT THAT I HAVE BEEN OFFERED A CHOICE OF CURRENCIES FOR PAYMENT. I ACCEPT THE CONVERSION RATE AND FINAL AMOUNT. I UNDERSTAND THAT THE CHOICE OF
TRANSACTION CURRENCY IS FINAL.</literal> <literal>
</literal> <datosDCC>
<linLitTrans>TRANSACTION CURRENCY</linLitTrans> <linLitDivisa>GBP</linLitDivisa>
<linMarca>WHOLESALE RATE PROVIDED BY VISA</linMarca> <linMarkUp>MARK-UP: 1.7500 %</linMarkUp>
<linLitComision>NO COMMISSION</linLitComision>
<linLitEntidad>SERVICE AND#N#EXCHANGE RATE PROVIDED BY#N#REDSYS</linLitEntidad> <linCambio>GBP 1.00 = 1.424209 EUR</linCambio>
<linLitInf>Questions, if any, please#N#call (+34) 91 343 32 18#N#</linLitInf> </datosDCC>
</Literales>
<firma>AEC91DBE60EE3A12EE8F95E16CA18EFECE41556D</firma> </resultadoOperacion>
</Operaciones>
A continuación mostramos un recibo (formato sólo texto) con la información a imprimir y elemento xml que la contiene.
Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 28/08/2014
Versión: 2.27 31
En algunos elementos se puede recibir el carácter #N#, este carácter indica un retorno de carro o nueva línea.
El elemento linCambio sólo debe mostrarse en el recibo o copia que se quedará el comercio.
<linLitTrans> <linLitDivisa> <linMarca> <linMarkUp> <linLitComision> <linLitEntidad> <linCambio> <literal> <linLitInf>