Integracion TpvpcImplantado Versión: 2.27 28/08/2014
Referencia SM.DE.DNC.MAN.0046
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 i
Integracion TpvpcImplantado
La propiedad intelectual de este documento pertenece a Redsys. Queda prohibida su reproducción, venta, o cesión a terceros
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
Fecha
Afecta
Breve 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
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 ii
La propiedad intelectual de este documento pertenece a Redsys. Queda prohibida su reproducción, venta, o cesión a terceros
Integracion TpvpcImplantado
Se añaden varios códigos de error para las diferentes funciones.
2.19
10/03/11
Anexo III
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 Inclusión de recibos de operaciones AMEX, identificación e información añadida.
2.25
13/06/14
Documentación
2.26
23/06/14
Documentación
Recibos de Devolucines y Devoluciones sin original
2.27
28/08/14
Documentación
Actualizado listado de marcas con CUP
Actualización de información en recibos Contactless.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 iii
Integracion TpvpcImplantado
La propiedad intelectual de este documento pertenece a Redsys. Queda prohibida su reproducción, venta, o cesión a terceros
ÍNDICE DE CONTENIDO
1.
Introducción ........................................................................................ 1
2.
Destinatarios ........................................................................................ 1
3.
Integración TpvpcImplantado .............................................................. 2
3.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
7.1
¿Cuándo debe realizarse una actualización de esta Librería? ...................45
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 iv
Integracion TpvpcImplantado
8.
ANEXO V. Diccionario de Datos .......................................................... 47
9.
ANEXO VI. Códigos Error TPVPC ......................................................... 51
La propiedad intelectual de este documento pertenece a Redsys. Queda prohibida su reproducción, venta, o cesión a terceros
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 .........................................................................63 11.5 Ejemplo de Recibo cuando se recibe elemento ........64 11.6 Ejemplo de Recibo cuando se recibe elemento ..........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.10 Ejemplo 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.10 Ejemplo de Integración de Librería en Visual C++ 6.0 ............................81 14. ANEXO XI. Tratamiento Firma Digitalizada ......................................... 82 15. ANEXO XII. Tratamiento PIN.............................................................. 85
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 v
Integracion TpvpcImplantado
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
La propiedad intelectual de este documento pertenece a Redsys. Queda prohibida su reproducción, venta, o cesión a terceros
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 17.3 Ejecución ..........................................................................................92
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 vi
Integracion TpvpcImplantado
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 ENTIDADES
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 1
Integracion TpvpcImplantado
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”.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 2
Integracion TpvpcImplantado
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:,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);
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 3
Integracion TpvpcImplantado
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 TpvpcImplantado.
modo
en
el
que
se
inicializará
la
aplicación
“1” -> Modo Interfaz de Usuario.
int fnDllIniTpvpcLatenteExt(LPCTSTR LPCTSTR cModo);
cUsr,
LPCTSTR
cClave,
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
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 4
Integracion TpvpcImplantado
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 "dllTpvpcLatente.dll" () As Integer
Lib
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 5
Integracion TpvpcImplantado
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);
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 6
Integracion TpvpcImplantado
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. Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 7
Integracion TpvpcImplantado
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);
Ejemplo de llamada en Visual Basic .NET Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 8
Integracion TpvpcImplantado
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
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 9
Integracion TpvpcImplantado
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: F Autorizada
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:
PAGO 1.01 978 ************0018 ************0018 2 1210 777888991 1 10549 DEB 070001070319153828378272 FAC-LATENTE 2007-03-19 15:38:28.484 F Autorizada 080922 NO REFUND 664AD45F54C3EB4D06A354E3158A17966012A1B8 true 001391 00 A0000000043060 00 0800208000
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.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 10
Integracion TpvpcImplantado
3.7
Realizar una operación de Confirmación o Devolución Una confirmación se realiza siempre preautorización realizadas con anterioridad.
sobre
operaciones
de
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 PREAUTORIZACIÓN que se autorizó con anterioridad.
sobre
una
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.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 11
Integracion TpvpcImplantado
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
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 12
Integracion TpvpcImplantado
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.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 13
Integracion TpvpcImplantado
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.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 14
Integracion TpvpcImplantado
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
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 15
Integracion TpvpcImplantado
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: F Autorizada
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:
1.01 978 777888991 1 10550 FAC_384572 070001070319164116378278 10549 2007-03-19 16:41:16 F Autorizada DBBCA72FC4A5FEBB76E3260789DDCF51A3903D4F
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.
Parámetros de entrada:
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 16
Integracion 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 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
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 17
Integracion TpvpcImplantado
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)
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 18
Integracion TpvpcImplantado
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 "dllTpvpcLatente.dll" (ByVal cTarjeta As String, cCaducidad As String, ByVal cImporte As String, cFactura As String, ByVal cXMLResp As String, iTamMaxREsp As Integer) As Integer
3.13
Lib ByVal ByVal ByVal
¿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: F Autorizada
Si la respuesta no contiene estos valores, debe tomarse como una transacción DENEGADA
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 19
Integracion TpvpcImplantado
Ejemplo de cadena con el resultado de la operación de DEVOLUCION SIN ORIGINAL: 1.01 978 123443210 1 11205 070001070413140553434193 1 2007-04-13 14:05:53 F Autorizada 09BCDC2AB6B9178D3F3ADF7EBEC879BE9F631D80
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.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 20
Integracion TpvpcImplantado
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 -> PAGO
indicar los siguientes valores:
-> 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.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 21
Integracion TpvpcImplantado
-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:
Autorizacion ************5532 0702 0.01 978 1 1110 070001070423122035346136 2007-04-23 12:20:35.628 IDOPER_PINPAD F AUTORIZADA 0 Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 22
Integracion TpvpcImplantado
Autorizacion ************5532 0702 0.01 978 1 1118 070001070423094540346125 2007-04-23 09:45:40.436 IDOPER_PINPAD F AUTORIZADA 0 2 1 1 777888991 20070423 125118 8E7C43989E4586F3CA3ED781EF3CB2E1270C0075
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:
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 23
Integracion TpvpcImplantado
-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:
2007-04-23 978 #.##0,00 0 0 0.0 0 0 0.0 0 0 Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 24
Integracion TpvpcImplantado
0.0 0 0 0.0 0.00 20070423 085423 D8C17407BFB547749864A68250B611F41377C502
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.
Valor de retorno:
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 25
Integracion TpvpcImplantado
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
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 26
Integracion TpvpcImplantado
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.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 27
Integracion TpvpcImplantado
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: 25.36 978 17.81 826 POUND STERLING GBP 2 1.7500 1.424209 1.449133 777888991 5 4000 REDSYS 3CB335CF2F15DDDC6623B3A30C48AD9B6873679F 826 Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 28
Integracion TpvpcImplantado
1 1 VISA
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: EUR or Service and Exchange rate provided by : 1.00 = EUR INCLUDES % MARK UP over source rate provided by . NO COMMISSION
Seleccione divisa según indicaciones del cliente:
EURO
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 29
Integracion TpvpcImplantado
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:
PAGO 25.36 978 ************8095 ************8095 1 0000 777888991 5 2336 070001080616130833332827 OPER-DCC-TST 2008-06-16 13:00:10.0 826 17.81 1.424209 1.449133 1.7500 F Autorizada 067331 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. TRANSACTION CURRENCY GBP WHOLESALE RATE PROVIDED BY VISA MARK-UP: 1.7500 % NO COMMISSION SERVICE AND#N#EXCHANGE RATE PROVIDED BY#N#REDSYS GBP 1.00 = 1.424209 EUR Questions, if any, please#N#call (+34) 91 343 32 18#N# AEC91DBE60EE3A12EE8F95E16CA18EFECE41556D
A continuación mostramos un recibo (formato sólo texto) con la información a imprimir y elemento xml que la contiene.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 30
Integracion TpvpcImplantado
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.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 31
Integracion TpvpcImplantado
3.19
Realizar una repetición de pago con tarjeta en archivo Una repetición de pago con tarjeta en archivo se realiza siempre sobre una operación inicial de pago con tarjeta en archivo realizada con anterioridad. Se pueden realizar hasta 99 repeticiones de un pago con tarjeta en archivo, siempre con el mismo importe y la misma tarjeta que el pago 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 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. 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.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 32
Integracion TpvpcImplantado
int fnDllOperPagoTjtArchivo(LPCTSTR cNumPedido, LPCTSTR cRTSOriginal, LPCTSTR cFactura, LPTSTR cXMLResp, int iTamMaxResp);
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")] public static extern int fnDllOperPagoTjtArchivo(String cNumPedido, String cRTSOriginal, String cFactura, StringBuilder cXMLResp, int iTamMaxResp);
Ejemplo de llamada en Visual Basic .NET
Public Declare Function fnDllOperPagoTjtArchivo Lib "dllTpvpcLatente.dll" (ByVal cNumPedido As String, ByVal cRTSOriginal As String, ByVal cFactura As String, ByVal cXMLResp As String, ByVal iTamMaxREsp As Integer) As Integer
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 33
Integracion TpvpcImplantado
4.
ANEXO I. Integración ActiveX La librería suministrada también dispone de un componente ActiveX, que permite la integración de TpvpcImplantado con aquellos entornos de desarrollo o aplicaciones que no pueden integrar librerías dinámicas. Un claro ejemplo sería una aplicación Web que utilice el Navegador Internet Explorer. Para realizar la integración se adjunta el CLSID y nombre del Objeto. En la mayoría de los entornos de desarrollo, se dispone de asistentes para el uso de componentes Activex (conocidos también como objetos COM).
CLSID: DB09CE0A-6E1B-4107-A465-1DBA1C2DDA66 Identificador Objeto: DllTpvpcLatente.TpvpImplantado
A continuación se define la correlación entre los métodos del ActiveX y las funciones de la librería. El ActiveX simplemente hace de envoltorio para realizar las llamadas a la librería, se indica el nombre del método en el ActiveX y su correspondencia con la librería.
int IniTpvpcLatente(BSTR bstComercio, BSTR bstTerminal, BSTR bstClaveFirma, BSTR bstConfPuerto, BSTR bstVersion)
int fnDllIniTpvpcLatente(LPCTSTR cComercio, LPCTSTR cTerminal, LPCTSTR cClaveFirma, LPCTSTR cConfPuerto, LPCTSTR cVersion)
int OperPinPad(BSTR bstImporte, BSTR bstFactura, BSTR bstTipoOper, BSTR *bstXMLResp)
int fnDllOperPinPad(LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cTipoOper, LPTSTR cXMLResp, int iTamMaxResp);
int OperManualExt(BSTR bstTarjeta, BSTR bstCaducidad, BSTR bstCVC2, BSTR bstImporte, BSTR bstFactura, BSTR bstTipoOper, BSTR *bstXMLResp)
int fnDllOperManualExt(LPCTSTR cTarjeta, LPCTSTR cCaducidad, LPCTSTR cCVC2, LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cTipoOper, LPTSTR cXMLResp, int iTamMaxResp)
int OperComContable(BSTR bstNumPedido, BSTR bstRTSOriginal, BSTR bstImporte, BSTR bstFactura, BSTR bstTipoOper, BSTR *bstXMLResp)
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 34
Integracion TpvpcImplantado
int fnDllOperComContable(LPCTSTR cNumPedido, LPCTSTR cRTSOriginal, LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cTipoOper, LPTSTR cXMLResp, int iTamMaxResp)
int TrataPetComContableTrj (BSTR bstImporte, BSTR bstFactura, BSTR bstNumPedido, BSTR bstRTSOriginal, BSTR *bstXMLResp)
int fnDllComContableTrj(LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cNumPedido, LPCTSTR cRTSOriginal LPTSTR cXMLResp, int iTamMaxResp)
int TrataPetDevSinOrigTrj(BSTR bstImporte, BSTR bstFactura, BSTR *bstXMLResp)
int fnDllDevSinOrigTrj(LPCTSTR cImporte, LPCTSTR cFactura, LPTSTR cXMLResp, int iTamMaxResp)
int OperDevSinOriginal(BSTR bstTarjeta, BSTR bstCaducidad, BSTR bstImporte, BSTR bstFactura, BSTR *bstXMLResp)
int fnDllOperDevSinOrig(LPCTSTR cTarjeta, LPCTSTR cCaducidad, LPCTSTR cImporte, LPCTSTR cFactura, LPTSTR cXMLResp, int iTamMaxResp)
int OperConsulta(BSTR bstNumPedido, BSTR bstRTS, BSTR bstFactura, BSTR bstFechaIni, BSTR bstFechaFin, BSTR bstTipo, BSTR bstResultado, BSTR bstNumPagina, BSTR *bstXMLResp)
int fnDllOperConsulta(LPCTSTR cNumPedido, LPCTSTR cRTS, LPCTSTR cFactura, LPCTSTR cFechaIni, LPCTSTR cFechaFin, LPCTSTR cTipo, LPCTSTR cResultado, LPCTSTR cNumPagina, LPTSTR cXMLResp, int iTamMaxResp);
int OperTotales(BSTR bstFecha, BSTR bstDesgloseVM, BSTR bstDesgloseMarcas, BSTR *bstXMLResp)
int fnDllOperTotales(LPCTSTR cFecha, LPTSTR cDesgloseVM, LPTSTR cDesgloseMarcas, LPTSTR cXMLResp, int iTamMaxResp)
int OperPinPadDCC(BSTR bstImporte, BSTR bstFactura, BSTR bstTipoOper, BSTR bstCodDivisa, BSTR *bstXMLResp) Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 35
Integracion TpvpcImplantado
int fnDllOperPinPadDCC(LPCTSTR cImporte, LPCTSTR cFactura, LPCTSTR cTipoOper, LPCTSTR cCodDivisa, LPTSTR cXmlResp, int iTamMaxResp);
int TrataPetPagoTjtArchivo(BSTR bstNumPedido, BSTR bstRTSOriginal, BSTR BSTR bstFactura, BSTR *bstXMLResp)
int fnDllOperPagoTjtArchivo(LPCTSTR cNumPedido, LPCTSTR cRTSOriginal, cFactura, LPTSTR cXMLResp, int iTamMaxResp);
int OperAnulPreaut(BSTR bstNumPedido, bstFactura, BSTR *bstXMLResp);
BSTR
int fnDllOperAnulPreaut(LPCTSTR cNumPedido, cFactura, LPTSTR cXMLResp, int iTamMaxResp);
bstRTSOriginal,
LPCTSTR
cRTSOriginal,
LPCTSTR
BSTR
LPCTSTR
int OperReemplazoPreaut(BSTR bstImporte, BSTR bstNumPedido, BSTR bstRTSOriginal, BSTR bstFactura, BSTR *bstXMLResp);
int fnDllOperReempPreaut(LPCTSTR cNumPedido, LPCTSTR cRTSOriginal, cImporte, LPCTSTR cFactura, LPTSTR cXMLResp, int iTamMaxResp);
LPCTSTR
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 36
Integracion TpvpcImplantado
5.
ANEXO II. Integración Windows Mobile (Pocket PC) En este anexo se detallarán las modificaciones que afectan a la integración de la librería en esta plataforma.
Funcionalidad no disponible para: •
Modo Interfaz de Usuario. No está disponible, sólo se puede iniciar la librería en Modo Transparente.
•
Acceso utilizando ActiveX. No está disponible este modo de acceso, se deberá utilizar la integración con la librería dinámica o DLL.
Respecto a la documentación, nombre de funciones y parámetros son exactamente iguales, la única consideración a tener en cuenta es el nombre de la librería que para Windows Mobile cambia de dllTpvpcLatente.dll a dllTpvpcImplantadoWM.dll.
En los ejemplos de llamada para entorno de Desarrollo .NET que se muestran en este documento, lo único que es necesario cambiar es el nombre de la librería. A continuación mostramos un ejemplo de estos cambios:
Ejemplo de llamada en C# .NET:
[DllImport("dllTpvpcLatente.dll")] public static extern int fnDllIniTpvpcLatente(String cComercio, String cTerminal, String cClaveFirma, String cConfPuerto, String cVersion);
Ejemplo de llamada en C# .NET para Windows Mobile:
[DllImport("dllTpvpcImplantadoWM.dll")] public static extern int fnDllIniTpvpcLatente(String cComercio, String cTerminal, String cClaveFirma, String cConfPuerto, String cVersion);
Ejemplo de llamada en Visual Basic .NET
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 37
Integracion TpvpcImplantado
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
Ejemplo de llamada en Visual Basic .NET para Windows Mobile: Public Declare Function fnDllIniTpvpcLatente Lib "dllTpvpcImplantadoWM.dll" (ByVal cComercio As String, ByVal cTerminal As String, ByVal cClaveFirma As String, ByVal cConfPuerto As String, ByVal cVersion As String) As Integer
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 38
Integracion TpvpcImplantado
6.
ANEXO III. Errores devueltos
FUNCIÓN
CÓD
DESCRIPCIÓN Error Interno del Sistema. Será necesario reiniciar la carga de la librería dinámica. Si el problema persiste, notificar problema a entidad. Error al cargar el XML con los datos de configuración
fnDllIniTpvpcLatente
-1
fnDllIniTpvpcLatente
-2
fnDllIniTpvpcLatente
-3
No se ha especificado ningún valor en el elemento datosConf/datosComercio/comercio.
fnDllIniTpvpcLatente
-4
No se ha especificado ningún valor en el elemento datosConf/datosComercio/terminal
fnDllIniTpvpcLatente
-5
No se ha especificado ningún valor en el elemento datosConf/datosComercio/clave
-6
No se ha especificado ningún valor en el elemento datosConf/accesoUsuario/usuario
fnDllIniTpvpcLatente
-7
No se ha especificado ningún valor en el elemento datosConf/accesoUsuario/clave
fnDllIniTpvpcLatente
-8
No se ha especificado ningún valor en el elemento datosConf/modo
-9
No se ha especificado ni acceso con datos de comercio ni usuario. Es obligatorio especificar uno de los dos accesos.
fnDllIniTpvpcLatente
fnDllIniTpvpcLatente
fnDllIniTpvpcLatente
-10
No se ha especificado ningún valor en el elemento datosConf/confDispositivo/puerto. Si no se quiere usar un pinpad, no es necesario incluir el elemento confDispositivo. Si se incluye se deben configurar todos los elementos.
fnDllIniTpvpcLatente
-11
No se ha especificado ningún valor en el elemento datosConf/confDispositivo/version.
fnDllIniTpvpcLatente
-12
Error Interno del sistema.
fnDllIniTpvpcLatente
-13
Error al realizar el descubrimiento del PinPad. Se superó el TimeOut máximo de espera.
fnDllIniTpvpcLatente
-14
No se pudo iniciar la interfaz gráfica del
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 39
Integracion TpvpcImplantado
TPVPC Latente.
-16
Problema en la comunicación con el Servicio Web del TPVPC. Revisar conexión a Internet, e intentar una nueva inicialización cuando el servicio esté restablecido.
-18
Se envía correctamente la petición al TPVPC, pero alguno de los datos establecidos no es correcto. Revise código de comercio, terminal y la clave de firma.
fnDllIniTpvpcLatente
-19
El Pinpad no está configurado correctamente, es necesario contactar con la entidad.
fnDllIniTpvpcLatente
-20
El Puerto de comunicación especificado no es correcto.
fnDllIniTpvpcLatente
-21
Se ha especificado una versión que es incompatible con el PinPad instalado. Consultar con la entidad el valor correcto.
fnDllIniTpvpcLatente
-40
La versión de la librería ha caducado y debe actualizarse.
fnDllIniTpvpcLatente
fnDllIniTpvpcLatente
fnDllIniTpvpcLatenteExt
-1
Error Interno del Sistema. Será necesario reiniciar la carga de la librería dinámica. Si el problema persiste, notificar problema a entidad.
-2
Error al cargar el XML con los datos de configuración. Revisar que se han instalado todas las librerías.
fnDllIniTpvpcLatenteExt
-3
No se ha especificado ningún valor en el elemento datosConf/datosComercio/comercio.
fnDllIniTpvpcLatenteExt
-4
No se ha especificado ningún valor en el elemento datosConf/datosComercio/terminal
fnDllIniTpvpcLatenteExt
-5
No se ha especificado ningún valor en el elemento datosConf/datosComercio/clave
fnDllIniTpvpcLatenteExt
-6
No se ha especificado ningún valor en el elemento datosConf/accesoUsuario/usuario
fnDllIniTpvpcLatenteExt
-7
No se ha especificado ningún valor en el elemento
fnDllIniTpvpcLatenteExt
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 40
Integracion TpvpcImplantado
datosConf/accesoUsuario/clave fnDllIniTpvpcLatenteExt
fnDllIniTpvpcLatenteExt
-8
No se ha especificado ningún valor en el elemento datosConf/modo
-9
No se ha especificado ni acceso con datos de comercio ni usuario. Es obligatorio especificar uno de los dos accesos.
-10
No se ha especificado ningún valor en el elemento datosConf/confDispositivo/puerto. Si no se quiere usar un pinpad, no es necesario incluir el elemento confDispositivo. Si se incluye se deben configurar todos los elementos.
fnDllIniTpvpcLatenteExt
-11
No se ha especificado ningún valor en el elemento datosConf/confDispositivo/version.
fnDllIniTpvpcLatenteExt
-12
Error Interno del sistema.
fnDllIniTpvpcLatenteExt
-13
Error al realizar el descubrimiento del PinPad. Se superó el TimeOut máximo de espera.
fnDllIniTpvpcLatenteExt
-14
No se pudo iniciar la interfaz gráfica del TPVPC Latente.
fnDllOperManualExt
-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.
fnDllOperManualExt
-2
Se ha sobrepasado el TimeOut especificado por la aplicación.
fnDllOperManualExt
-3
Error del Sistema. Es necesario reiniciar aplicación.
fnDllOperManualExt
-4
Los datos de entrada no tienen un formato correcto. Revisar lista de parámetros.
fnDllOperManualExt
-17
El Tamaño del buffer de respuesta no es suficiente. Se recomienda utilizar el valor indicado en la documentación.
-18
El formato de algún parámetro es incorrecto. Por ejemplo, revise que el parámetro cImporte tiene formato #000.00. 3000 euros cImporte= 3000.00.
fnDllIniTpvpcLatenteExt
fnDllOperManualExt
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 41
Integracion TpvpcImplantado
fnDllOperPinPad
-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.
fnDllOperPinPad
-2
Se ha sobrepasado el TimeOut especificado por la aplicación.
fnDllOperPinPad
-3
Error del Sistema. Es necesario reiniciar aplicación.
fnDllOperPinPad
-4
Los datos de entrada no tienen un formato correcto. Revisar lista de parámetros.
fnDllOperPinPad
-17
El Tamaño del buffer de respuesta no es suficiente. Se recomienda utilizar el valor indicado en la documentación.
-18
El formato de algún parámetro es incorrecto. Por ejemplo, revise que el parámetro cImporte tiene formato #000.00. 3000 euros cImporte= 3000.00
-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.
fnDllOperComContable
-3
Error en los parámetros de entrada. Si el problema persiste contactar con la entidad.
fnDllOperComContable
-12
fnDllOperPinPad
fnDllOperComContable
fnDllOperComContable
Error Interno del sistema.
-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.
fnDllOperConsulta
-2
Se produjo un error interno del sistema al realizar la operación. Si el problema persiste contacte con su entidad.
fnDllOperConsulta
-3
Error en los parámetros de entrada.
fnDllOperConsulta
-12
Error Interno del sistema.
fnDllOperConsulta
-15
Operación no soportada.
fnDllOperConsulta
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 42
Integracion TpvpcImplantado
fnDllOperTotales
-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.
fnDllOperTotales
-2
Se produjo un error interno del sistema al realizar la operación. Si el problema persiste contacte con su entidad.
fnDllOperTotales
-3
Error en los parámetros de entrada.
fnDllOperTotales
-12
Error Interno del sistema.
fnDllOperTotales
-15
Operación no soportada.
fnDllOperPinPadDCC
-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.
fnDllOperPinPadDCC
-2
Se ha sobrepasado el TimeOut especificado por la aplicación.
fnDllOperPinPadDCC
-3
Error del Sistema. Es necesario reiniciar aplicación.
fnDllOperPinPadDCC
-4
Los datos de entrada no tienen un formato correcto. Revisar lista de parámetros.
fnDllOperPinPadDCC
-15
Operación no soportada.
fnDllOperPinPadDCC
-17
El Tamaño del buffer de respuesta no es suficiente. Se recomienda utilizar el valor indicado en la documentación.
-18
El formato de algún parámetro es incorrecto. Por ejemplo, revise que el parámetro cImporte tiene formato #000.00. 3000 euros cImporte= 3000.00
fnDllDevSinOrigTrj
-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.
fnDllDevSinOrigTrj
-2
Se ha sobrepasado el TimeOut especificado por la aplicación.
fnDllDevSinOrigTrj
-3
Error del Sistema. Es necesario reiniciar la aplicación.
fnDllOperPinPadDCC
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 43
Integracion TpvpcImplantado
-4
Se produjo un error interno del sistema al realizar la operación. Si el problema persiste, contacte con su entidad.
fnDllDevSinOrigTrj
-5
Error en los parámetros de entrada. Si el problema persiste, contactar con la entidad.
fnDllDevSinOrigTrj
-15
Operación no soportada.
-17
El tamaño del buffer de respuesta no es suficiente. Se recomienda usar el valor indicado en la documentación.
-18
Los datos de entrada no tienen un formato correcto. Revisar lista de parámetros.
fnDllDevSinOrigTrj
fnDllDevSinOrigTrj
fnDllDevSinOrigTrj
fnDllComContableTrj
-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.
fnDllComContableTrj
-2
Se ha sobrepasado el TimeOut especificado por la aplicación.
fnDllComContableTrj
-3
Error del Sistema. Es necesario reiniciar aplicación.
fnDllComContableTrj
-15
Operación no soportada.
fnDllComContableTrj
-17
El tamaño del buffer de respuesta no es suficiente. Se recomienda usar el valor indicado en la documentación.
fnDllComContableTrj
-18
Los datos de entrada no tienen un formato correcto. Revisar lista de parámetros.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 44
Integracion TpvpcImplantado
7.
ANEXO IV. Versiones Librería Siempre que la librería sufra alguna modificación, se actualizará la información en el servidor, para que las distintas aplicaciones que usen esta librería se actualicen, si lo consideran necesario, con la última versión. Se aconseja mantener siempre la última versión disponible de la librería. En algunas de estas actualizaciones, el uso de una nueva versión de la librería, implicará cambios en la aplicación del comercio. La interfaz de llamadas a las funciones no se verá nunca afectada, se modificarán los XML de Respuesta, o se agregarán funciones nuevas.
7.1
¿Cuándo debe realizarse una actualización de esta Librería? Siempre que la función de inicio fnDllIniTpvpcLatente devuelva el código de error -40, indicará que es necesario realizar la actualización, ya que la versión actual se encuentra caducada. También se podrá detectar En los XML de respuesta de las operaciones fnDllOperPinPad, fnDllOperComContable, fnDllOperManual, aparecerá un elemento versdllimpl con la última versión disponible.
Ej.: Se realiza una petición de Devolución de una operación autorizada con anterioridad utilizando la función fnDllOperComContable.
XML de Respuesta recibido: 1.01 978 777888991 1 2550 070001071212171835457307 1 2548 2007-12-12 17:23:32.0 F Autorizada 140D936EE212A03B823F766FF43E4C03365AC429 1.0.4.1
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 45
Integracion TpvpcImplantado
En el documento de Actualización de Versiones, se detalla todo el proceso necesario para realizar una actualización cuando ésta se encuentre disponible.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 46
Integracion TpvpcImplantado
8.
ANEXO V. Diccionario de Datos A continuación se describen todos los campos que se pueden encontrar en los XML de respuesta de los distintos métodos de la librería. •
•
•
• • • • • •
• • •
• • • •
tarjeta: número de tarjeta. Constará de 15 a 19 posiciones. Este campo solamente podrá ser informado si el comercio que realiza la transacción tiene permiso para realizar entrada manual de datos. Consulte con su Entidad si su comercio dispone de esta posibilidad. caducidad: caducidad de la tarjeta en formato AAMM. Este campo solamente podrá ser informado si el comercio que realiza la transacción tiene permiso para realizar entrada manual de datos. Consulte con su Entidad si su comercio dispone de esta posibilidad. 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. Consulte con su Entidad si su comercio debe enviar obligatoriamente este campo. importe: Importe de la operación en formato N.NN. Ej: 1.00 moneda: código de la moneda de la operación. Valores -> 978 (Euros), 840 (Dólares). Este dato depende de la moneda que tenga asociada el terminal por el que se realice la operación. comercio: FUC o código del comercio. Consta de 9 dígitos. terminal: terminal en el que se realiza la operación. Numérico del 1 al 99. Es imprescindible que el terminal se encuentre dado de alta en REDSYS antes de realizar alguna operación sobre él. csb: Merchant al que pertenece el terminal. Consta de 4 dígitos. factura: cadena alfanumérica que el comercio podrá utilizar como identificador para asociar una venta con su transacción TPVPC correspondiente. REDSYS no validará el formato ni la duplicidad de esta cadena, siendo responsabilidad del comercio. El tamaño máximo de esta cadena puede ser de 20 caracteres. pedido: número de pedido u operación asociado a la transacción. Este número es devuelto por el TPVPC y servirá para identificar una determinada operación en un comercio / terminal definido. identificadorRTS: identificador de la operación Esta cadena de 24 posiciones es devuelta por el TPVPC y servirá para identificar una determinada operación en un comercio / terminal definido. tipoPago: tipo de operación que desea realizarse. Valores: PAGO -> autorización normal, PREAUTORIZACION -> preautorización, RECARGA > recarga de móviles, PREAUT_REEMPLAZO -> reemplazo de preautorizaciones, ANULACION -> anulación de preautorizaciones. firma: contiene la firma del mensaje en formato Hexadecimal (40 caracteres) fechaOperacion: fecha y hora de la operación en formato YYYY-MM-DD hh:mm:ss.miliseg estado: estado de la operación. Valores -> F (finalizada), P(en proceso), T(fallo técnico), G(Denegada) resultado: resultado de la operación. Valores -> Autorizada, Denegada.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 47
Integracion TpvpcImplantado
•
• • •
• • • • • •
• • • • • • • • • •
codigoRespuesta: contiene el código de autorización de la operación, en el caso de operación Aceptada, o el código de denegación en caso de que la operación hay sido Denegada (ver Anexo VII). Este campo no se informa en el caso de las Devoluciones/Confirmaciones Autorizadas. pedidoBase: número de pedido de la operación sobre la que se quiere realizar una operación de devolución, confirmación, anulación o reemplazo. idRTSOriginal: identificadorRTS de la operación original sobre la que se realizará una operación de devolución, confirmación, anulación o reemplazo. timestamp: fecha y hora en la que se monta el mensaje de petición, en formato yyyyMMdd HHmmss. Este dato permitirá conocer si un mensaje está caducado, con el fin de impedir que una persona no autorizada reutilice el mensaje para realizar operaciones. descripcion: detalle del error producido. En caso de un error de formato, se incluye el campo que provoca el error. La inclusión de este campo en el mensaje de salida es opcional. mensaje: mensaje de información del error. codigo: código de error devuelto por el TPVPC codigoDivisa: código numérico asociado a la moneda en la que se desea realizar la transacción DCC (Dynamic Currency Conversion). importeDivisa: Importe resultante de la operación DCC en la divisa especificada en el codigoDivisa. importeOriginal: Importe del que se desea obtener el cambio en la correspondiente divisa para operaciones DCC. El código de la moneda asociada a dicho importe se especifica en el atributo ‘codMoneda’. Si no se informa dicho atributo, toma el valor por defecto ‘978’ (EURO). tasaCambio: cambio aplicado para realizar la conversión de moneda para la operativa DCC. nombreDivisa: nombre de la moneda en la que se desea realizar la transacción DCC (Dynamic Currency Conversion). simboloDivisa: codigo reducido que identifica a la moneda en la que se desea realizar la transacción DCC. formatoDivisa: número de decimales de la moneda en la que se desea realizar la transacción DCC. porcentajeComision: comisión (en %) que se aplica para calcular el importe de la divisa. tasaDivisaConComision: cambio aplicado para realizar la conversión de moneda para la operativa DCC (igual que tasaCambio). tasaDivisaSinComision: cambio aplicado para realizar la conversión de moneda para la operativa DCC sin aplicarle el porcentaje de la comisión. literal: literales que devuelve el TPVPC y que deben aparecer en la boleta que imprime el comercio, en el orden en que se envían en el mensaje de respuesta. numTeléfono (datosRecarga): número de teléfono a recargar. idOperador: identificador del operador al que está asociada la tarjeta telefónica. Sus valores son 0 -> AMENA, 1 -> MOVISTAR, 2 -> VODAFONE, 3 -> EUSKALTEL, 4 -> XFERA.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 48
Integracion TpvpcImplantado
• • • • • • • • • • • • • •
• • • •
idTransOperador: número de referencia asignado a la transacción por el operador correspondiente. Este valor debe aparecer en el recibo de la operación. plazoPago: código de fraccionamiento que indica el tipo de aplazamiento que se realizará. tarjetaComercioRecibo: número de la tarjeta que se imprimirá en el recibo del comercio. Esta se imprimirá en la boleta asteriscada o no dependiendo de la configuración del comercio para su propia boleta. tarjetaClienteRecibo: número de la tarjeta que se imprimirá en el recibo del cliente. Esta se imprimirá en la boleta asteriscada o no dependiendo de la configuración del comercio para la boleta del cliente. titularTarjeta: nombre del titular de la tarjeta. tipoOperacion: tipo de la operación realizada (Autorizacion, Preaurorizacion, Devolucion, Confirmacion). fechaOper: fecha de la operación en formato YYYY-MM-DD para las consulta de una operación. operacionemv: Indica que se trata de una operación EMV. conttrans: Contador de transacciones recibido de tarjeta EMV. sectarjeta: Campo recibido de tarjeta EMV. idapp: Campo recibido de tarjeta EMV. etiquetaApp: Campo recibido de tarjeta EMV resverificacion: Campo recibido de tarjeta EMV. marcaTarjeta: Indica la marca de la tarjeta utilizada en la operación. Sus posibles valores son:
Marca
Indicador
VISA
1
MASTERCARD
2
DINERS
6
AMEX
8
JCB
9
CUP
22
paisTarjeta: Indica el código ISO-3166 numérico de 3 cifras de la tarjeta. Sólo disponible en determinadas operativas. tipoTasaAplicada: Indica la tasa aplicada (Crédito / Débito) en la respuesta de las autorizaciones OK de tarjetas nacionales en terminales nacionales. Sus valores son Crédito -> CRED, Débito -> DEB. ReciboSoloCliente: Indicador para imprimir sólo el recibo para el cliente. reciboOpcional: Indicador que permite no imprimir recibos, siempre que se reciba en la respuesta con valor TRUE.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 49
Integracion TpvpcImplantado
•
autenticadoPorPin: Indicador de autenticación por pin, afecta a la impresión de recibo. No se debe imprimir el recuadro de firma, en el Recibo para el comercio, ya que el usuario se autentico introduciendo el PIN de su tarjeta.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 50
Integracion TpvpcImplantado
9.
ANEXO VI. Códigos Error TPVPC A continuación se detallan los códigos de error más comunes que puede devolver el TPVPC: SOAP-TPVPC0000
Se ha producido un error al validar el mensaje.
SOAP-TPVPC0001
Error genérico.
SOAP-TPVPC0002
Firma incorrecta.
SOAP-TPVPC0003
La versión del mensaje no está soportada.
SOAP-TPVPC0004
El mensaje no contiene los elementos requeridos.
SOAP-TPVPC0005
Algunos elementos no contienen los valores esperados.
SOAP-TPVPC0006
El mensaje está caducado.
SOAP-TPVPC0007
Se ha producido un error desconocido.
SOAP-TPVPC0008
La versión del mensaje no soporta la operativa especificada.
SOAP-TPVPC0009
El mensaje de petición de consulta no puede incluir banda y número de tarjeta en el mismo mensaje.
SOAP-TPVPC0010 SOAP-TPVPC0014 SOAP-TPVPC0015
El método al que se envía la no es el adecuado. No existe una operación con esos datos. Clave no localizada
TPVPC0009
El importe de la devolución supera el importe de la operación original.
TPVPC0014
Se ha producido un error en el sistema. Inténtelo más tarde, o póngase en contacto con el Administrador.
TPVPC0015
Faltan datos para llevar a cabo la operación solicitada.
TPVPC0016
El comercio no posee ningún terminal TPVPC válido.
TPVPC0018
La tarjeta no se ha leído correctamente. Asegúrese de que la asociación lector/terminal es la correcta, e inténtelo de nuevo.
TPVPC0019
La tarjeta no se ha leído correctamente. Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 51
Integracion TpvpcImplantado
Asegúrese de que la asociación lector/terminal es la correcta, e inténtelo de nuevo. TPVPC0020
Se ha producido un error al realizar la operación. Inténtelo de nuevo.
TPVPC0021
No se han recibido todos los datos necesarios para modificar su contraseña.
TPVPC0024
La contraseña especificada no puede ser utilizada por motivos de seguridad. Por favor, indique otra.
TPVPC0025
El formato del número de tarjeta introducido no es válido.
TPVPC0026
La tarjeta no se ha leído correctamente. Asegúrese de que la tarjeta está en buen estado, e inténtelo de nuevo.
TPVPC0027
El formato de la fecha de caducidad introducida no es válido.
TPVPC0030
El sistema está ocupado. Reinténtelo de nuevo en unos instantes. Si el problema persiste, póngase en contacto con su administrador.
TPVPC0031
Se ha producido un error al realizar la operación. Inténtelo de nuevo.
TPVPC0032
El sistema no puede acceder a las operaciones requeridas en este momento.
TPVPC0033
Faltan datos para realizar la autenticación.
TPVPC0034
El usuario con el que intenta acceder ha sido bloqueado. Póngase en contacto con su administrador para desbloquearlo.
TPVPC0035
El usuario con el que intenta acceder está dado de baja. Póngase en contacto con su administrador.
TPVPC0036
Faltan datos para llevar a cabo la operación solicitada.
TPVPC0037
El sistema no puede acceder al usuario especificado en este momento.
TPVPC0039
El perfil del usuario especificado sólo tiene acceso al Módulo de Administración TPVPC. Por favor, indique otro usuario.
TPVPC0040
El sistema no ha podido completar la operación especificada. Por favor, inténtelo de nuevo.
TPVPC0042
El sistema no soporta actualmente el método de Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 52
Integracion TpvpcImplantado
autenticación especificado. Por favor, modifíquelo en intente de nuevo la operación. TPVPC0043
Está intentando realizar una operación de alta sobre un usuario ya existente.
TPVPC0044
El formato del número de teléfono introducido no es válido.
TPVPC0048
El medio de pago especificado no es válido, o no es soportado por el comercio. Por favor, póngase en contacto con su administrador.
TPVPC0051
No se han definido criterios suficientes para realizar la operación solicitada.
TPVPC0052
La contraseña no es correcta, inténtelo de nuevo.
TPVPC0053
El usuario especificado no existe.
TPVPC0055
El comercio no tiene habilitada la operativa de Entrada Manual de datos.
TPVPC0056
El usuario ha sido creado satisfactoriamente, pero se ha producido un error al término de la operación. Si este problema persiste en el futuro, póngase en contacto con su administrador.
TPVPC0057
El código de entidad especificado no existe.
TPVPC0058
La moneda especificada no coincide con la moneda del terminal.
TPVPC0059
El sistema no puede acceder al terminal especificado. Asegúrese de que el terminal existe, e intente de nuevo la operación.
TPVPC0060
No existe ningún terminal apropiado para tratar la marca de tarjeta introducida.
TPVPC0061
El sistema no ha podido completar la operación especificada. Por favor, inténtelo de nuevo.
TPVPC0062
El usuario ha sido modificado satisfactoriamente, pero se ha producido un error al término de la operación. Si este problema persiste en el futuro, póngase en contacto con su administrador.
TPVPC0063
El sistema no ha podido completar la operación especificada. Por favor, inténtelo de nuevo.
TPVPC0064
El usuario ha sido dado de baja satisfactoriamente, pero se ha producido un error al término de la operación. Si este Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 53
Integracion TpvpcImplantado
problema persiste en el futuro, póngase en contacto con su administrador. TPVPC0065
El usuario especificado ya está dado de baja.
TPVPC0066
No se han encontrado usuarios que cumplan los criterios de búsqueda definidos.
TPVPC0071
El comercio no tiene habilitada la operativa de Preautorizaciones.
TPVPC0072
La operación no puede completarse debido a que no se ha recibido el dato de autenticación de la tarjeta: CVC2.
TPVPC0074
El CVC2 introducido no coincide con el especificado en la tarjeta. Asegúrese de que ha introducido correctamente los dígitos que figuran en el reverso de la tarjeta.
TPVPC0075
El perfil del usuario especificado no tiene acceso al TPVPC.
TPVPC0077
Acceso denegado al sistema. El mensaje de acceso no es válido. Comprueba el formato del mensaje, la firma y la fecha del mismo.
TPVPC0078
Está intentando realizar una operación sobre la que no tiene permisos asignados. Por favor, póngase en contacto con su Administrador.
TPVPC0079
El comercio / terminal que ha especificado no existe. Asegúrese de que ha introducido correctamente los datos y póngase en contacto con su Administrador.
TPVPC0081
Contraseña incorrecta. Para realizar la operación requerida es necesario que especifique su contraseña actual.
TPVPC0083
La configuración de su lector no es la correcta. Por favor, reintente la operación y consulte con su Administrador.
TPVPC0084
La tarjeta no se ha leído correctamente. Compruebe el estado de la tarjeta y que el lector sea el correcto, o póngase en contacto con su Administrador
TPVPC0085
La tarjeta no se ha leído correctamente. Asegúrese de que la tarjeta está en buen estado, e inténtelo de nuevo.
TPVPC0087
El sistema está ocupado. Reinténtelo de nuevo en unos instantes. Si el problema persiste,
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 54
Integracion TpvpcImplantado
póngase en contacto con su administrador. TPVPC0089
Se ha producido un error al realizar la operación. Inténtelo de nuevo.
TPVPC0090
El terminal no tiene asociado ningún lector válido. Por favor, configure el terminal o póngase en contacto con el Administrador.
TPVPC0091
Se ha producido un error. La operación especificada no existe.
TPVPC0092
Se ha producido un error al realizar la operación. Inténtelo de nuevo.
TPVPC0093
Se ha producido un error al realizar la operación. Inténtelo de nuevo.
TPVPC0094
No es posible realizar más confirmaciones sobre la preautorización original.
TPVPC0096
Se ha producido un error en el sistema. El formato de los datos pasados no es correcto.
TPVPC0097
Su contraseña no puede modificarse. Ya ha realizado las modificaciones permitidas para hoy.
TPVPC0099
El comercio no está habilitado para operar con la tarjeta de fidelización indicada.
TPVPC0100
No puede realizar una DEVOLUCION/CONFIRMACION sobre la operación especificada.
TPVPC0101
La firma no es correcta.
TPVPC0102
El certificado no es válido o no está firmado por una CA en la que se confíe.
TPVPC0103
El certificado que está intentando asociar ya está asociado a otro usuario.
TPVPC0104
La tarjeta no está asociada a ningún usuario válido en TPV_PC.
TPVPC0107
El comercio no tiene configurada la moneda especificada.
TPVPC0108
Se ha producido un error al realizar la conversión de divisas.
TPVPC0109
La tarjeta no admite el pago en la divisa especificada.
TPVPC0110
El número de plazos indicado no es válido.
TPVPC0112
El importe de una recarga para la operadora Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 55
Integracion TpvpcImplantado
especificada debe ser múltiplo de 5.00 Euros. TPVPC0113
El importe de una recarga para la operadora especificada debe ser múltiplo de 10.00 Euros.
TPVPC0114
El comercio no tiene habilitada la operativa de Entrada Manual de datos.
TPVPC0115
La tarjeta utilizada no admite aplazamiento de pagos.
TPVPC0117
El sistema ya está procesando una operación con los mismos datos. Si desea realizar una nueva operación, reinténtelo en unos instantes.
TPVPC0118
El sistema ha detectado que existe una operación anterior con los mismos datos, con resultado AUTORIZADA. Si desea duplicar la operación, reinténtelo en unos instantes.
TPVPC0119
El sistema ha detectado que existe una operación anterior con los mismos datos, con resultado de ERROR. Si desea repetir de nuevo la operación, reinténtelo en unos instantes.
TPVPC0120
El sistema ha detectado que existe una operación anterior con los mismos datos, con resultado RECHAZADA. Si desea repetir de nuevo la operación, reinténtelo en unos instantes.
TPVPC0121
No se puede realizar la acción requerida sobre la operación.
TPVPC0122
No se ha podido llevar a cabo la operación solicitada debido a un error en el importe.
TPVPC0123
No se puede realizar la acción requerida sobre una operación que resultó errónea o denegada.
TPVPC0124
No se puede realizar la acción requerida debido a un error.
TPVPC0126
La tarjeta utilizada no es válida.
TPVPC0127
No existe ninguna lista negra para el comercio especificado.
TPVPC0128
No se puede actualizar la información de la descarga para el comercio.
TPVPC0129
No se puede asignar la operativa de Lista Negra al comercio. No existe ninguna lista negra definida para ese comercio.
TPVPC0131
El comercio no tiene activada esta operativa.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 56
Integracion TpvpcImplantado
TPVPC0135
Error al tratar mensaje PUP.
TPVPC0148
No es posible realizar el aplazamiento del pago.
TPVPC_EMV0000
Error interno en el protocolo TPVPC EMV
TPVPC_EMV0001
Error interno en el protocolo TPVPC EMV
TPVPC_EMV0002
Error interno en el protocolo TPVPC EMV
TPVPC_EMV0003
Error interno en el protocolo TPVPC EMV
TPVPC_EMV0004
Error en el proceso TLS.
TPVPC_EMV0005
Pin OnLine Solicitado no Introducido.
TPVPC_EMV0006
Terminal no Operativo. Sin Claves Simétricas.
AX-TPVPC0001
La configuración especificada no es correcta. Revise el campo descripción para más información.
AX-TPVPC0002
Error en la comunicación con TPVPC. Revisar conexión con Internet.
AX-TPVPC0003
Error en la comunicación con el PinPad. Revise configuración y conexión física con el dispositivo.
AX-TPVPC0004
Problema en la configuración del Puerto de comunicaciones.
AX-TPVPC0005
Error en el componente ActiveX de comunicación con Pinpad. Es necesario reinstalar aplicación.
AX-TPVPC0006
Error en el PinPad, mensaje recibido no valido.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 57
Integracion TpvpcImplantado
10.
ANEXO VII. Códigos de Denegación Cuando una petición de autorización da como resultado una operación denegada, en el campo codigoRespuesta se devuelve el código de denegación asociado a dicha respuesta. Este código indica el motivo por el cual se ha denegado la operación. Los códigos más comunes se detallan a continuación:
Código
Descripción
101
La tarjeta está caducada
102
Tarjeta bloqueada por el banco emisor
104
Operación no permitida para esa tarjeta o terminal
106
Intentos de PIN excedidos
107, 167
Por favor, contacte con el banco emisor de la tarjeta
109
Identificación inválida de terminal o establecimiento
110
Importe inválido
112
Se requiere PIN obligatorio
114
Tarjeta no soporta el tipo de operación solicitado
116
Disponible insuficiente
117
PIN incorrecto
118
Tarjeta no registrada
119
Desconocido
120
Operaciones denegadas por SIS
121
Excede límite de importe en anticipos de efectivo
122
Denegación por controles sobre el VCA
123
CAUV erróneo
124
Titular necesita cambio de PIN previo a operar
125
Tarjeta no efectiva
126
Bloque de PIN inválido
129
Tarjeta no operativa (error en CVC2)
130
Moneda no soportada por el emisor
160
El terminal indica que la operación de consumo CEPS no ha finalizado correctamente
161
Marca no admitida por el emisor
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 58
Integracion TpvpcImplantado
180
Tarjeta no soportada por el sistema
181
Tarjeta con restricciones débito
182
Tarjeta con restricciones crédito
183
Tarjeta con restricciones débito (cuenta de crédito)
184
Error en autenticación
185
Control dispositivos no adaptados EMV
187
Error en criptografía EMV
190
Denegada por el banco emisor de la tarjeta, por diversos motivos
191
Fecha de caducidad errónea
192
Datos de case no encontrados
193
Importe excedido
194
Rechazo por el operador telefónico
195
Control Fallback
198
Denegación DCC para envío de contravalores
201
Tarjeta caducada. Orden de retirar la tarje
202, 208, Tarjeta bloqueada por el banco emisor. Orden de retirar la tarjeta 209 204
Operación no permitida para esa tarjeta o terminal
206
Intentos de PIN excedidos. Retener tarjeta
207
Tarjeta en condiciones especiales. Retener tarjeta
210
Retención por controles sobre el VCA
280
CVV1/CVC1 o CVV2/CVC2 erróneo. Retener tarjeta
290
Denegada por diversos motivos. Orden de retirar la tarjeta
912
Número de tarjeta inexistente
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 59
Integracion TpvpcImplantado
11.
ANEXO VIII. Ejemplos Impresión de Recibos A continuación se muestran ejemplos de cómo las aplicaciones de los comercios deberán imprimir los recibos, cuando realicen la integración con TpvpcImplantado en Modo Transparente.
11.1
Recibo para una operación realizada con Lectura de Banda o Entrada Manual de Datos
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 60
Integracion TpvpcImplantado
11.2
Recibo para una operación realizada con una Tarjeta con Chip EMV
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 61
Integracion TpvpcImplantado
11.3
Recibo para una operación realizada con una Tarjeta DCC
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 62
Integracion TpvpcImplantado
11.4
Ejemplo de Recibo de una operación en la que se recibe el elemento
En algunos PinPad, existe la posibilidad de capturar la firma por el propio PinPad, con lo que no es necesario imprimir el “Ejemplar para el comercio”.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 63
Integracion TpvpcImplantado
11.5
Ejemplo de Recibo
cuando
se
recibe
elemento
Cuando se reciba el elemento autenticadoPorPin, se debe imprimir en lugar del recuadro de firma, el literal que se recibe en el elemento literales/autenticadoPorPin. PAGO 0.01 978 ************5532 ************5532 1 0207 777888991 1 5221 CRED 070001070104095223003876 IDOPER_PINPAD 2007-01-04 09:52:23.656 F Autorizada 000262 OPERACION CON PIN. FIRMA NO NECESARIA. 2F88A699FD6E68E4C5BD6E33058B3101DB0E68D4 true 000996 01 A0000000031010 VISA CLASSIC 00 0880008000 TRUE
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 64
Integracion TpvpcImplantado
11.6
Ejemplo de Recibo
cuando
se
recibe
elemento
Cuando se reciba el elemento operContactLess con valor TRUE, se debe imprimir la imagen que indica el tipo de operativa en el recibo. Esto es necesario realizarlo independientemente a otras posibles etiquetas que se incluyan en la respuesta, como pueden ser el caso de “autenticadoPorPin” o “ReciboSoloCliente”. PAGO 0.01 978 ************5532 ************5532 1 0207 777888991 1 5221 CRED 070001070104095223003876 IDOPER_PINPAD 2012-12-04 09:52:23.656 F Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 65
Integracion TpvpcImplantado
Autorizada 000262 OPERACION CON PIN. FIRMA NO NECESARIA. 2F88A699FD6E68E4C5BD6E33058B3101DB0E68D4 true 000996 01 A0000000031010 VISA CLASSIC 00 0880008000 TRUE TRUE
Las etiquetas específicas que pueden acompañar a una operación Contactless: : identifica la operación como Contactless. Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 66
Integracion TpvpcImplantado
: no es obligatorio imprimir la copia del comercio de acuerdo a los parámetros de configuración del terminal y los datos de la operación. Siempre que aparezca esta etiqueta, no se deberá imprimir la caja de firma. : la operación ha sido autenticada mediante el método de verificación de PIN de la tarjeta. En este caso tampoco es necesario imprimir la boleta del comercio. Siempre que aparezca esta etiqueta, no se deberá imprimir la caja de firma. : literal que sebe imprimirse siempre que aparezca. Puede tener varios valores, como por ejemplo: • •
OPERACIÓN CON PIN. FIRMA NO NECESARIA. OPERACIÓN CONTACTLESS. FIRMA NO NECESARIA.
11.7
Ejemplo de Recibo cuando Deniega Tarjeta EMV Cuando una operación se realiza con una tarjeta con chip EMV, puede suceder que el TPVPC de cómo autorizada la operación, pero sea la tarjeta quien deniegue. En este caso, se recibirán en el xml de resultado de la operación unos nuevos elementos cuyo valor será necesario imprimirlos en el recibo. A continuación detallamos estos nuevos elementos (el valor de estos debe ser impreso tal cual se devuelve en el recibo o ticket):
• • • • • • • • • • • • • • •
Val5F20, en el recibo el nombre debe aparecer como 5F20 Val5F25, en el recibo el nombre debe aparecer como 5F25 Val5F2A, en el recibo el nombre debe aparecer como 5F2A Val82, en el recibo el nombre debe aparecer como 82 Val9A, en el recibo el nombre debe aparecer como 9A Val9C, en el recibo el nombre debe aparecer como 9C Val9F10, en el recibo el nombre debe aparecer como 9F10 Val9F1A, en el recibo el nombre debe aparecer como 9F1A Val9F17, en el recibo el nombre debe aparecer como 9F17 Val9F26, en el recibo el nombre debe aparecer como 9F26 Val9F27, en el recibo el nombre debe aparecer como 9F27 Val9F33, en el recibo el nombre debe aparecer como 9F33 Val9F40, en el recibo el nombre debe aparecer como 9F40 Val9F34, en el recibo el nombre debe aparecer como 9F34 Val9F37, en el recibo el nombre debe aparecer como 9F37
PAGO 1.01 Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 67
Integracion TpvpcImplantado
978 ************0010 ************0010 1 0000 777888991 1 5987 078090081014092317180596 DENIEGA-TARJ 2008-10-14 09:23:14.0 F Denegada 190 4D52D852A674557958BAB9236B567792D4ED082D true 000001 01 A0000000031010 4000008000 46554C4C2046554E4354494F4E414C 101231 0978 5C00 081017 00 06011A03900000 0724 03 395E4D911AB0196D 00 E0F0C0 4000F0B001 410302 37AEC214
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 68
Integracion TpvpcImplantado
11.8
Ejemplo de Recibo cuando se realiza una operación con tarjeta AMEX Cuando se reciba el elemento marcaTarjeta con valor 8, esto indica que la tarjeta con la que se ha hecho la operación es una tarjeta AMEX, y los cambios en el recibo son los siguientes: • •
Cambiar el logo en el recibo, tal y como se muestra en el ejemplo. Imprimir la caducidad de la tarjeta.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 69
Integracion TpvpcImplantado
En el siguiente XML de ejemplo se muestra el en negrita el elemento con el que reconoceremos que la operación se corresponde con una hecha con tarjeta AMEX:
PAGO 1.01 978 ***********1005 374907*****1005 8 840 1249 777888991 2 2703 078090140522120226081226 FAC-LATENTE 2014-05-22 12:02:24.0 Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 70
Integracion TpvpcImplantado
F Autorizada 081226 42687D0CCDDB630F2B72D58413D2C7E26442DA82
11.9
Ejemplo de recibo de una devolución
0.80 978 777888991 1 18792 FAC-LATENTE 078090140623105218139127 1 Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 71
Integracion TpvpcImplantado
18790 2014-06-23 09:53:08.0 F Autorizada D2E1164A4642A108AB2A59669582E567B09D4E10
11.10 Ejemplo de recibo de devolución sin original
1.00 Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 72
Integracion TpvpcImplantado
978 777888991 1 ************2229 0000 18796 078090140623110001139128 1 2014-06-23 11:26:57.0 F Autorizada 358357AA8B1D5CF83A12C45C292E3CBC5DA02DA
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 73
Integracion TpvpcImplantado
12.
ANEXO IX. Al llamar a la función de Pago, Preautorización, Confirmación o Devolución nos devuelve el código -2 En algunos casos, debido en la mayoría de los casos por un problema en la línea de conexión a Internet, o fallo en el dispositivo (en el caso de las operaciones de Pago o Preautorización realizadas desde el PinPad) las siguientes funciones nos pueden devolver el código de retorno -2:
¿Qué hacer en estos casos?
Esta práctica no es obligatoria, pero sí muy recomendable, ya que evitará el tener que consultar la operación manualmente desde el módulo de administración, para comprobar si la operación resultó Autorizada o Denegada. De esta forma, la aplicación del comercio, automáticamente, podrá decidir si es necesario volver a enviar la transacción o simplemente, imprimir el recibo con el justificante del Pago.
Ejemplo: Se realiza una operación por 1.00 Euros
Capturamos la hora actual del Sistema: Por ejemplo, 20080109 101525. Todos los lenguajes de desarrollo disponen de funciones para recuperar la hora del Sistema. Resultado = fnDllOperPinPad(“1.00”, “FAC123456789”, “PAGO”, cXMLResp, 1024)
Si Resultado es igual a -2:
Realizamos una operación de consulta con el intervalo temporal definido entre diez minutos antes y diez minutos después de la hora de la operación original. ResultCstr = fnDllOperConsulta(null, null, “FAC123456789”, “20080109 100525”, “20080109 102525”, “PAGO”, null, “0”, cXMLResp, 1024);
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 74
Integracion TpvpcImplantado
Si ResultCstr es igual a 0, en la variable cXMLResp tendremos un xml como el que se muestra a continuación:
Autorizacion ************2219 4912 1.00 978 1 2756 070001080109120353167980 2008-01-09 12:03:52.0 FAC123456789 F AUTORIZADA 2 1 0 1 777888991 20080109 120422 089A2555411FF75D1E0DE794421411CF110EF638
NOTA: En este caso la operación resulto Autorizada.
Si ResultCstr es igual a -2, se deberá revisar la conexión a Internet, si el problema persiste, contactar con la entidad para informar de la Incidencia.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 75
Integracion TpvpcImplantado
13.
ANEXO X. Operativas Adicionales En este Anexo, se describe la operativa adicional que sale del flujo normal de las transacciones descritas en los puntos anteriores. Esta operativa no se activa por defecto, por tanto, será responsabilidad del comercio solicitar su activación a la entidad. La configuración se realiza en base al comercio y al número de terminal.
13.1
Operativa DCC realizadas directamente en PinPad. Algunos modelos de PinPad disponen de la posibilidad de que el Titular seleccione la moneda de la transacción en el propio dispositivo, con lo que para la aplicación que utilice la librería será transparente y no tendrá que mostrar ningún mensaje al Titular. Lo que si tendrá que hacer es analizar el xml de respuesta recibido, para, en caso de que fuese necesario, imprimir el recibo con los datos DCC.
Siempre que en el xml de Respuesta aparezca el elemento , será necesario imprimir el recibo con los datos DCC. En el punto “Ejemplo de Operación DCC” se encuentra un ejemplo de cómo imprimir un recibo DCC.
Ejemplos de Operaciones DCC realizada en un dispositivo con capacidad DCC:
Llamada:
resultado = fnDllOperPinPad(“10.00”, “OPER DCC PINPAD”, “PAGO”, cXMLResp, 1024)
Respuesta:
El Titular decide pagar en su moneda: PAGO 10.00 978 ************8095 Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 76
Integracion TpvpcImplantado
************8095 1 0000 777888991 5 2334 070001080616124524332822 OPER DCC PINPAD 2008-06-16 12:45:15.0 826 7.02 1.424209 1.449133 1.7500 F Autorizada 022824 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. TRANSACTION CURRENCY GBP WHOLESALE RATE PROVIDED BY VISA MARK-UP: 1.7500 % NO COMMISSION SERVICE AND#N#EXCHANGE RATE PROVIDED BY#N#REDSYS GBP 1.00 = 1.424209 EUR Questions, if any, please#N#call (+34) 91 343 32 18#N# 84F71795299CC2AA4657E26E9070CD3DE697CDEB
El Titular decide pagar en la moneda del comercio (no hay operativa DCC): PAGO 10.00 978 ************8095 ************8095 1 0000 777888991 5 2335 070001080616124952332823 OPER EURO PINPAD Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 77
Integracion TpvpcImplantado
2008-06-16 12:49:42.0 F Autorizada 062324 BDD7ED68B1E775594DC9540CBE9E77A68540E2F4
13.2
Inhibición de recibo. Cuando el comercio tenga activada esta operativa, no es obligatorio imprimir el recibo de la operación si el importe de la operación no supera un determinado umbral. Este control es realizado por TPVPC, y en la respuesta a la operación puede indicar la necesidad de imprimir el recibo.
Siempre que en el XML de respuesta aparezca el elemento , con el valor TRUE no es obligatorio imprimir el recibo de la operación (tanto el recibo cliente como el recibo del comercio). Asimismo, tampoco es necesario solicitar firma al cliente.
Ejemplo de Operación en la que la impresión del recibo es opcional:
Llamada: resultado = fnDllOperPinPad(“10.00”, “OPER SIN RECIBO PINPAD”, “PAGO”, cXMLResp, 1024)
Respuesta: PAGO 10.00 978 ************8095 ************8095 1 0000 777888991 5 2334 Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 78
Integracion TpvpcImplantado
070001080616124524332822 OPER SIN RECIBO PINPAD 2008-06-16 12:45:15.0 F Autorizada 022824 TRUE 84F71795299CC2AA4657E26E9070CD3DE697CDEB
13.3
Ejemplo de Integración ActiveX desde página HTML En la siguiente URL, se encuentra ejemplo de uso del ActiveX. En este ejemplo no vienen descritos todos los métodos. No se debe tomar este ejemplo como una referencia de uso, su propósito es sólo ayudar en el proceso de integración.
http://sas-d.sermepa.es/TPV_PC/TpvpcImplantado.htm
13.4
Ejemplo de Integración de Librería .dll desde Aplicación en C# Ejemplo de Integración ActiveX desde aplicación C# .NET, se muestra cómo usar la integración de la librería dinámica. En el ejemplo se usa la clase ClsTpvpcLatente.cs, como interfaz de comunicación con la librería. Siempre existe la posibilidad de realizar la integración utilizando el ActiveX.
http://sas-d.sermepa.es/TPV_PC/ActiveX/EjTpvpcImplantadoNET.zip
13.5
Ejemplo de Integración de ActiveX desde Aplicación Visual Basic 6.0 Antes de abrir este proyecto, es necesario tener instalada y registrada la librería de comunicación.
http://sas-d.sermepa.es/TPV_PC/ActiveX/EjTpvpcImplantadoVB6.zip
13.6
Ejemplo de Integración de ActiveX desde Aplicación Visual Basic .NET (2005) Antes de abrir este proyecto, es necesario tener instalada y registrada la librería de comunicación
http://sas-d.sermepa.es/TPV_PC/ActiveX/ClienteVB_2005_Net.zip Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 79
Integracion TpvpcImplantado
13.7
Ejemplo de Integración de ActiveX desde Aplicación PowerBuilder 11 Antes de abrir este proyecto, es necesario tener instalada y registrada la librería de comunicación.
http://sas-d.sermepa.es/TPV_PC/ActiveX/ClientePowerBuilder_11.zip
13.8
Ejemplo de Integración de Librería desde C# para Windows Mobile (Pocket Pc) Antes de abrir este proyecto, es necesario tener instalada la librería dllTpvpcImplantadoWM.dll. Esta librería debe estar en el mismo directorio que el archivo ejecutable.
http://sas-d.sermepa.es/TPV_PC/ActiveX/AppPrueba.zip
13.9
Ejemplo de Integración de ActiveX desde Aplicación Java Antes de abrir este proyecto, es necesario tener instalada y registrada la librería de comunicación. Para este proyecto se ha usado la librería JACOB (JAva-COM Bridge). Para más información ver http://sourceforge.net/projects/jacob-project/
Esta librería usa dos componentes: o
o
Por un lado utiliza (tanto para compilar como para ejecutar) un fichero jar (jacob.jar). Por lo tanto, a la hora de ejecutar el ejemplo es necesario tener en el classpath la ruta a dicho fichero. Por otra parte, utiliza un fichero DLL (jacob-1.14.3-x86.dll o jacob-1.14.3-x64.dll, dependiendo de la arquitectura de la máquina donde se ejecute) para comunicación con la librería nativa. Es necesario especificar la ruta donde reside el fichero que corresponde a nuestra arquitectura mediante el parámetro java.library.path. Por ejemplo, a la hora de ejecutar el programa de ejemplo: java –classpath ;%CLASSPATH% –Djava.library.path=C:\_trabajo\jacob-1.14.3\dll es.sermepa.tpvpc.implantado.TpvpcLatenteJACOB
http://sas-d.sermepa.es/TPV_PC/ActiveX/ClienteImplantadoJava.zip
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 80
Integracion TpvpcImplantado
13.10 Ejemplo de Integración de Librería en Visual C++ 6.0 Una vez descomprimido el archivo .zip, existe una carpeta SDK, que contiene los archivos .lib y .h necesarios para compilar el ejemplo o cualquier proyecto que realice la integración con VC. Importante tener en cuenta, que es necesario inicializar el modelo de hilos para librerías COM.
Ej.: CoInitialize(NULL);
http://sas-d.sermepa.es/TPV_PC/ActiveX/ClienteVC.zip
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 81
Integracion TpvpcImplantado
14.
ANEXO XI. Tratamiento Firma Digitalizada Cuando una operación tiene asociada una firma digital, el comercio sólo tendrá la obligación de generar la boleta para el cliente sin la necesidad de firma. En este caso, se recibirá en el XML de respuesta el tag igual a TRUE: PAGO 0.04 978 ************2219 ************2219 1 0000 123443210 1 41722 CRED 070001090121162300446374 2009-01-21 17:24:31.0 REDSYS/SERVIRED F Autorizada 000061 E9A797406B8D56949B7B64A092F45AD8D4C20A45 TRUE
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 82
Integracion TpvpcImplantado
Aunque el comercio y el Pinpad tengan la posibilidad de firma Digitalizada, si el cliente no firma en el dispositivo (*), se deberá imprimir tanto el recibo cliente como el comercio (con la cajetilla de firma). En este caso no se recibirá el tag :
PAGO 0.02 978 ************2229 ************2229 1 0000 123443210 1 41724 CRED 070001090121150317006247 2009-01-21 17:32:25.0 REDSYS/SERVIRED F Autorizada 012434 7064C7A60A974BF59A2B1D50CBD64E549803C281
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 83
Integracion TpvpcImplantado
(*) NOTA: aun firmando el cliente en el Pinpad, la etiqueta puede no aparecer (la operación se considerará autorizada y sin firma) debido a un problema en la recepción de esta. En este caso, el comercio deberá imprimir las dos boletas como arriba expuesto, y el cliente firmar la copia para el comercio.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 84
Integracion TpvpcImplantado
15.
ANEXO XII. Tratamiento PIN Cuando una operación requiere autenticación de titular mediante PIN desde el dispositivo PinPad, no es necesario la realización de firma (ya sea manual o digitalizada) por parte del titular de la tarjeta. El resultado se mostrará en la respuesta mediante el elemento como se muestra en el ejemplo siguiente:
PAGO 0.04 978 ************0018 ************0018 2 0000 123443210 1 41726 DEB 078090090121171735362923 2009-01-21 18:19:03.0 DE PRUEBAS N1/TARJETA F Autorizada 070567 OPERACION CON PIN. FIRMA NO NECESARIA. 24008043E0FEEE639C930EC7B82294A6FA7A8BFF true 000000C000 000724 00 A0000000043060 MAESTRO 00 TRUE
Cuando aparece el tag igual a TRUE, no es obligatorio imprimir la boleta del comercio, pero sí la boleta del cliente. Si se desea imprimir la boleta del comercio se deberá imprimir el literal de la etiqueta Literales/autenticadoPorPin en lugar de la cajetilla de la firma:
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 85
Integracion TpvpcImplantado
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 86
Integracion TpvpcImplantado
16. 16.1
16.2
ANEXO XIII. Integración Librería nativa C++ Linux Requisitos mínimos de uso de la librería C++ Linux •
Kernel: 2.4.20 (i386)
•
Compilador: gcc 3.2.2
Integración entorno Linux La integración de TpvpcImplantado es también posible con sistemas Linux. Para ello se ha desarrollado una librería específica compatible con estos sistemas operativos, en concreto se trata de una librería dinámica: libImplantadoLinux.so. Esta librería exporta las funciones de TpvpcImplantado ya descritas anteriormente, de tal forma que el desarrollador puede usar un fichero de cabecera (TpvpcLatente.h) que tiene las definiciones de las funciones para poder desarrollar su aplicación y, posteriormente, usar las librerías para realizar el enlazado y la ejecución. La única diferencia con las funciones de TpvpcImplantado ya descritas anteriormente radica en los tipos de datos, que pasan a ser tipos de datos básicos de C++. Este es el contenido del fichero de cabecera TpvpcLatente.h:
/* Función que inicia la aplicación TPVPC LATENTE */ extern "C" int fnDllIniTpvpcLatente(char * cComercio, char * cTerminal, char * cClaveFirma, char * cConfPuerto, char * cVersion);
/* Fuerza la parada de TPVPC Latente. No devuelve errores. */ extern "C" int fnDllParaTpvpcLatente();
/* Función que realiza una petición de Pago o Preautorización al TPVPC utilizando un dispositivo PINPAD */ extern "C" int fnDllOperPinPad(char * cImporte, char * cFactura, char * cTipoOper, char * cXMLResp, int iTamMaxResp);
/* Función que confirma como se quiere realizar una operación que es DCC. Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 87
Integracion TpvpcImplantado
* Este método sólo debe ser llamado después de fnDllOperPinPad */ extern "C" int fnDllOperPinPadDCC(char * cImporte, char * cFactura, char * cTipoOper, char * cCodDivisa, char * cXmlResp, int iTamMaxResp);
/* Función que confirma como se quiere realizar una operación que es DCC. * Este método sólo debe ser llamado después de fnDllOperManualExt */ extern "C" int fnDllOperManualDCC(char * cCodDivisa, char * cXMLResp, int iTamMaxResp);
/* Función que realiza una petición de Pago o Preautorización al TPVPC tecleando * manualmente la tarjeta, caducidad y cvc2 */ extern "C" int fnDllOperManualExt(char * cTarjeta, char * cCaducidad, char * cCVC2, char * cImporte, char * cFactura, char * cTipoOper, char * cXMLResp, int iTamMaxResp);
/* Función que realizará una petición de Devolución/Confirmación de una operación realizada en el TPVPC */ extern "C" int fnDllOperComContable(char * cNumPedido, char * cRTSOriginal, char * cImporte, char * cFactura, char * cTipoOper, char * cXMLResp, int iTamMaxResp);
/* Función que realizará una petición de Devolución/Confirmación de una operación realizada en el TPVPC */ extern "C" int fnDllOperComContableTerminal(char * cNumTerminal, char * cNumPedido, char * cRTSOriginal, char * cImporte, char * cFactura, char * cTipoOper, char * cXMLResp, int iTamMaxResp);
/*
Función que realizará una petición de Devolución Sin Original */
extern "C" int fnDllOperDevSinOrig(char * cTarjeta, char * cCaducidad, char * cImporte, char * cFactura, char * cXMLResp, int iTamMaxResp);
/* Función para realizar consulta de operaciones realizadas con el * comercio terminal especificado en la función de Inicialización */ Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 88
Integracion TpvpcImplantado
extern "C" int fnDllOperConsulta(char * cNumPedido, char * cRTS, char * cFactura, char * cFechaIni, char * cFechaFin, char * cTipo, char * cResultado, char * cNumPagina, char * cXMLResp, int iTamMaxResp);
/* Función que realiza una consulta de Totales, sobre el comercio/terminal especificado al iniciar la librería */ extern "C" int fnDllOperTotales(char * cFecha, char * cDesgloseVM, char * cDesgloseMarcas, char * cXMLResp, int iTamMaxResp);
/* Función que realizará una Anulación de una operación de Preautorización realizada en el TPVPC */ extern "C" int fnDllOperAnulPreaut(char * cNumPedido, char * cRTSOriginal, char * cFactura, char * cXMLResp, int iTamMaxResp);
/* Función que realizará un Reemplazo de una operación de Preautorización realizada en el TPVPC */ extern "C" int fnDllOperReempPreaut(char * cNumPedido, char * cRTSOriginal, char * cImporte, char * cFactura, char * cXMLResp, int iTamMaxResp);
/* Método que continua una operación de la que se han devuelto Opciones de Pago */ extern "C" int fnDLLTrataOpcionesPago(char * cOpcionPago, char * cXMLResp, , int iTamMaxResp);
También existe una interfaz para usar un objeto C++ que se puede encontrar en la definición de la librería “LibTPVPC.h”
Para integrar la aplicación con la librería, es necesario incluir el fichero de cabecera en todos los ficheros que realicen las llamadas a las funciones de la librería. Supongamos que tenemos un fichero que contiene el código fuente de la aplicación. Es necesario incluir en este fichero una referencia al fichero de cabecera con la definición de las funciones de la librería:
#include "TpvpcLatente.h"
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 89
Integracion TpvpcImplantado
Junto con la librería se distribuye un archivo caTpvpcImplantado.pem con los certificados de Verisign necesarios para la comunicación SSL en el entorno de REAL. La librería se ha compilado utilizando la librería openSSL, no es necesario tenerla instalada en el sistema, pero si debe estar accesible en el directorio de ejecución de la aplicación el archivo caTpvpcImplantado.pem.
Si fuese necesaria la actualización de estos certificados, se podrá descargar la última versión disponible de la librería, solicitar este archivo a
[email protected] o realizarlo de forma manual (openssl necesario para generar el formato PEM). Para la descarga manual, se pueden descargar desde un navegador de la URL https://tpvpc.sermepa.es/TPV_PC/html/
Si la librería requiere la generación de un fichero de Log, éste se activará de manera remota en caso de incidencia. Se generará en el directorio de ejecución de la aplicación con el nombre logDllImplantado.txt.
16.3
Ejemplo de Integración de Librería en Linux: Librería dinámica
Este proceso consiste en tener la librería en un fichero separado del ejecutable, que es cargado de forma dinámica durante la ejecución de la aplicación, únicamente cuando alguna de las funciones de la librería es llamada. De esta forma, se optimiza el tamaño del fichero ejecutable, se ahorra memoria y es más fácil el mantenimiento de la aplicación ante nuevas versiones de la librería. Una vez finalizado el desarrollo, para generar el programa ejecutable, debemos proceder de la siguiente forma: •
Copiar el fichero con la librería (libImplantadoLinux.so) en un directorio de librerías del sistema (por ejemplo, /opt/lib)
•
Compilar el programa indicando la ruta de las librerías con el parámetro –L e indicar, con el parámetro –l el nombre de la librería a usar (sin el prefijo ‘lib’):
g++ -Wall –L/opt/lib aplicación.cpp –lTpvpcImplantado –lpthread –o
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 90
Integracion TpvpcImplantado
donde ejecutable de la aplicación •
es
nombre
del
fichero
A la hora de ejecutar la aplicación, al tratarse de una librería dinámica, ésta debe estar en el PATH de búsqueda del sistema. Para ello existen diferentes posibilidades, en este documento se recomiendan dos opciones, pero la decisión de cómo configurar este acceso es responsabilidad del desarrollador: -
Opción A: es necesario incluir en la variable de sistema LD_LIBRARY_PATH la ruta donde se ha almacenado la librería dinámica, en el caso de que no esté incluida:
export LD_LIBRARY_PATH=/opt/lib:$LD_LIBRARY_PATH
Esta instrucción se puede guardar en uno de los ficheros de arranque del sistema para que sólo se deba hacer una única vez. -
Opción B: crear un enlace simbólico a la librería en el directorio /usr/lib:
cd /usr/lib sudo ln –s /libImplantadoLinux.so libImplantadoLinux.so
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 91
Integracion TpvpcImplantado
17.
ANEXO XIV. Integración Librería JAVA La integración de TpvpcImplantado es también posible con sistemas Linux y MAC OS. Para ello se ha desarrollado una librería en JAVA (multiplataforma) que es compatible con estos sistemas operativos. Como es multiplataforma, también puede ser usada en el sistema operativo Windows. Si bien esta librería es multiplataforma, usa una librería nativa de comunicación con puertos serie, que es específica para cada plataforma. Por otra parte, esta librería JAVA tiene la posibilidad de usar aquellos Pinpad cuya conexión sea Ethernet. Esta librería exporta las funciones de TpvpcImplantado ya descritas anteriormente. El desarrollador únicamente debe importar la clase es.sermepa.implantado.SerClsTpvpcLatente, que contiene los métodos a usar. Asimismo, deberá añadir al classpath de ejecución de la aplicación los ficheros JAR contenidos en la carpeta Include.
17.1
Requisitos mínimos de la librería JAVA •
17.2
JDK o JRE 1.5.0 o superior
Desarrollo Las funciones descritas anteriormente se implementan en la clase es.sermepa.implantado.SerClsTpvpcLatente como métodos estáticos. Esta clase se encuentra en el fichero implantado.jar. Como particularidad, el método fnDllIniTpvpcLatente recibe sólo 3 parámetros, ya que recupera la configuración del puerto desde el Módulo de Administración de TPVPC. Existe, asimismo, la versión con 5 parámetros, pero está marcada como obsoleta, ya que en futuras versiones se eliminará. Ejemplo de llamada al método fnDllIniTpvpcLatente:
import es.sermepa.implantado.SerClsTpvpcLatente; ………. String cComercio = “123443210”; String cTerminal = “1”; String cClaveFirma = “AAABBB”; int retorno = SerClsTpvpcLatente.fnDllIniTpvpcLatente(cComercio, cTerminal, cClaveFirma);
17.3
Ejecución
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 92
Integracion TpvpcImplantado
Es necesario incluir en el CLASSPATH de la aplicación los ficheros implantado.jar, latente.jar y todos los ficheros JAR que se incluyen en la carpeta “include”. Para configurar el acceso a puertos serie, es necesario instalar la librería nativa RXTX, incluida en el directorio include/rxtx-2.1-7. Dentro de este directorio, hay subdirectorios para cada sistema: •
Para Linux: Seleccionar el fichero librxtxSerial.so que se encuentra en una de las subcarpetas de include/rxtx-2.1-7/Linux.
•
Para Mac_OS_X: Seleccionar el fichero librxtxSerial.jnilib que se encuentra en la carpeta include/Mac_OS_X.
•
Para Windows: Seleccionar el fichero rxtxSerial.dll que se encuentra en la carpeta include/Windows.
Una vez seleccionado el fichero deseado (y copiado al directorio requerido), es necesario añadir un parámetro de ejecución de máquina virtual Java (parámetro java.library.path). Para configurar la ejecución con esta librería: •
Windows: o
Incluir el fichero jar RXTXcomm.jar en el CLASSPATH de la aplicación. Este fichero se encuentra en el directorio “include” de la aplicación.
o
Guardar el fichero include\rxtx-2.1-7\Windows\rxtxSerial.dll en una carpeta referenciable o bien en el directorio \jre\lib\ext
o
Ejecutar la aplicación java con el parámetro java.library.path referenciando la carpeta donde se ha guardado el fichero. Ejemplo: java -Djava.library.path=%PATH_APP%\include\rxtx-2.1-7\Windows ……….
•
Linux/Mac_OS_X: o
Incluir el fichero jar RXTXcomm.jar en el CLASSPATH de la aplicación. Este fichero se encuentra en el directorio “include” de la aplicación.
o
Para Mac OS X: Guardar el fichero Mac_OS_X\librxtxSerial.jnilib en la carpeta /Library/Java/Extensions
o
Para Linux: Guardar el fichero librxtxSerial.so correspondiente a su arquitectura (seleccionar una de la carpeta Linux) en el directorio \jre\lib\ext
o
Ejecutar la aplicación java con el parámetro java.library.path referenciando la carpeta donde se ha guardado el fichero. Ejemplo:
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 93
Integracion TpvpcImplantado
java -Djava.library.path=/Library/Java/Extensions …….
o
El usuario que ejecuta debe tener permisos de administrador en el equipo, además de pertenecer a los grupos uucp y lock (en algunas máquinas, _uucp y _lock): -
Un usuario se añade a los grupos lock o uucp editando el fichero /etc/groups
-
Por ejemplo: para añadir el usuario "tpvpcimplantado" al grupo lock: [Situación previa] lock:x:54: [Situación final] lock:x:54:tpvpcimplantado
-
o
En este momento, el usuario "tpvpcimplantado" ya pertenece ya al grupo lock
Es necesario tener permiso de escritura en los directorios /var/spool/uucp /var/lock Para permitir permiso de lectura-escritura, ejecutar: chmod 666 /var/spool/uucp chmod 666 /var/lock
o
Es necesario también verificar que el usuario tiene permisos de lectura y escritura en el puerto serie seleccionado: Por ejemplo, siendo el puerto serie siguiente: /dev/ttyS1, ejecutar el comando: chmod 666 /dev/ttyS1
Para ejecución con Proxy, es necesario usar los parámetros de máquina virtual (-D) http.proxyHost (Host del proxy), http.proxyPort (Puerto de escucha del proxy), http.proxyUser (Usuario de acceso al Proxy, en caso de existir), http.proxyPassword (Password del usuario de acceso al Proxy) Un ejemplo de script con ejecución completa de la aplicación de pruebas se puede encontrar en el fichero “implantado.bat”, incluido en la carpeta “samples” de la instalación de TpvpcImplantado.
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 94
Integracion TpvpcImplantado
Junto con la librería se distribuye el archivo caTpvpcImplantado.jks con los certificados de Verisign necesarios para la comunicación SSL en el entorno de REAL y DESARROLLO. Este fichero debe estar en el directorio de ejecución de la aplicación, para el correcto funcionamiento de la librería. Si fuese necesaria la actualización de estos certificados, se podrá descargar la última versión disponible de la librería, solicitar este archivo a
[email protected] o realizarlo de forma manual (keytool necesario para generar el formato JKS). Para la descarga manual, se pueden descargar desde un navegador de la URL https://tpvpc.sermepa.es/TPV_PC/entrada Si la librería requiere la generación de un fichero de Log, éste se activará de manera remota en caso de incidencia. Se generará en el directorio de ejecución de la aplicación con el nombre logDllImplantado.txt
Redsys · C/ Francisco Sancha, 12 · 28034 · Madrid · ESPAÑA
Ref SM.DE.DNC.MAN.0046 Versión: 2.27
28/08/2014 95