Professional Documents
Culture Documents
Confederacin Espaola de Cajas de Ahorros. Avda. de Bruselas, 37 28028 Madrid Tel.: 91 596 53 28 Email: soporte.tpv@ceca.es
CONTENIDO
CONTENIDO ....................................................................................................................................... 2 1.- INTRODUCCIN: .......................................................................................................................... 3 Caractersticas ms importantes: .................................................................................................... 3 2.- POR DNDE EMPEZAR: .............................................................................................................. 6 3.- TIPOS DE COMERCIOS: .............................................................................................................. 7 Estndar/Inseguro: .......................................................................................................................... 7 Seguro: ............................................................................................................................................ 7 Mixto: ............................................................................................................................................... 7 4.- ESCENARIOS DE PAGOS: ........................................................................................................... 9 Pago en comercio electrnico Estndar/no seguro: ........................................................................ 9 Pago en comercio electrnico Seguro (3D-Secure) ...................................................................... 11 5.- CLCULO DE LA FIRMA............................................................................................................ 13 6.- PROGRAMACIN A REALIZAR EN EL SERVIDOR DE COMERCIO ...................................... 15 6.1.- Compatibilidad con versiones anteriores .............................................................................. 16 6.2 Ejemplos de formularios .......................................................................................................... 17 Ejemplo de llamada en la que los datos de tarjeta son solicitados por el TPV ......................... 17 Ejemplo de llamada en la que los datos de tarjeta son solicitados por el comercio.................. 18 6.3 Direcciones de llamada ........................................................................................................... 19 7.- PERSONALIZACIN DE PGINAS. ........................................................................................... 20 7.1.- Descripcin de las pginas ................................................................................................... 21 MerchantID_ssl.html: ................................................................................................................. 21 MerchantID_OK.html:................................................................................................................. 22 MerchantID_error_atras.html: .................................................................................................... 22 MerchantID_error_maximo.html:................................................................................................ 23 Otras pginas: ............................................................................................................................ 23 Idiomas ....................................................................................................................................... 23 7.2 Publicacin de pginas y peticin de plantillas ....................................................................... 23 8.- COMUNICACIN ON-LINE ........................................................................................................ 25 Comunicacin online con respuesta requerida: ............................................................................ 26 9.- CONSULTA ONLINE DE OPERACIONES REALIZADAS: ......................................................... 28 10.- COMUNICACIN BATCH DE LAS OPERACIONES REALIZADAS ........................................ 29 11.- ANULACIN DE OPERACIONES ............................................................................................. 30 Anulacin parcial desde WEB del Comercio. ................................................................................ 32 12.- DIRECCIONES DE SOPORTE TPV ......................................................................................... 35 ANEXO 0. RUTINA DEL CLCULO DE LA FIRMA ANTIGUA: ....................................................... 36 Propsito ........................................................................................................................................ 36 Sintaxis .......................................................................................................................................... 36 Formas habituales de Uso y requisito del hosting ......................................................................... 37 ANEXO I. INSTRUCCIONES DE INSTALACIN EN UNIX/LINUX ................................................. 38 ANEXO II. INSTRUCCIONES DE INSTALACIN EN WINDOWS NT.- .......................................... 40 ANEXO III. INSTRUCCIONES DE INSTALACIN EN JAVA.- ........................................................ 42 ANEXO IV. Ejemplo de implementacin en Perl - PHP ................................................................... 43 ANEXO V. TARJETAS DE PRUEBAS .............................................................................................. 49 ANEXO VI. PAGO SEGURO 3D-SECURE. ..................................................................................... 50 ANEXO VII CONSOLA DE ADMINISTRACIN TPV VIRTUAL PARA COMERCIOS ..................... 53 ANEXO VIII: TRATAMIENTO DE ERRORES.................................................................................. 65 ANEXO IX: PETICIN DE CVV2/CVC2 ........................................................................................... 68 ANEXO X. OPERATORIA MULTIMONEDA ..................................................................................... 69 ANEXO XI: GESTOR DE OPERACIONES ....................................................................................... 72 ANEXO XII: OPERATORIA AMEX (AMERICAN EXPRESS) ........................................................... 75 PREGUNTAS FRECUENTES........................................................................................................... 78 RECOMENDACIONES. .................................................................................................................... 80 CONTROL DE VERSIONES: ............................................................................................................ 81
1.- INTRODUCCIN:
En este documento se describen las caractersticas de la versin 4.5 del TPV virtual ofrecido por CECA. Un TPV es un software que se implementa en los SERVIDORES WEB DEL COMERCIO y que permite realizar pagos securizados mediante una tarjeta de crdito/dbito en internet. Esta nueva versin es totalmente compatible con las versiones anteriores, por lo que aquellos COMERCIOS que ya estn utilizando el TPV virtual de CECA, podrn continuar hacindolo sin necesidad de realizar ningn cambio en su programacin, a no ser obviamente, que quieran incorporar alguna de las nuevas caractersticas. La implementacin de un TPV requiere unos conocimientos mnimos de programacin, por parte del cliente. Existe otra opcin denominada TPV-Blanco que es una aplicacin WEB que no se integra directamente en el SERVIDOR WEB del comercio y que permite de forma manual hacer transacciones por parte del titular del comercio. Esta opcin es distinta del TPV virtual y no requiere tener conocimientos de programacin. Su funcionamiento es el siguiente. La persona que quiera realizar la compra debe facilitar el nmero de tarjeta al comercio. El comercio entrar en una direccin de internet en la cual deber identificarse como usuarios del comercio. Una vez dentro introducir los datos proporcionados por su cliente y la operacin ser realizada. En caso de ser esta la utilidad deseada debe ponerse en contacto con su entidad para que le den ms informacin al respecto.
Caractersticas ms importantes:
Las caractersticas ms importantes, la versin 4.1 del TPV virtual permite: Uso protocolo SSL.- El CLIENTE slo necesita disponer de un navegador WEB que soporte SSL 3.0 con claves de cifrado de 128 bits (prcticamente todas las versiones actuales de navegadores existentes en el mercado cumplen este requisito) y el COMERCIO slo requiere estar creado y autorizado en las tablas del TPV virtual de CECA. Esta caracterstica ya estaba presente en la versin anterior del TPV virtual. Esta solucin garantiza: Secreto en la comunicacin entre el CLIENTE/COMERCIO y el TPV virtual, puesto que todo el dilogo es SSL 3.0 con claves de cifrado de 128 bits (la versin SSL 2.0 no ser soportada). Adems, desde la versin 2.0, se aadi la funcionalidad de que los datos de la tarjeta de crdito/dbito (PAN y Caducidad) puedan ser requeridos opcionalmente desde una pgina HTML presentada directamente por el TPV virtual, en lugar de por el COMERCIO, con lo que se le garantiza al CLIENTE por un lado que estos datos viajan siempre adecuadamente cifrados por la RED y por otro que nunca se le facilitan al COMERCIO.
Autentificacin del COMERCIO e Integridad de los datos enviados entre el CLIENTE/COMERCIO y el TPV virtual. Comunicaciones Firmadas Todas las comunicaciones hacia el TPV virtual van protegidas por una firma electrnica que es calculada e insertada por el COMERCIO en base a sus propios datos (MerchantID, AcquirerBIN y TerminalID) y a los datos de la operacin (Nmero de operacin, Importe, Tipo de Moneda, Exponente). La firma electrnica es recalculada por el TPV virtual y comparada con la firma electrnica recibida antes de proceder a aceptar cualquier pago. De esta forma se evita que un tercero pueda manipular cualquier dato entre el envo de los datos desde el comercio hasta el TPV virtual. El mismo mecanismo se sigue en la comunicacin desde el TPV Virtual hacia el COMERCIO, en caso de que la haya. Pago 3D-Secure (Verified by Visa / Mastercard SecureCode.- Una Compra
securizada en Internet consiste bsicamente en la Autentificacin del titular de la tarjeta. El CLIENTE, para ser autenticado por su entidad emisora debe tener acceso
a alguna herramienta de identificacin. El COMERCIO slo requiere estar creado y autorizado en las tablas del TPV virtual de CECA y haber sido declarado como Securizado o Mixto. La transaccin se procesar independientemente de si el CLIENTE dispone o no de una herramienta de autenticacin. Esta solucin garantiza: Secreto en la comunicacin entre el CLIENTE/COMERCIO y el TPV virtual, puesto que todo el dilogo es SSL 3.0 con claves de cifrado de 128 bits. Securizacin del COMERCIO e Integridad de los datos enviados entre el CLIENTE/COMERCIO y el TPV virtual. Autenticacin del Cliente. Las operaciones realizadas por este mtodo tratan de garantizar el pago al comercio en las operaciones en que los titulares niegan su participacin en las mismas (repudio). . El emisor de la tarjeta trata de autentificar al titular. Garanta de pago. En general para este tipo de operaciones, el COMERCIO tendr garanta de pago ante posibles repudios del titular. . Para mas detalle sobre la garanta de pago, revisar la versin actualizada del REGLAMENTO DEL TERMINAL PUNTO DE VENTA VIRTUAL DE CONFEDERACIN ESPAOLA DE CAJAS DE AHORROS Desde CECA (Confederacin Espaola de Cajas de Ahorro) impulsamos el estndar internacional de Comercio Electrnico Seguro desarrollado por Visa y MasterCard, basado en la securizacin de la identidad del comercio y autenticacin del titular de la tarjeta.. El mecanismo de autenticacin lo marcarn los distintos emisores pudiendo ser totalmente diferentes en funcin de la entidad. Cuando el cliente aprueba la operacin a travs de una identificacin positiva el comercio recibe entonces confirmacin del pago. Es en ese momento cuando la compra est efectuada y pagada con seguridad para el comercio y para el titular. Una compra efectuada a travs de este sistema tendr en general garanta de pago para el comercio ante posibles repudios del titular. De est forma se trata de eliminar uno de los mayores problemas de las operaciones actuales en Internet que denominaramos como compras estndar, donde al no estar identificado el cliente, este puede a posteriori anular la operacin alegando desconocimiento o participacin en la operacin.
En ciertos casos puntuales, y ante la certeza de que un comercio escudado en la garanta de pago ha iniciado una actividad fraudulenta (o ha relajado sus mecanismos de control del fraude permitiendo a un tercero una actividad fraudulenta en el mismo), los sistemas internacionales o nacionales pueden acordar su prdida de la garanta de pago durante un periodo determinado de tiempo, as como imponerle otras penalizaciones.
6. Una vez que el cliente ha seleccionado los productos y va a proceder al pago, se debe calcular
una firma a partir de una serie de campos. Para calcular dicha firma el comercio debe utilizar la clave de cifrado recibida. Una vez calculada la firma desde el script (php, perl, etc) sta ser enviada a CECA junto con e resto de campos necesarios, bien al entorno de pruebas bien al entorno de produccin (Ver Apartado 6.2- Programacin a realizar en el servidor del comercio - Ejemplos de formulario) 7. Una vez que se compruebe que las operaciones se lanzan correctamente habr que personalizar las pginas de pago alojadas en el servidor del TPV. (Ver apartado 7 Personalizacin de pginas) 8. Por ltimo y si de desea tener confirmacin en la WEB del comercio de las operaciones realizadas se proceder a configurar la comunicacin on-line. Para ello el comercio tendr que realizar el desarrollo de un proceso con esa funcin e indicar a CECA su URL. (Ver apartado 8 Comunicacin on-line)
Estndar/Inseguro:
No se pide ninguna autentificacin del cliente, solo se comprueba que la tarjeta tenga saldo y en algunos casos el CVV2/CVC2. Es importante destacar que No existe garanta de pago para el comercio, es decir, un cliente puede ir a su oficina varios meses despus de realizar una operacin y reclamar el importe alegando que desconoce el motivo del cargo. El banco retroceder la operacin y despus debe ser el comercio quien inicie las acciones legales que considere oportunas contra el cliente para demostrar que el cargo es valido, pero por defecto, la entidad retrocede las operaciones. Sin duda alguna este tipo de comercio es el que ms operaciones puede procesar, sin embargo debido al alto numero de incidencias tiende a desaparecer salvo en sectores que tienen un fraude bajo, como venta de entradas, donde posteriormente se exige la presentacin de la tarjeta. La mayora de entidades no concede altas para este tipo de comercios.
Seguro:
Solo se admiten operaciones donde el cliente se ha autenticado correctamente contra su entidad o bien la entidad se hace responsable del posible uso fraudulento de sus tarjetas en caso de no autenticar al titular y autorizar la operacin. En principio, todas las operaciones que se admiten con este sistema tienen garanta de pago. Por tanto la ventaja es clara, sin embargo actualmente no todas las tarjetas estn activas para funcionar en este sistema y son muchos los clientes que por desconocimiento o simplemente porque no quieren introducir sus datos de Banca Electrnica, no se autentican y por tanto la operacin no finaliza correctamente.
En ciertos casos puntuales, y ante la certeza de que un comercio escudado en la garanta de pago ha iniciado una actividad fraudulenta (o ha relajado sus mecanismos de control del fraude permitiendo a un tercero una actividad fraudulenta en el mismo), los sistemas internacionales o nacionales pueden acordar su prdida de la garanta de pago durante un periodo determinado de tiempo, as como imponerle otras penalizaciones.
Mixto:
Es una mezcla de lo anterior. En primer lugar las operaciones se intentan hacer como seguras. Si la operacin no puede ser lanzada por este modo, se lanza como una operacin normal, siempre y cuando el importe sea menor al definido por el comercio (Limite a securizar), que puede consultar y modificar desde la administracin del comercio. En este caso en las operaciones seguras el comercio tiene garanta de pago y en las no seguras el responsable es el propio comercio.
Que el comercio sea mixto no quiere decir que las operaciones con importes inferiores a importe indicado se procesen de modo inseguro. El limite securizado no funciona de ese modo. Si una tarjeta admite autenticacin, el proceso de autenticacin se inicia independientemente del importe de la operacin. El TPV si el comercio es seguro o mixto interroga a Visa/MasterCard para saber si una tarjeta admite autenticacin. Si la tarjeta admite auntenticacin en todos los casos (no importa el importe) se presenta la pagina de autenticacin de la entidad que corresponda. Una vez se presenta la pagina del banco para iniciar el proceso de autenticacin hay dos
opciones. -. El banco que corresponda no permite continuar sin autentificarte -. El banco que corresponda permite continuar temporalmente sin autentificarte o te pide el CVC2 o un dato de seguridad inferior para que temporalmente puedas comprar en comercio seguro El TPV no influye para nada en este proceso, es decisin nica del banco emisor que permita a sus clientes continuar o no continuar, es decir, comprar o no comprar en comercio seguro sin autenticarse.
1 Cliente
Comercio
7 10 4 3 2
TPV Virtual
Pasarela SET/SEP
1. Una vez que el cliente ha finalizado de confeccionar el pedido, y solicita pagar mediante tarjeta de crdito/dbito, el comercio le presenta la pgina de pago en un formulario HTML en el que no se requieren los datos de la tarjeta de crdito/dbito. 2. Al pulsar el cliente el botn Aceptar, la informacin es enviada al TPV virtual instalado en CECA. 3. Si los datos recibidos son correctos, el TPV virtual le presenta al cliente una pgina HTML con un formulario que contiene los mismos campos ocultos recibidos en el punto 2, en el que se requieren los datos de la tarjeta de crdito/dbito. Esta pgina podr ser personalizada por Comercio Caja Merchant. 4. El cliente rellena el formulario y al pulsar el botn Aceptar, la informacin es enviada al TPV virtual instalado en CECA. 5. Si los datos recibidos son correctos, el TPV virtual solicita el pago a la pasarela SET/SEP. 6. La pasarela SET/SEP devuelve el resultado de la operacin al TPV virtual. 7. Si la operacin se ha efectuado correctamente, el TPV virtual informa al comercio. 8. El Comercio comprueba y registra la operacin y comunica nuevamente el resultado al TPV virtual. 9. Si en el paso anterior el TPV virtual no consigue comunicar la operacin al comercio o ste detecta algn problema, el TPV virtual solicita a la pasarela SET/SEP que anule la operacin. 10. El TPV virtual informa finalmente al cliente del resultado de la operacin.
NOTA: Como se ver ms adelante, los pasos 7, 8 y 9 son opcionales por comercio. Este caso se corresponde a un caso con comunicacin on-line y respuesta requerida activada. En este caso el comercio nunca conocer el nmero de tarjeta empleado en la transaccin ya que este dato no se enva ni en los procesos de comunicacin on line ni aparece reflejado en la consulta de operaciones. Existe la posibilidad de que los datos de la tarjeta sean solicitados por el comercio. En este caso el comercio debe justificar la necesidad de operar de esta forma y tener la aprobacin por parte de la entidad bancaria. Adems el comercio deber auditar los procesos de seguridad necesarios definidos por VISA y Mastercard que permita custodiar los datos de la tarjeta de forma totalmente segura. El comercio podr recibir una auditoria para verificar que dichos procesos de seguridad se estn realizando.
10
Comercio Cliente
2 7 13 14
6 16
Identificacin Titular
TPV Virtual
10 12 7 8
15
11
11
Siendo: 1. Una vez que el cliente ha finalizado de confeccionar el pedido en una tienda que presente los logotipos "Verified by Visa" o "MasterCard Secure Code", seleccionados los productos y solicitado el pago mediante tarjeta de crdito / dbito, el comercio le presenta la pgina de pago en un formulario HTML en el que no se requieren los datos de la tarjeta de crdito / dbito. 2. Al pulsar el cliente el botn Aceptar, la informacin es enviada al TPV virtual instalado en CECA. 3. Si los datos recibidos son correctos, el TPV virtual le presenta al cliente una pgina HTML con un formulario que contiene los mismos campos ocultos recibidos en el punto 2, en el que se requieren los datos de la tarjeta de crdito/dbito. Esta pgina podr ser personalizada por Comercio Caja Merchant. 4. El cliente rellena el formulario y al pulsar el botn Aceptar, la informacin es enviada al TPV virtual instalado en CECA. 5. El sistema detecta que su tarjeta est activada en Comercio Electrnico Seguro, e inicia la autenticacin de su titular. 6. Esta autenticacin del titular se realizar a travs de una pequea pantalla que en ese momento se abre. Esta securizacin se podr realizar por varios caminos, a travs de Vini, por Telfono mvil, contra banca electrnica, etc.. Este mecanismo es propio del emisor de la tarjeta y por tanto difiere bastante en funcin de quien es el emisor de la tarjeta. 7. El cliente debe identificarse mediante el mecanismo facilitado por su entidad y por tanto autorizar la operacin. 8. Si se confirma la identidad del usuario, el emisor procede a autorizar la operacin. La ventana emergente se cerrar y continuar la operacin adelante. 9. El emisor autoriza la operacin emitiendo una firma nica para esta operacin, enva la operacin al TPV. 10. El TPV acepta la peticin, comprueba datos e identifica la operacin como securizada y lo remite al emisor. 11. Tras recibir el mensaje de peticin de autorizacin, el emisor validar que el AAV de la peticin de autorizacin es igual al generado originalmente y determinar si ese AAV fue usado anteriormente. De ser as, se deniega la operacin. 12. La pasarela SET/SEP devuelve el resultado de la operacin al TPV virtual. 13. Si la operacin se ha efectuado correctamente, el TPV virtual informa al comercio. 14. El Comercio comprueba y registra la operacin y comunica nuevamente el resultado al TPV virtual. 15. Si en el paso anterior el TPV virtual no consigue comunicar la operacin al Comercio o ste detecta algn problema, el TPV virtual solicita a la Pasarela SET/SEP que anule la operacin. 16. El TPV virtual informa finalmente al cliente del resultado de la operacin.
NOTA: Como se ver ms adelante, los pasos 13,14 y 15 son opcionales por comercio. Este caso se corresponde a un caso con comunicacin on line y respuesta requerida activada. En este caso el comercio nunca conocer el nmero de tarjeta empleado en la transaccin ya que este dato no se enva ni en los procesos de comunicacin on line ni aparece reflejado en la consulta de operaciones. Existe la posibilidad de que los datos de la tarjeta sean solicitados por el comercio. En este caso el comercio debe justificar la necesidad de operar de esta forma y tener la aprobacin por parte de la entidad bancaria. Adems el comercio deber auditar los procesos de seguridad necesarios definidos por VISA y Mastercard que permita custodiar los datos de la tarjeta de forma totalmente segura. El comercio podr recibir una auditoria para verificar que dichos procesos de seguridad se estn realizando.
12
y la firma calculada con SHA1 concatenando los parmetros Clave_encriptacion+MerchantID+AcquirerBIN+TerminalID+Num_operacion+Importe+Tipo Moneda+Exponente+Referencia+Cifrado+URL_OK+URL_NOK Ejemplo: Clave encriptacion: 99888888 (no viaja en el formulario) MerchantID: 111950028 AcquirerBIN: 0000554052 TerminalID: 00000003 Num_operacion: 123
13
Importe: 500 TipoMoneda: 978 Exponente: 2 Referencia: URL_OK: http://www.ceca.es URL_NOK: http://www.ceca.es -->Cadena_sha1: 998888881119500280000554052000000031235009782SHA1http://www.ceca.eshttp://www.ceca.e s -->Longitud:[85] -->Firma_calculada: 15ba153908476895d9edd75ff23b207707d2c885
Para la comunicacin on line, el proceso es el mismo. La firma enviada por el TPV es con los campos actuales Clave_encriptacion+MerchantID+AcquirerBIN+TerminalID+Num_operacion+Importe+Tipo Moneda+Exponente+Referencia
14
Num_operacion
Requerido
50
Importe
Requerido
10
TipoMoneda
Requerido
Exponente URL_OK
Requerido Requerido
1 500
URL_NOK
Requerido
500
Firma
Requerido
256
1 SSL SSL
1000 19 6
15
CVV2 Referencia
Opcional Opcional 30
CVC2 de la tarjeta. Solamente necesario si el cliente solicita estos datos. En las compras ser "", en las anulaciones el valor asignado en su momento a la operacin de compra.
Cualquier otro parmetro enviado al TPV virtual no ser tenido en cuenta y se perder en el proceso.
El campo ACTION del formulario apuntar a una URL de un Servidor WEB de CECA correspondiente al CGI que tratar tanto los datos de la operacin rellenos por el Servidor WEB del Comercio como los posibles datos de la tarjeta rellenos por el cliente. La direccin se encuentra en el punto 6.3 Direcciones que veremos ms adelante.
a) Pago_soportado.- Este campo, aadido en la versin 2.0 del TPV Virtual es opcional con el fin de poder mantener la compatibilidad con la versin anterior. Para las nuevas implementaciones su valor ser obligatorio y deber contener el valor SSL.
b) PAN.- Campo opcional de entrada de 19 caracteres como mximo. Es el Nmero de la tarjeta introducido por el cliente.
Con objeto de mantener la compatibilidad con la versin anterior del TPV virtual, este campo slo deber ir relleno si el campo Pago_soportado y Pago_elegido estn informados con el valor SSL, puesto que de lo contrario, ser el propio TPV virtual quien deba solicitar los datos de la tarjeta al cliente, tal y como ya se ha descrito en un punto anterior.
c) Caducidad.- Campo opcional de entrada de 6 caracteres. Es la fecha de caducidad de la tarjeta en formato AAAAMM introducido por el cliente. Con objeto de mantener la compatibilidad con la versin anterior del TPV virtual, este campo
slo deber ir relleno si el campo Pago_soportado y Pago_elegido estn informados con el valor SSL, puesto que de lo contrario, ser el propio TPV virtual quien solicite los datos de la
d) Idioma. Los idiomas soportados actualmente son: 1.- Espaol 6.- Ingls 2.- Cataln 7.- Francs 3.- Euskera 8.- Alemn 4.- Gallego 9.- Portugus 5.- Valenciano 10.- Italiano
e) Descripcin.- Campo opcional, variable y oculto. Es la descripcin del pedido asignada por el comercio que podr visualizarse en la pagina de pago o bien en algn tipo de monedero compatible con est especificacin.
16
Ejemplo de llamada en la que los datos de tarjeta son solicitados por el TPV
<HTML> <HEAD> <TITLE>Página de pago</TITLE> </HEAD> <BODY> <FORM ACTION="https://pgw.ceca.es/cgi-bin/tpv" METHOD="POST" ENCTYPE="application/xwww-form-urlencoded"> <INPUT NAME="MerchantID" TYPE=hidden VALUE=##MerchantID##> <INPUT NAME="AcquirerBIN" TYPE=hidden VALUE=##AcquirerBIN##> <INPUT NAME="TerminalID" TYPE=hidden VALUE=##TerminalID##> <INPUT NAME="URL_OK" TYPE=hidden VALUE=##URL_OK##> <INPUT NAME="URL_NOK" TYPE=hidden VALUE=##URL_NOK##> <INPUT NAME="Firma" TYPE=hidden VALUE=##Firma##> <INPUT NAME="Num_operacion" TYPE=hidden VALUE=##Num_operacion##> <INPUT NAME="Importe" TYPE=hidden VALUE=##Importe##> <INPUT NAME="TipoMoneda" TYPE=hidden VALUE=978> <INPUT NAME="Exponente" TYPE=hidden VALUE=2> <INPUT NAME=Pago_soportado TYPE=hidden VALUE=SSL> <INPUT NAME=Idioma TYPE=hidden VALUE=1> <CENTER> <INPUT TYPE="submit" VALUE="Comprar"> </CENTER> </FORM> </BODY> </HTML> Importante: Si hace un copiado de este cdigo a travs de la opcin copy-paste asegrese de que el cdigo destino es correcto. En algunos casos se ha detectado que al copiar el cdigo las (comillas dobles) se han sustituido por (2 comillas simples)
Obviamente, la aplicacin deber sustituir los literales de los campos VALUE que comienzan y terminan con ## por los valores adecuados.
17
Ejemplo de llamada en la que los datos de tarjeta son solicitados por el comercio
<HTML> <HEAD> <TITLE>Página de pago</TITLE> </HEAD> <BODY> <FORM ACTION="https://pgw.ceca.es/cgi-bin/tpv" METHOD="POST" ENCTYPE="application/xwww-form-urlencoded"> Tarjeta:<INPUT NAME="PAN" TYPE=text VALUE=><br> Caducidad:<INPUT NAME="Caducidad" TYPE=text VALUE=><br> CVV2/CVC2:<INPUT NAME="CVV2" TYPE=text VALUE=><br> <INPUT NAME="MerchantID" TYPE=hidden VALUE=##MerchantID##> <INPUT NAME="AcquirerBIN" TYPE=hidden VALUE=##AcquirerBIN##> <INPUT NAME="TerminalID" TYPE=hidden VALUE=##TerminalID##> <INPUT NAME="URL_OK" TYPE=hidden VALUE=##URL_OK##> <INPUT NAME="URL_NOK" TYPE=hidden VALUE=##URL_NOK##> <INPUT NAME="Firma" TYPE=hidden VALUE=##Firma##> <INPUT NAME="Num_operacion" TYPE=hidden VALUE=##Num_operacion##> <INPUT NAME="Importe" TYPE=hidden VALUE=##Importe##> <INPUT NAME="TipoMoneda" TYPE=hidden VALUE=978> <INPUT NAME="Exponente" TYPE=hidden VALUE=2> <INPUT NAME=Pago_soportado TYPE=hidden VALUE=SSL> <INPUT NAME=Pago_elegido TYPE=hidden VALUE=SSL> <INPUT NAME=Idioma TYPE=hidden VALUE=1> <CENTER> <INPUT TYPE="submit" VALUE="Comprar"> </CENTER> </FORM> </BODY> </HTML> Importante: Si hace un copiado de este cdigo a travs de la opcin copy-paste asegrese de que el cdigo destino es correcto. En algunos casos se ha detectado que al copiar el cdigo las (comillas dobles) se han sustituido por (2 comillas simples)
Obviamente, la aplicacin deber sustituir los literales de los campos VALUE que comienzan y terminan con ## por los valores adecuados. Es decir adems de los campos habituales en este caso deber de enviar los siguientes campos: PAN: Nmero entero sin espacios en blanco ni caracteres extraos. Caducidad: Estrictamente en el formato AAAAMM. CVV2: Tres dgitos numrico (ms informacin en apndice) Pago_soportado=SSL Pago_elegido=SSL
18
Importante: Esta forma de funcionamiento debe contar con la aprobacin por parte de la entidad bancaria, por defecto no est permitida. El comercio debe justificar la necesidad de esta forma de operar as como auditar los procesos de seguridad necesarios para solicitar datos bancarios desde su servidor.
https://pgw.ceca.es/cgi-bin/tpv http://tpv.ceca.es:8000/cgi-bin/tpv
Estos sern los nicos valores vlidos en el campo ACTION de los formularios descritos anteriormente.
19
MerchantID_ok.html
MerchantID_error_atras.html MerchantID_error_maximo.html
La mayora de las entidades dispone de un juego de paginas que todos sus comercios deben utilizar, algunas incorporan un logo del comercio y no permiten utilizar paginas propias. Antes de iniciar cualquier desarrollo es importante que contacte con su entidad o con soporte.tpv@ceca.es para saber la poltica de su entidad al respecto. En el caso donde se permita la personalizacin de las pginas se pueden enviar unas plantillas sobre las que aadir el diseo grafico Para el resto de comercios stas pginas son totalmente personalizables por comercio e idioma, aunque por defecto estas aparecen sin ninguna esttica. El comercio podr alojar en el servidor seguro del TPV virtual, imgenes, css y js. Las paginas de OK y error siempre se presentan, aunque pueden ser personalizadas de forma que su nica misin sean redirigir al cliente a la direccin indicada por el comercio.
Cada comercio ha de sustituir la palabra MerchantID por el nmero de su comercio (9 dgitos), as como escribir todo en letras minsculas.
Si el comercio no ha solicitado la personalizacin de sus pginas se mostrarn las de por defecto sin esttica alguna. Cajas de texto sobre fondo blanco.
20
Importante: Si hace un copiado de este cdigo a travs de la opcin copy-paste asegrese de que el cdigo destino es correcto. En algunos casos se ha detectado que al copiar el cdigo las (comillas dobles) se han sustituido por (2 comillas simples) El formato del campo Caducidad tiene que ser AAAAMM. De cara a evitar errores de tecleo se puede aadir scripts en Javascript para tratar de evitar estos problemas y facilitar la
introduccin de estos datos por parte del cliente, por ejemplo solicitando la fecha de caducidad a travs de un combo que posteriormente formatea la fecha en el formato exigido. En este caso el comercio debe asegurar su compatibilidad con las distintas versiones de navegadores.
Nota importante: Si desde dichas pginas HTML se utilizan grficos en formato GIF JPG, debern referenciarse como ../images_<MerchantID>/<grfico>, con objeto de poder separar en el TPV Virtual los grficos que corresponden a cada Comercio
21
MerchantID_OK.html:
Pgina HTML mostrada por el TPV virtual en el caso de que la compra finalice correctamente. Podr contener los siguientes literales, que sern sustituidos por el TPV virtual por sus valores correspondientes, antes de ser visualizada: ##COD_AUT## .- Cdigo de Autorizacin devuelto por la pasarela SET/SEP. En las compras ser siempre 000. ##NUM_AUT## .- Nmero de Autorizacin devuelto por la pasarela SET/SEP. ##REFERENCIA## .- Referencia devuelta por la pasarela SET/SEP. Este dato es imprescindible para realizar cualquier tipo de reclamacin y/o anulacin de la compra. ##IMPORTE## .- Es el importe de la compra recibido en la orden de compra. ##NUM_OPERACION## .- Es la referencia del pedido asignada por el comercio y recibida en la orden de compra. ##FECHA## .- Fecha y hora de la operacin. Hora local de la pasarela de pagos CECA. ##URL_OK## .- Es la URL determinada por el comercio a la que CECA devolver el control en este caso. Nota importante: Si desde dichas pginas HTML se utilizan grficos en formato GIF JPG, debern referenciarse como ../images_<MerchantID>/<grfico>, con objeto de poder separar en el TPV Virtual los grficos que corresponden a cada Comercio
MerchantID_error_atras.html:
Pgina mostrada por el TPV virtual en el caso de que la compra finalice con error y no se haya alcanzado el nmero mximo de reintentos definidos por el Comercio. El comercio tiene libertad para eliminar la opcin de reintentos y modificar el comportamiento de la pgina. Es aconsejable permitir reintentar la operacin as como continuar hacia la URL_NOK del comercio. Podr contener los siguientes literales, que sern sustituidos por el TPV virtual por sus valores correspondientes antes de ser visualizada: ##MENSAJE## .- Mensaje de Error devuelto por el TPV virtual por la pasarela SET/SEP. ##NUM_OPERACION## .- Es la referencia del pedido asignada por el comercio y recibida en la orden de compra. ##FECHA## .- Fecha y hora de la operacin. Hora local de la pasarela de pagos CECA. ##URL_NOK## .- Es la URL determinada por el comercio a la que CECA devolver el control en este caso. AVISO: En los comercios seguros (Verfied by Visa & MasterCard Secure Code) tras introducir los datos bancarios se inicia el proceso de autenticacin, en caso de fallo se presenta esta pagina de error_atras. Esta pgina puede disponer un javascript con la posibilidad de reintento, pero puede no funcionar ya que al reconducir al sistema de autenticacin y este trabajar bajo sesiones de navegacin va a rechazar la operacin. El cliente debe volver al comercio o a la pgina de pago inicial para reintentar la operacin. Nota importante: Si desde dichas pginas HTML se utilizan grficos en formato GIF JPG, debern referenciarse como ../images_<MerchantID>/<grfico>, con objeto de poder separar en el TPV Virtual los grficos que corresponden a cada Comercio
22
MerchantID_error_maximo.html:
Pgina mostrada por el TPV virtual en el caso de que la compra finalice con error y se haya alcanzado el nmero mximo de reintentos definidos por el comercio. Podr contener los siguientes literales, que sern sustituidos por el TPV virtual por sus valores correspondientes antes de ser visualizada: ##MENSAJE## .- Mensaje de Error devuelto por el TPV virtual por la pasarela SET/SEP. ##NUM_OPERACION## .- Es la referencia del pedido asignada por el comercio y recibida en la orden de compra. ##FECHA## .- Fecha y hora de la operacin. Hora local de la pasarela de pagos CECA. ##URL_NOK## .- Es la URL determinada por el comercio a la que CECA devolver el control en este caso. Nota importante: Si desde dichas pginas HTML se utilizan grficos en formato GIF JPG, debern referenciarse como ../images_<MerchantID>/<grfico>, con objeto de poder separar en el TPV Virtual los grficos que corresponden a cada Comercio
Otras pginas:
Existen otro juego de pginas opcionales que se explican ms adelante para el caso de comercios que quieran realizar anulaciones de operaciones de forma automtica.
Idiomas
En caso de utilizar la opcin de multi-idioma, estas pginas se llamarn: MerchantID-Idioma_ok.html MerchantID-Idioma_error_atras.html MerchantID-Idioma_error_maximo.html MerchantID-Idioma_ssl.html
Cdigos de idioma: 1.- Espaol 2.- Cataln 6.- Ingls 7.- Francs
23
Las pginas personalizadas correctamente nombradas. En las pginas se har referencia ../images_<MerchantID>/<Nombre_imagen>.gif a las imgenes de la forma
24
Longitud
9 10 8 50
Descripcin
Identifica al comercio. Facilitado por la caja en el proceso de alta Identifica la caja. Facilitado por la caja en el proceso de alta. Identificativo del Terminal. Actualmente para todos los TPV virtuales es siempre 00000003. Identifica para el comercio la operacin, n de pedido, factura, albarn, etc. Puede ser alfanumrico pero estn prohibidos los caracteres extraos tpicos como ,?,%,&,*,etc. Importe de la operacin sin formatear. Siempre ser una nmero entero donde los dos ltimos dgitos sern los cntimos de Euro. Es el cdigo ISO-4217 correspondiente a la moneda en la que se efecta el pago. Contendr el valor 724 para Pesetas y 978 para Euros. Actualmente solo se permiten pagos en Euros, luego el valor ser 978. Actualmente siempre ser 2
Importe TipoMoneda
10 3
Exponente Referencia
1 30
Referencia.- Es el nico valor devuelto por la Pasarela SET/SEP. Este dato es imprescindible para realizar cualquier tipo de reclamacin y/o anulacin de la compra.
Es una cadena de caracteres calculada mediante una rutina escrita en C proporcionada por CECA al comercio en una librera. En principio, esta librera estar disponible para entornos UNIX (SOLARIS, HP-UX, AIX y LINUX) y WINDOWS-NT/2000. En esta versin tambin se ha portado esta rutina a JAVA, por lo cual queda resuelta la portabilidad a todas las mquinas en las que est instalada la Mquina Virtual JAVA. Valor asignado por la entidad emisora a la hora de autorizar una operacin. Idioma de la operacin Cdigo ISO del pas de la tarjeta que ha realizado la operacin Los 200 primeros caracteres de la descripcin
Firma
256
6 2 3 200
La funcionalidad de este proceso ser la que determine el comercio, pero principalmente consistir en actualizar sus bases de datos internas (situacin del pedido).
La URL a la que se envan los datos puede ser cualquier lenguaje de programacin que pueda capturar los datos enviados por un formulario HTML por mtodo POST. ASP, PHP, .net, perl, etc..
IMPORTANTE: Si se realiza una compra en la web del comercio y en el mismo navegador web, compartiendo cookies, se encuentra la Web de administracin abierta o ha estado abierta, no se produce el proceso de comunicacin on-line aunque la operacin se realiza de forma correcta. Debe reiniciar el navegador WEB o abrir sesiones distintas de navegacin.
25
<HTML> <HEAD> <TITLE>Respuesta correcta a la comunicacin ON-LINE</TITLE> </HEAD> <BODY> $*$OKY$*$ </BODY> </HTML>
Para ver la configuracin actual del comercio: Desde la Web de Administracin pulse puede visualizar la configuracin actual del comercio. Dentro de los datos mostrados se
Esta URL se debe indicar en el formulario de alta del TPV virtual. Los cambios posteriores deben solicitarse a la Caja o bien enviando un correo con el Merchantid y la nueva direccin a la direccin de soporte soporte.tpv@ceca.es, indicando la configuracin de respuesta requerida y si se trata del entorno de pruebas, real o ambos. En caso de no indicar entorno, la configuracin se realizar tanto en pruebas como en real.
26
Operacin Correcta
Operacin Correcta
Operacin Correcta
Se enva formulario a la direccin especificada Se presenta la pagina OK Se enva formulario a la direccin especificada Se captura la respuesta (25 sg)
Se va a la URL_OK
Se presenta la pagina OK Incluye el string OKY No responde o no incluye el string OKY
Se presenta la pagina OK
Se va a la URL_OK Se va a la URL_OK
27
http://www.desa.ceca.es/comercio/identificacion.html
28
29
Longitud
9 10 8 50
Descripcin
Identifica al comercio. Facilitado por la caja en el proceso de alta Identifica la caja. Facilitado por la caja en el proceso de alta. Identificativo del Terminal. Actualmente siempre para todos los TPV virtuales es 00000003. Identifica para el comercio la operacin, n de pedido, factura, albarn, etc. Puede ser alfanumrico pero estn prohibidos los caracteres extraos tpicos como ,?,%,&,*,etc. Importe de la operacin sin formatear. Siempre ser un nmero entero donde los dos ltimos dgitos sern los cntimos de Euro. Es el cdigo ISO-4217 correspondiente a la moneda en la que se efecta el pago. Contendr el valor 724 para Pesetas y 978 para Euros. Actualmente solo se permiten pagos en Euros. Actualmente siempre ser 2
Importe Tipo_moneda
10 3
Exponente Referencia
1 30
Referencia.- Es el nico valor devuelto por la Pasarela SET/SEP. Este dato es imprescindible para realizar cualquier tipo de reclamacin y/o anulacin de la compra.
Es una cadena de caracteres calculada mediante una rutina C proporcionada por CECA al comercio en una librera. En principio, esta librera estar disponible para entornos UNIX (SOLARIS, HP-UX, AIX y LINUX) y WINDOWS-NT/2000. En esta versin tambin se ha portado esta rutina a JAVA, por lo cual queda resuelta la portabilidad a todas las mquinas en las que est instalada la Mquina Virtual JAVA. Es un campo numrico con una longitud mxima de 1 carcter. En caso de ir informado, permite que el TPV Virtual gestione diferentes juegos de pginas correspondientes a diferentes Idiomas para un mismo Comercio (soporte de multi-idioma). As mismo, los mensajes de error devueltos por el TPV Virtual por la Pasarela de Pagos SET/SEP, sern tambin traducidos al idioma correspondiente. Es un campo alfanumrico, y slo debe utilizarse si se desea que las pginas HTML mostradas al cliente sean diferentes de las pginas por defecto utilizadas por el TPV Virtual.
Firma
256
Idioma
Pagina
50
Acerca del campo Pgina.- Campo opcional variable y oculto. Es un campo alfanumrico, y slo debe utilizarse si se desea que las pginas HTML mostradas al cliente sean diferentes de las pginas por defecto utilizadas por el TPV Virtual. En caso de no ir relleno, las pginas HTML mostradas por el CGI, correspondientes al juego de pginas HTML por defecto del TPV Virtual, son: anulacion_ok.html anulacion_error_atrs.html si el campo Idioma no est relleno, anulacion-<Idioma>_ok.html anulacion-<Idioma>_error_atrs.html Anulacin correcta Problemas en la anulacin Anulacin correcta Problemas en la anulacin
30
Si va relleno, las pginas HTML mostradas por el CGI son: <Pagina>_ok.html <Pagina>_error_atrs.html si el campo Idioma no est relleno, <Pagina>-<Idioma>_ok.html <Pagina>-<Idioma>_error_atrs.html Anulacin correcta Problemas en la anulacin Anulacin correcta Problemas en la anulacin
Obviamente, en este caso las pginas HTML deben haber sido previamente proporcionadas por el Comercio.
El campo ACTION del formulario apuntar a la URL de un Servidor WEB de CECA correspondiente al CGI que tratar los datos del formulario, y que podr ser una de las siguientes:
https://pgw.ceca.es/cgi-bin/tpvanular http://tpv.ceca.es:8000/cgi-bin/tpvanular
PRODUCCION DESARROLLO
En la pgina siguiente se muestra un ejemplo de cmo debera ser este formulario HTML: <HTML> <HEAD> <TITLE>Página de anular operaciones</TITLE> </HEAD> <BODY> <FORM ACTION="https://pgw.ceca.es/cgi-bin/tpvanular" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded"> <INPUT NAME="MerchantID" TYPE=hidden VALUE=##MerchantID##> <INPUT NAME="AcquirerBIN" TYPE=hidden VALUE=##AcquirerBIN##> <INPUT NAME="TerminalID" TYPE=hidden VALUE=##TerminalID##> <INPUT NAME="Firma" TYPE=hidden VALUE=##Firma##> <INPUT NAME="Num_operacion" TYPE=hidden VALUE=##Num_operacion##> <INPUT NAME="Importe" TYPE=hidden VALUE=##Importe##> <INPUT NAME="TipoMoneda" TYPE=hidden VALUE=978> <INPUT NAME="Exponente" TYPE=hidden VALUE=2> <INPUT NAME="Referencia" TYPE=hidden VALUE=##Referencia##> <CENTER> <INPUT TYPE="submit" VALUE="Enviar"> <INPUT TYPE="reset" VALUE="Borrar"> </CENTER> </FORM> </BODY> </HTML> Importante: Si hace un copiado de este cdigo a travs de la opcin copy-paste asegrese de que el cdigo destino es correcto. En algunos casos se ha detectado que al copiar el cdigo las (comillas dobles) se han sustituido por (2 comillas simples)
31
Obviamente, la aplicacin deber sustituir los literales de los campos VALUE que comienzan y terminan con ## por los valores adecuados.
De modo similar a como ocurre con las operaciones de compra, el comercio puede requerir que las operaciones de ANULACION realizadas le sean comunicadas en el momento de producirse. En este caso, la comunicacin se realizar mediante protocolo HTTP HTTPS, por lo que el Comercio deber desarrollar e instalar un proceso, comunicando a CECA la URL (incluyendo protocolo) del mismo. Este CGI ser invocado con los siguientes parmetros: Nombre
MerchantID AcquirerBIN TerminalID Num_operacin
Longitud
9 9 8 50
Descripcin
Identifica al comercio. Facilitado por la caja en el proceso de alta Identifica la caja. Facilitado por la caja en el proceso de alta. Identificativo del Terminal. Actualmente para todos los TPV virtuales es siempre 00000003. Identifica para el comercio la operacin, n de pedido, factura, albarn, etc. Puede ser alfanumrico pero estn prohibidos los caracteres extraos tpicos como ,?,%,&,*,etc. Importe de la operacin sin formatear. Siempre ser un nmero entero donde los dos ltimos dgitos sern los cntimos de Euro. Es el cdigo ISO-4217 correspondiente a la moneda en la que se efecta el pago. Contendr el valor 724 para Pesetas y 978 para Euros. Actualmente solo se permiten pagos en Euros, luego el importe siempre ser un nmero entero sin formatear y donde los dos ltimos dgitos siempre son cntimos. Actualmente siempre ser 2
Importe Tipo_moneda
10 3
Exponente Referencia
1 30
Referencia.- Es el nico valor devuelto por la Pasarela SET/SEP. Este dato es imprescindible para realizar cualquier tipo de reclamacin y/o anulacin de la compra.
Es una cadena de caracteres calculada mediante una rutina C proporcionada por CECA al comercio en una librera. En principio, esta librera estar disponible para entornos UNIX (SOLARIS, HP-UX, AIX y LINUX) y WINDOWS-NT/2000. En esta versin tambin se ha portado esta rutina a JAVA, por lo cual queda resuelta la portabilidad a todas las mquinas en las que est instalada la Mquina Virtual JAVA.
Firma
256
La funcionalidad de este proceso ser la que determine el comercio, pero principalmente consistir en actualizar sus bases de datos internas.
32
1-. Opcin antigua: Anular Operacin (totalmente) 2-. Nueva opcin que solo aparece en el caso de tener activa la opcin correspondiente. Pulsando sobre la opcin Anular parcialmente
33
Restricciones: Solo los comercios autorizados por su Caja podrn utilizar esta opcin. El importe debe ser menor o igual al importe original de la operacin. Solo se permite una sola anulacin por operacin. Esta puede ser total o parcial.
Anulaciones parciales a travs de formulario Al igual que las anulaciones totales las anulaciones parciales pueden ser procesadas a partir de un formulario enviado por el comercio. Las condiciones son iguales a las expuestas anteriormente y el comportamiento ser igual al comportamiento en las anulaciones totales. Direcciones: Pruebas: http://tpv.ceca.es:8000/cgi-bin/tpvanularparcialmente Real: https://pgw.ceca.es/cgi-bin/tpvanularparcialmente
34
Le recomendamos que antes de contactar con el soporte del TPV de las Cajas de Ahorros consulte el apartado de preguntas frecuentes, ya que en la mayora de los casos en ese apartado se encuentra la solucin al problema.
35
Sintaxis
int calcular_firma (ClaveCifrado, MerchantID, AcquirerBIN, TerminalID, Num_operacion, Importe, TipoMoneda, Exponente, Referencia, Firma) char *ClaveCifrado; char *MerchantID; char *AcquirerBIN; char *TerminalID; char *Num_operacion; char *Importe; char *TipoMoneda; char *Exponente; char *Referencia; char *Firma;
Descripcin
Compone una cadena de caracteres a partir de los parmetros MerchantID, AcquirerBIN, TerminalID, Num_operacion, Importe, TipoMoneda, Exponente y Referencia y la cifra utilizando un algoritmo propietario de CECA, y dejando el resultado en la direccin apuntada por el parmetro Firma. El valor del campo ClaveCifrado ser proporcionado por CECA, despus de dar de alta un nuevo TPV. Este valor es UNICO para cada comercio, DISTINTO en pruebas que en real, no viaja por la red y por tanto garantiza que la firma solamente ha podido ser generada por el comercio. La clave de cifrado puede ser consultada a travs de la consola del TPV-Operaciones (Ver anexo VII Administracin TPV Virtual para Comercios) Esta rutina podr ser invocada por el Servidor de Comercio en dos casos: * Al preparar el formulario correspondiente a la pgina de pago. Se utilizar para enviar el valor del parmetro Firma. En este caso el parmetro Referencia deber contener el valor cadena vaca (). Dicho campo se utilizar para posibles anulaciones.
36
Cuando la pasarela de pagos le comunique que un cliente ha realizado correctamente una operacin de compra. Se utilizar para desencriptar el valor del parmetro Firma y comprobar que es correcta. En este caso, el parmetro Referencia contine el valor indicado por la pasarela.
* Cdigos devueltos: La rutina devuelve un valor 0 si la operacin se ha realizado correctamente y un valor negativo (-1) en caso contrario.
Consultar los anexos 1,2 y 3 que aparecen al final de este manual para ver como se instala la librera.
37
Copiar la librera libtpv.a en cualquier directorio del Servidor al que se tenga acceso. A continuacin, para compilar el programa (suponiendo que est escrito en "C", como suele ser lo ms habitual sobre UNIX), se debe aadir a la lista de libreras con las que se debe "linkar", la nueva librera libtpv.a de la forma:
cc -o <programa_resultado> <programa_fuente> -L<directorio_de_instalacion> -ltpv Supongamos que tenemos librera libtpv.a y el cdigo fuente, denominado calculo.c (ver ejemplo posterior) en el mismo directorio. Para compilarlo simplemente pondramos. cc -o calculo calculo.c -L./ -ltpv De esta forma crearamos en el mismo directorio un ejecutable calculo que deberamos dotar de los permisos necesarios para su ejecucin y que seria el encargado de generar la firma electrnica a incorporar en nuestro formulario. Se recomienda la limitacin de los parmetros de entrada (ver definiciones de longitud en apartado 4.1
Por lo general no es necesario compilar este programa. Se facilita desde el TPV virtual un ejecutable compatible con la mayora de las distribuciones Linux, el comercio solo debe subir en binario este programa ejecutable va FTP a su servidor y concederle los permisos de ejecucin para poder utilizarlo.
38
Importante: Si hace un copiado de este cdigo a travs de la opcin copy-paste asegrese de que el cdigo destino es correcto. En algunos casos se ha detectado que al copiar el cdigo las (comillas dobles) se han sustituido por (2 comillas simples)
39
ANEXO II. INSTRUCCIONES DE INSTALACIN EN WINDOWS NT.Consiste en hacer lo siguiente: - Copiar la librera LIBTPV.DLL en el directorio C:\WINNT\SYSTEM32. - Copiar la librera TPV.DLL en cualquier otro directorio, por ejemplo en C:\. Es aconsejable que el nombre del directorio donde la instale no contenga espacios. - La librera que debe registrar es esta ltima, con el comando: regsvr32 C:\TPV.DLL (suponiendo que est en el directorio C:\) Esto es as porque la librera TPV.DLL busca otra librera llamada LIBTPV.DLL desarrollada en CECA y que contiene la funcin "calcular_firma" que es la que contiene el algoritmo con la firma digital. Para que TPV.DLL encuentre a LIBTPV.DLL, esta ltima debe de estar en el directorio C:\WINNT\SYSTEM32.
Algunos hosting no permiten el registro de DLLs, una alternativa es la llamada al programa ejecutable calculo desde una shell en ASP tal y como se muestra a continuacin o bien la utilizacin de un paso intermedio entre ASP y el TPV mediante un formulario en PERL (ver ejemplo)
dim tpv, x, firma, precioTpv dim programa, objShell, objScriptExec, salida ' Utilizo el calculo.exe en vez de la dll Falta de aadir el parmetro con la clave clave_encriptacion programa = "W:\TPV\calculo.exe " & MerchantID & " " & AcquirerBIN & " " & TerminalID & " " & Num_operacion & " " & Importe & " " & TipoMoneda & " " & Exponente & " " & Referencia Set objShell = CreateObject("WScript.Shell") Set objScriptExec = objShell.Exec(programa) firma = objScriptExec.StdOut.ReadAll if inStr(firma, "ERROR") then response.write "Hay un error en la firma<br>" response.write programa & "<br>" response.end 'else ' response.write "Estado: " & objScriptExec.Status & " - Salida: " & firma ' response.end end if Importante: Si hace un copiado de este cdigo a travs de la opcin copy-paste asegrese de que el cdigo destino es correcto. En algunos casos se ha detectado que al copiar el cdigo las (comillas dobles) se han sustituido por (2 comillas simples)
40
EJEMPLO ASP
En est pgina, se incluye un ejemplo de cdigo "ASP" desde el que se llama a la rutina "calcular_firma" y se compone y ejecuta la pgina HTML de conexin con el TPV virtual.
<head> <script language=javascript> function lanzar() {document.forms[0].submit();} </script> </head> <body> <% set tpv = CreateObject("tpv_commerce.tpv_commerce.1") tpv.clave_encriptacion = Variable1 (solo en la version 3) tpv.MerchantID = Variable2 tpv.AcquirerBIN = Variable3 tpv.TerminalID = Variable4 tpv.Num_operacion = Variable5 tpv.Importe = Variable6 tpv.TipoMoneda = Variable7 tpv.Exponente = Variable8 tpv.Referencia="" x = tpv.calcular_firma if x <> 0 then Response.Write x Response.write "<br>" Response.Write "Error en el calculo de la firma" Response.End end if firma = tpv.Firma set tpv = Nothing %> <form method=post action="http://tpv.ceca.es:8000/cgi-bin/tpv" > <input <input <input <input <input <input <input <input <input <input <input <input <input </form> <SCRIPT language=javascript>lanzar(); </script> </body></html> type=hidden name="MerchantID" value="<%=Variable2%>"> type=hidden name="AcquirerBIN" value="<%=Variable3%>"> type=hidden name="TerminalID" value="<%=Variable4%>"> type=hidden name="URL_OK" value="<%=Direccion html de ok%>"> type=hidden name="URL_NOK" value="<%=Direccion html de NOK%>"> type=hidden name="Firma" value="<%=firma%>"> type=hidden name="Importe" value="<%=variable6%>"> type=hidden name="Idioma" value="<%=cod_idioma%>"> type=hidden name="TipoMoneda" value="<%=Variable7%>"> type=hidden name="Exponente" value="<%=Variable8%>"> type=hidden name="Pago_soportado" value="SSL"> type=hidden name="Descripcion" value="<%=descripcion%>"> type=hidden name="Num_operacion" value="<%=Variable5%>">
Importante: Si hace un copiado de este cdigo a travs de la opcin copy-paste asegrese de que el cdigo destino es correcto. En algunos casos se ha detectado que al copiar el cdigo las (comillas dobles) se han sustituido por (2 comillas simples)
41
Ejemplo en JAVA:
import es.ceca.TPV3.*; import java.io.*; class calculo { public static void main(String[] args) { try { TPV3 firma = new TPV3 (args[0]); System.out.println ("Firma:"+firma.calcularFirma (args[1], args[2], args[3], args[4],args[5], args[6], args[7], args[8]) ); } catch (Exception E) { System.out.println (" ------------------------------------"); System.out.println (" E R R O R D E S I N T A X I S"); System.out.println (" ------------------------------------"); System.out.println (""); System.out.println ("$ java calculo <passwd> <merchantid> <acquierbin> <terminalid> <num_operacion> <importe> <tipo_moneda> <exponente> <referencia>"); } } }
Importante: Si hace un copiado de este cdigo a travs de la opcin copy-paste asegrese de que el cdigo destino es correcto. En algunos casos se ha detectado que al copiar el cdigo las (comillas dobles) se han sustituido por (2 comillas simples)
42
43
Cdigo fuente mnimo: <HTML> <HEAD> <TITLE>Ejemplo</TITLE> </HEAD> <BODY> <FORM ACTION="cgi-bin/comercio.pl" METHOD="POST" ENCTYPE="application/x-www-formurlencoded"> N Operacin: <INPUT NAME="Num_operacion" TYPE=text VALUE=><br> Importe:<INPUT NAME="Importe" TYPE=text VALUE=><br> <INPUT TYPE="submit" VALUE="Enviar"> <INPUT TYPE="reset" VALUE="Borrar"> </FORM> </BODY> </HTML> Importante: Si hace un copiado de este cdigo a travs de la opcin copy-paste asegrese de que el cdigo destino es correcto. En algunos casos se ha detectado que al copiar el cdigo las (comillas dobles) se han sustituido por (2 comillas simples)
44
Cdigo perl
Recoge los parmetros que enva la anterior pagina html (n operacin e importe), calcula la firma a partir de los datos identificativos del comercio ms de la operacin y genera un formulario que nos enva. Evidentemente se DEBERAN CAMBIAR LOS DATOS IDENTIFICATIVOS DEL COMERCIO.
#!/usr/bin/perl # Perl script para la implementacin del TPV Virtual de CECA # a travs del programa "calculo". # use CGI; $cgi = new CGI; $NO = $cgi->param ('Num_operacion'); $I = $cgi->param ('Importe'); $TM = "978"; $E = "2"; # Descripcin del Comercio. $PWD = "07495119"; #Password o clave de encriptacion $MID = "111950028"; #identificacin comercio MerchantID $ABIN = "0000554052"; #identificacin de la caja AquirerBIN $TID = "00000003"; #idenficicacin del terminal TerminalID $calculo = './calculo'; # Localizacin del programa calculo (Asegurese de que es correcta la ruta) # Calculo de la firma para la operacin $FR = `$calculo $PWD $MID $ABIN $TID $NO $I $TM $E ""`; # URLs de vuelta al comercio $URL_OK = "http://www.sucomercio.com/graciasporsucompra.html"; $URL_NOK = "http://www.sucomercio.com/errorensucompora.html"; #Genera formulario para enviar a la pasarela. print "Content-type: text/html\n\n"; print "<HTML>"; print "<HEAD>"; print "<TITLE>Página de pago</TITLE>"; print "<script language=javascript>"; print "function lanzar(){document.forms[0].submit();}</script>"; print "</HEAD>"; print "<BODY>"; print "<FORM ACTION=\"http://tpv.ceca.es:8000/cgi-bin/tpv\" METHOD=\"POST\" ENCTYPE=\"application/xwww-form-urlencoded\">"; print "<INPUT NAME=\"MerchantID\" TYPE=hidden VALUE=$MID>"; print "<INPUT NAME=\"AcquirerBIN\" TYPE=hidden VALUE=$ABIN>"; print "<INPUT NAME=\"TerminalID\" TYPE=hidden VALUE=$TID>"; print "<INPUT NAME=\"Num_operacion\" TYPE=hidden VALUE=$NO>"; print "<INPUT NAME=\"Importe\" TYPE=hidden VALUE=$I>"; print "<INPUT NAME=\"TipoMoneda\" TYPE=hidden VALUE=$TM>"; print "<INPUT NAME=\"Exponente\" TYPE=hidden VALUE=$E>"; print "<INPUT NAME=\"Firma\" TYPE=hidden VALUE=$FR>"; print "<INPUT NAME=\"URL_OK\" TYPE=hidden VALUE=$URL_OK>"; print "<INPUT NAME=\"URL_NOK\" TYPE=hidden VALUE=$URL_NOK>"; print "<INPUT NAME=\"Pago_soportado\" TYPE=hidden VALUE=SSL>"; print "<INPUT NAME=\"Idioma\" TYPE=hidden VALUE=1>"; print "<CENTER>"; print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=4 color=\"#006699\"\" > "; print "<br><br><br> Conectando con entidad financiera. Por favor, espere...</font>"; print "</CENTER>"; print "</FORM><script language=javascript>lanzar();</script>"; print "</BODY>"; print "</HTML>";
Importante: Si hace un copiado de este cdigo a travs de la opcin copy-paste asegrese de que el cdigo destino es correcto. En algunos casos se ha detectado que al copiar el cdigo las (comillas dobles) se han sustituido por (2 comillas simples)
45
IMPORTANTE: Este cdigo, como todos los que aparecen en el manual es solamente un
ejemplo muy sencillo. Cada comercio tendr total libertad de modificar el programa y adecuarlo a las necesidades y requerimientos de seguridad que considere oportunas. Se recomienda la restriccin de los parmetros de entrada para aumentar la seguridad del sistema, tanto en el cdigo Perl, PHP como en el programa Clculo.
Cdigo PHP
<html> <head> <title>Ejemplo de PHP - Lanza Datos a CECA</title> <script language=javascript> function lanzar() { document.forms[0].submit(); } </script> </head> <body> <br><br> <font face="Verdana" size="3" color="#0f0084"> <center><b>Procesando operacin. <br>Enviando datos a entidad Bancaria.<br><br><br><br>Por favor espere...</center> <?php $Clave = "07495113223239"; $MerchantID = "111950323232028"; $AcquirerBIN = "000055403252"; $TerminalID = "00000003"; $Referencia = ""; $URL_OK = "http://www.ceca.es"; $URL_NOK = "http://www.ceca.es"; $string = "./calculo $Clave $MerchantID $AcquirerBIN $TerminalID $Num_operacion $Importe $Tipomoneda $Exponente \"\" "; $resultado = exec($string); ?> <FORM ACTION="http://tpv.ceca.es:8000/cgi-bin/tpv" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded"> <input name="MerchantID" type=hidden value=<?php echo $MerchantID ?>> <input name="AcquirerBIN" type=hidden value=<?php echo $AcquirerBIN ?>> <input name="TerminalID" type=hidden value=<?php echo $TerminalID ?>> <input name="Num_operacion" type=hidden value=<?php echo $Num_operacion ?>> <input name="Importe" type=hidden value=<?php echo $Importe ?>> <input name="TipoMoneda" type=hidden value=<?php echo $Tipomoneda ?>> <input name="Exponente" type=hidden value=<?php echo $Exponente ?>> <input name="URL_OK" type=hidden value=<?php echo $URL_OK ?>> <input name="URL_NOK" type=hidden value=<?php echo $URL_NOK ?>> <input name="Firma" type=hidden value=<?php echo $resultado ?>> <input name="Idioma" type=hidden value=1> <input name="Pago_soportado" type=hidden value=SSL> <SCRIPT language=javascript> lanzar(); </script> </FORM> </body> </html>
46
Importante: Si hace un copiado de este cdigo a travs de la opcin copy-paste asegrese de que el cdigo destino es correcto. En algunos casos se ha detectado que al copiar el cdigo las (comillas dobles) se han sustituido por (2 comillas simples)
El ejemplo en PHP es muy similar al ejemplo en PERL, aunque hay varias formas de hacer lo mismo, la clave esta en la ejecucin del programa calculo que devolver la firma a travs de la instruccin exec(). Primero se compone una cadena con la ejecucin del programa y las variables necesarias para el calculo de la firma y despus se ejecuta ese string mediante la funcin PHP exec() que devuelve el resultado a una variable.
$string = "./calculo $Clave $MerchantID $AcquirerBIN $TerminalID $Num_operacion $Importe $Tipomoneda $Exponente \"\" ";
$resultado = exec($string);
que poner directamente las comillas en la lnea de ejecucin, ya que de la primera forma interpreta que falta una variable y por tanto devolver un error de sintaxis..
47
<input name="URL_NOK" type=hidden value=<?php echo $URL_NOK ?>> <input name="Firma" type=hidden value=<?php echo $resultado ?>> <input name="Idioma" type=hidden value=1> <input name="Pago_soportado" type=hidden value=SSL> <SCRIPT language=javascript>lanzar();</script> </FORM> </body> </html>
Importante: Si hace un copiado de este cdigo a travs de la opcin copy-paste asegrese de que el cdigo destino es correcto. En algunos casos se ha detectado que al copiar el cdigo las (comillas dobles) se han sustituido por (2 comillas simples)
48
AAAA ser sustituido por el ao en curso. Las tarjetas se renuevan anualmente. Transcurrido el ao en curso, simplemente aumentar un ao la fecha.
A partir del 1 de Abril de 2006 la nueva poltica de seguridad para comercio electrnico obligar a los comercios que quieran solicitar los datos de tarjeta al cliente y que no quieran delegar esta funcin en el TPV virtual, deban contar con una autorizacin expresa de la caja correspondiente y cumplir las condiciones de seguridad y tratamiento de la informacin impuestas por cada entidad.
A partir del 1 de diciembre de 2008 la nueva poltica de seguridad para comercio electrnico obligar a que todas las operaciones de comercio electrnico sean tramitadas con el valor del CVV2/CVC2 de la tarjeta. Ms informacin en anexo IV Peticin de CVV2/CVC2.
49
Implementacin del pago 3D-Secure Este sistema se puede resumir en la securizacin de la persona que est utilizando la tarjeta con la que se est realizando el intento de pago. Esta securizacin puede ser por diferentes canales en funcin de las especificaciones de cada entidad. Qu clientes pueden realizar un pago 3D-Secure? Solamente podrn realizar pagos de este tipo los clientes cuya entidad (emisora de la tarjeta) soporte este tipo de pago y que previamente le haya dado de alta su tarjeta en este sistema. Cada entidad podra adoptar distintas soluciones, de forma, que no existir una nica manera de proceder. El cliente siempre deber consultar el manual de funcionamiento facilitado por su entidad o bien dirigirse a su entidad financiera para solucionar las dudas sobre el funcionamiento del software. Qu comercio puede soportar este tipo de pago? Todos los comercios que actualmente tienen contratado el TPV virtual CECA podrn utilizar este sistema previo contacto con la caja donde tengan concertado el servicio. Qu aporta este sistema al Comercio? Todas las operaciones realizadas bajo este sistema no podrn sufrir retrocesos, es decir el comercio tiene garantizado el pago y la responsabilidad de la operacin se trastada al emisor de la tarjeta en caso de repudio.
En ciertos casos puntuales, y ante la certeza de que un comercio escudado en la garanta de pago ha iniciado una actividad fraudulenta (o ha relajado sus mecanismos de control del fraude permitiendo a un tercero una actividad fraudulenta en el mismo), los sistemas internacionales o nacionales pueden acordar su prdida de la garanta de pago durante un periodo determinado de tiempo, as como imponerle otras penalizaciones.
Cmo se realiza esta autenticacin? Como comentbamos anteriormente este proceso puede diferir dependiendo de la entidad. Como ejemplo el sistema propuesto por CECA es a travs de la confirmacin de compra desde la BE del cliente. Esta confirmacin es suficiente para garantizar que la tarjeta empleada en el pago es propiedad de la persona identificada.
50
51
52
Acceso
Las direcciones establecidas para el acceso son las siguientes: PRUEBAS http://tpv.ceca.es:8000/admincomercios/inicio.html REAL https://pgw.ceca.es/admincomercios/inicio.html El usuario y password de acceso son los mismos que para la anterior administracin.
Problemas de ACCESO: La primera vez que se accede a este entorno el password de acceso coincide con el propio nmero de comercio. Tal y como se indica mediante un aviso, es conveniente cambiar el password en ese mismo momento, indicando una clave alfanumrica de al menos ocho caracteres. Cuando accede a la pantalla anterior dispone de un minuto para intentar el acceso. Superado ese tiempo deber volver a cargar la pgina e intentar el acceso.
IMPORTAMTE: El acceso a esta administracin requiere que el navegador permita una conexin segura de 128 bytes, la ejecucin de JavaScript y permitir grabar cookies. En caso de que algunas de estas condiciones no se cumpliesen, podra no acceder, no visualizarse correctamente o no funcionar correctamente.
53
54
Modificacin de los filtros de compra Importante: Se debe activar los filtros para que estos tengan efecto, aunque estn especificados, no entrarn en funcionamiento si no son activados. Si son activados y no se especifica los valores por defecto, el funcionamiento del comercio podra verse alterado. No es conveniente modificar estos filtros sino se est seguro de su funcionamiento, podra alterar el funcionamiento correcto del comercio.
55
Los lmites que se pueden establecer son los siguientes: Importe Mnimo por operacin Las operaciones con un importe inferior al especificado sern rechazadas. Importe Mximo por operacin Las operaciones con un importe superior al especificado sern rechazadas. Importe Diario Mximo Cuando a lo largo del da se alcanza este tope de importe se denegarn las operaciones posteriores. Importe Mensual Mximo - Cuando a lo largo del mes se alcanza este tope de importe se denegarn las operaciones posteriores. Importe Anual Mximo - Cuando a lo largo del ao se alcanza este tope de importe se denegarn las operaciones posteriores.
56
El comercio podr establecer los filtros por IP, BIN y tarjeta que desee, tantos y como quiera.
57
Pulsar sobre el da. Se obtiene el informe de Pulsar sobre el mes. Se obtiene el informe del mes.
ese da.
58
Bsqueda en intervalo temporal. Esta bsqueda funciona de diferente forma. Cuando se pulsa sobre la opcin, aparecen 2 calendarios como los que se ven en la figura, primero se elige la primera fecha (el desde), posteriormente la segunda fecha (el hasta). Una vez rellenas las dos fechas se pulsa sobre Realizar consulta. Tambin se puede aadir condiciones de bsqueda como en el caso anterior.
Resultados de
la bsqueda.
59
60
Visualizacin del importe en Pesetas. Al pasar el ratn sobre el importe se visualiza el importe en Pesetas
Se visualizan todos los intentos de compra llegados hasta medios de pago. No aparecern los intentos con tarjetas no numricas o caducadas.
Guardar estos datos bien como fichero plano (fichero txt) o bien como una pagina web como la est visualizando. Solo funciona en IE.
61
62
SEXTO ICONO. Simulacin de Compra Desde est opcin puede simularse una operacin de compra. Es una forma rpida de comprender como funciona el TPV virtual y como se conecta con el final de cualquier carrito de compra. Realmente se trata de una compra REAL (en el entorno de produccin), para ello el comercio deber conocer el nmero de tarjeta y fecha de caducidad que el cliente la habr facilitado por otro medio. Cuando el cliente pulsa sobre el icono solamente tiene 2 campos obligatorios, un identificador de operacin (numer de operacin) y un Importe en cntimos de Euros. Adems si lo desea puede aadir una pequea descripcin. El TPV virtual es multi-idioma, por lo que se puede especificar una pagina a mostrar, aunque se debe tener en cuenta la personalizacin de las pginas.
Importante: Esta simulacin de compra puede no ser compatible con la comunicacin on line y respuesta requerida. Depende de la configuracin del comercio.
Esta opcin esta pensada especficamente para la opcin de venta por correo. El funcionamiento es el mismo, rellenar el formulario superior y al pulsar se crea un enlace que se enviara por correo al cliente. Este lo recibir y tras pulsar sobre este enlace se conecta a la WEB donde se realizar el pago.
63
IMPORTANTE: Este enlace ser valido durante 30 das. Si se quiere aumentar o disminuir este periodo pngase en contacto con soporte.
SPTIMO ICONO. Salida. Cierre de sesin. Si pulsamos sobre el icono se borran las cookies de sesin y salimos de la aplicacin.
64
65
ERROR. Error de comunicaciones Lus. No es posible finalizar la operacin. ERROR. TimeOut SEP. No es posible finalizar la operacin. ERROR. SEP devuelve un 20 ERROR. No es posible finalizar la operacin. ERROR. Error inesperado. No es posible finalizar la operacin [%d]. ERROR. Respuesta Errnea de SEP. No es posible finalizar la operacin. ERROR. No es posible continuar con la preautorizacin. ERROR. Error en el proceso de Autentificacin. No retroceda en el navegador. Debe volver al comercio y reintentar el pago. ERROR. Entidad no disponible. Intntelo dentro de unos minutos ERROR. Error en el proceso de Autentificacin. Respuesta PAREQ no valida [%d]. No retroceda en el navegador. Debe volver al comercio y reintentar el pago. ERROR. Error en el proceso de Autentificacin. Respuesta PAREQ de su entidad no valida: %s,TXSTATUS ERROR. Fallo en el proceso de Autentificacin. Es necesario una identificacin positiva para finalizar el proceso de compra: %s,TXSTATUS ERROR. Fallo en el proceso de Autentificacin. El comercio no acepta pagos no seguros: %s. Pngase en contacto con la entidad emisora de su tarjeta.,TXSTATUS ERROR. En estos momentos no es posible iniciar un pago seguro ERROR. Comercio seguro. Su tarjeta no admite autentificacin y no puede operar en este comercio [%s]. Pngase en contacto con la entidad emisora de su tarjeta. ERROR. No es posible iniciar un pago seguro y el importe supera el mximo permitido (%f <= %s). [Resultado: %s] ERROR. En este momento no es posible iniciar un pago seguro. [Resultado: %s] ERROR. No es posible iniciar un pago seguro y el importe supera el mximo permitido (%f <= %s). [Resultado: %s] ERROR. En este momento no es posible iniciar un pago seguro y el importe supera el mximo permitido (%f <= %s). [Resultado: %s] ERROR. En este momento no es posible iniciar un pago seguro. [Resultado: %s] ERROR. El comercio tiene un filtro que no permite esta operacin. ERROR. El Comercio solo admite pago seguro. Necesita autentificarse para continuar. ERROR. Operacin segura no permitida. Importe (%14.2f) mayor del limite establecido (%14.2f). ERROR. El comercio tiene un filtro que no permite esta operacin.(Filtro2:%d) ERROR. El comercio no acepta pagos Visa no autentificados. Pngase en contacto con su entidad para activar este tipo de pago. ERROR. El comercio no acepta pagos MasterCard no autentificado. Pngase en contacto con su entidad para activar este tipo de pago. ERROR. El comercio no acepta pagos no autentificados. Pngase en contacto con su entidad para activar este tipo de pago. ERROR. Error de proceso. El comercio no acepta pagos no autentificados. Pngase en contacto con su entidad para activar este tipo de pago. ERROR. Operacin segura no autorizada. Importe (%14.2f) mayor del limite establecido (%14.2f). ERROR. Respuesta Errnea del Gestor de operaciones. Operacin anulada [%s].Gestor: [%d][%s]. ERROR. Operatoria UCAF no valida. Pngase en contacto con su comercio o caja. Tarjeta no vlida (en negativos) Tarjeta caducada Tarjeta no vlida (electrn) Tarjeta no vlida (reintentos de PIN) Nmero de tarjeta mal tecleado (check)
66
112 114 116 118 120 121 123 125 180 190 400 480 900 904 908 909 912 913 914 930 931 932 933 940 944 948 950 999
Tarjeta no vlida (se exige PIN) No admitida la forma de pago solicitada Saldo insuficiente Tarjeta no vlida (no existente en ficheros) Tarjeta no vlida en este comercio Disponible sobrepasado Nmero mximo de operaciones superado La tarjeta todava no es operativa Tarjeta no soportada por el sistema Operacin no realizable (resto de casos) Anulacin aceptada Anulacin por TO aceptada sin encontrar la operacin original Devolucin aceptada Operacin no realizable (error de formato) Tarjeta desconocida Operacin no realizable (error de sistema) Su entidad no est disponible Operacin no realizable (clave duplicada) No existe la operacin a anular Operacin no realizable (caja merchant no vlida) Operacin no realizable (comercio no dado de alta) Operacin no realizable (bin merchant no existe) Operacin no realizable (sector desconocido) Ya recibida una anulacin Operacin no realizable (sesin no vlida) Operacin no realizable (fecha/hora invlida) Devolucin no aceptada Operacin no realizable (resto de casos)
El error ms habitual ser el 190 que es la denegacin por el emisor de la tarjeta. El TPV pide la autorizacin a la entidad emisora y esta deniega sin especificar una causa exacta de denegacin. Deber el cliente ponerse en contacto con su entidad para saber la causa exacta, es esta la nica forma de conocer la causa exacta de esta denegacin
67
Pginas de Ayuda a disposicin de los comercios para saber que es el CVC2 e informar desde la pgina de pago. http://tpv.ceca.es:8000/admincomercios/ayuda_cvc2.html https://pgw.ceca.es/admincomercios/ayuda_cvc2.html
Es importante sealar que el CVC2 se valida si tiene un valor no vaco, luego si el comercio quiere exigir su validacin debe asegurarse que el cliente rellena el campo.
68
La Caja podr obligar a que el comercio sea consciente del cambio diario y obligue al comercio a enviar la conversin exacta a Euros del importe enviado en otra moneda. EL TPV Virtual facilitar un tipo de cambio para 24 horas. La tabla es transparente y constante para el comercio y tambin es visible desde la WEB de administracin.
(i) Conversin 1 Euro USD (Dlar americano) GBP (Libra Esterlina) JPY (Yen Japons) CHF (Franco Suizo)
Los comercios pueden publicar sus precios en N monedas (al principio en libras, posteriormente dlares). Los comercios deben facilitar siempre al TPV virtual el importe de la compra en la moneda en la que quiera operar y su valor correspondiente en Euros en caso que su caja as lo exija. Ejemplo: Compra de 90 dlares Importe=90 TipoMoneda=840 Importe_euros=6971 Exponente=2 *Siempre ser exponente 2, es decir, los dos ltimos dgitos siempre y en todos los casos son cntimos de la moneda que sea y los importes nmeros enteros sin formatear.
69
a)
Esquema de funcionamiento
Se distinguen 2 escenarios de funcionamiento en funcin de si el comercio esta interesado en conocer el tipo de cambio aplicado o bien delega en el TPV la conversin a Euros de la moneda enviada en la peticin de compra. Escenario 1: EL Comercio no informa de la conversin a Euros. Proceso de compra. El comercio simplemente enva el Importe y cdigo de moneda en el que desea realizar el cobro.
<INPUT TYPE=hidden name="Importe" VALUE=3750> <INPUT TYPE=hidden name="TipoMoneda" VALUE=826> <INPUT TYPE=hidden name="Exponente" VALUE=2>
En este caso se interpreta que el comercio desea realizar una operacin de 37,50 Libras esterlinas (cdigo moneda 826). El TPV buscara la conversin adecuada a la operacin y procesar la operacin de forma transparente para el comercio. En resumen, el comercio tendr un ingreso asociado en su cuenta de los euros correspondientes a la conversin aplicada y el cliente ver en los movimientos de su tarjeta un cargo de 37.50 Libras.
Comercio Paso2
Paso1: A las 18:00 horas, el TPV informar a travs de la WEB de administracin y mediante el envi de un email o fichero FTP en funcin de las preferencias del comercio, del cambio que ser aplicado para las 24 horas del siguiente da. Paso 2: Una vez recibida esa informacin el comercio podr incorporar ese cambio a sus tablas aunque no podr actualizar este valor hasta la 0:00 horas para que el cambio sea efectivo.
70
Paso3: A partir de ese momento el comercio puede ofertar en su WEB los nuevos tipo de cambio y la operatoria en distintas monedas a sus clientes. Proceso de compra. El comercio aadir al formulario de compra actual un nuevo campo denominado Importe_euros modificando el actual valor constante de TipoMoneda fijado en 978 (Euros) por el valor correspondiente.
<INPUT TYPE=hidden <INPUT TYPE=hidden <INPUT TYPE=hidden <INPUT TYPE=hidden name="Importe" VALUE=3750> name=Importe_euros VALUE="2566"> name="TipoMoneda" VALUE=826> name="Exponente" VALUE=2>
En este caso se interpreta que el comercio desea realizar una operacin en Libras esterlinas (cdigo moneda 826) donde 37,50 Libras que son 25,66Euros. En resumen, el comercio tendr un ingreso asociado en su cuenta de 25,66 y el cliente ver en los movimientos de su tarjeta un cargo de 37.50 Libras. Consideraciones a tener en cuenta en este caso. 1 -. El TPV comprobar que el importe peticin sea igual que el importe en euros por el factor de conversin, de lo contrario se rechaza
2)
Aproximaciones: Si el comercio desea aproximar sus importes en Euros a importes comerciales en otra moneda, tal vez deber operar al revs, es decir, si quiere que un producto sean 99 dlares, deber aplicar la conversin a los 99 dlares y enviar el importe resultante en Euros. En ningn caso el TPV permite aproximaciones que no se correspondan estrictamente con los cntimos de euro (aproximacin al tercer decimal, + o 1 cntimo). 2 -. El comercio podr publicar el precio en una moneda distinta al euro por clculo directo del coste en euros aplicando el cambio del da o bien siguiendo el criterio que considere oportuno siempre y cuando cumpla el mnimo de cambio exigido.
Otras consideraciones a tener en cuenta en ambos escenarios 1-. Operativa en Cuentas corrientes en monedas diferentes al Euro. El ingreso al comercio siempre ser en Euros, por tanto, en caso de cuentas abiertas en moneda diferente debe hablar con su entidad para aclarar la operatoria y posibles comisiones por conversin de moneda 2-. Operaciones con tarjetas asociadas a cuentas en otra moneda a la enviada. El comercio debe tener en cuenta que si lanza una operacin por ejemplo en dlares y el cliente efecta el pago con una tarjeta asociada a una cuenta en euros, este observar un cargo diferente a la conversin establecida por el TPV ya que intervienen comisiones de terceros que el TPV desconoce en el momento de la operacin, por tanto deber explicar al cliente que seleccione siempre que pueda la moneda corriente de su cuenta, de lo contrario siempre pueden intervenir comisiones extras que el TPV desconoce.
71
72
Estos son los nuevos campos <INPUT NAME="Datos_operaciones" value="201009100000020001" size=20> <INPUT NAME="Tipo_operacion" TYPE=text size=1 VALUE="A"> Los tres posibles valores del campo TIPO son TIPO=A TIPO=B TIPO=1 Pago Aplazado Pago 25/75 Suscripcin anual con cuota fija.
El comercio debe personalizar la pagina para incluir esta campo, ser la variable ##GESTOR##, pudiendo mostrar un aspecto como el siguiente.
Que responde al siguiente cdigo, donde en caso de una operacin del gestor de operaciones se muestra las caractersticas del pago y en caso contrario, simplemente el literal compra.
73
<tr> <td align="left"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> <b>Operacion:</b> </font> </td> <td align="left" > <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> <b> <SCRIPT LANGUAGE="JavaScript"> if ("##GESTOR##" != "") document.write("##GESTOR##"); else document.write("Compra"); </script> </b> </font> </td> </tr>
Cuando el comercio tiene activa esta opcin en su administracin WEB aparece un nuevo icono que le proporciona acceso al administrador de las operaciones realizadas por el gestor de operaciones y cuyo uso se comenta en el manual denominado Consola Gestor de Operaciones.pdf (solicitar a soporte.tpv@ceca.es)
74
El comercio por defecto no puede utilizar la operativa AMEX, debe contar con el visto bueno de su caja. Seguramente suponga un nuevo contrato entre la Caja AMEX y el comercio, debe dirigirse a su oficina y tramitar el alta. Una vez que el comercio ha realizado los trmites administrativos, desde el punto de vista del comercio el cambio ms importante es la modificacin de la pantalla para solicitar los datos de la tarjeta, donde el campo CVV2 pasa de denominarse CSC y es de 4 dgitos de longitud. Hay varias formas de hacerlo, tal vez lo ms sencillo sea aadir un combo donde en funcin del tipo de tarjeta el valor introducido se aade al value del campo CVV2 en el caso de Visa/MasterCard y al value CSC en el caso de AMEX.
75
Para Visa y MasterCard <INPUT TYPE="text" NAME="CVV2" size=3 maxlength=3 > Para American Express <INPUT TYPE="text" NAME="CSC" size=4 maxlength=4 >
Una vez el comercio tenga disponible la operatoria AMEX en la WEB de administracin aparecer el siguiente icono
Pulsando se accede a la pantalla de bsqueda de operaciones, por defecto se muestran las del ultimo mes, pero es posible establecer una bsqueda de operaciones en intervalo temporal.
Los resultados de la bsqueda aparecen en un listado donde es posible consultar ms datos de la operacin y realizar anulaciones. Listado de operaciones
Fecha abono: Amex abona las operaciones 2 das despus de esta fecha
Opcin + Datos Visualiza ms informacin sobre la operacin Opcin Anular Realiza la devolucin de la operacin IMPORTANTE El abono de estas operaciones es independiente del cierre diario del resto de operaciones. En el contrato firmado con AMEX se explicar el proceso, aunque en resumen el abono ser dos das posterior a la fecha indicada en la autorizacin de la operacin. Existen un documento proporcionado por AMEX denominado REQUISITOS PARA UTILIZAR EL NOMBRE Y EL LOGO DE AMERICAN EXPRESS EN SU SITIO WEB que describe la forma de utilizacin de su marca y logo. Este documento debe ser consultado y las pginas a publicar deben de cumplir todos los
76
puntos .
77
PREGUNTAS FRECUENTES.
La pgina que me aparecen para introducir el nmero de tarjeta est en blanco y sin ningn formato Ello Es debido a que no ha personalizado las pginas. Consulte el apartado 7 Personalizacin de pginas de este manual
Al intentar operar me aparece un error Faltan campos obligatorios En el 99% de los casos este os debido a que el campo firma no est viajando o lo est haciendo sin contenido. Asegrese de que viaja correctamente. Si la firma viaja pero no es correcta el error es otro. Este error tambin es debido por el campo Pago Soportado no viaja. Este campo actualmente es obligatorio y tiene que venir con valor SSL Por ltimo, en el caso de que los datos de la tarjeta sean solicitados por el comercio el campo Pago_elegido debe viajar con el valor SSL y adems tiene que enviar los datos de la tarjeta nmero, cvc2/cvv2 y fecha de caducidad.
Al intentar operar me aparece una cadena con la firma enviada En realidad no devuelve la cadena de la firma sino que muestra la firma enviada, un guin y la firma esperada. Ello es debido que la firma no se ha calculado de la forma correcta.
Cmo puedo saber desde mi aplicacin si la operacin realizada ha sido correcta? Para ello existe la comunicacin online. Consulte el apartado 8 Comunicacin on-line de este manual. No es recomendable usar la URL_OK para esta tarea ya que entonces se depende de la navegacin del usuario, es decir, de que el usuario pinche el botn ok, cosa que no siempre ocurre a veces cierran pulsando el aspa directamente.
Aparece una compra y a continuacin una anulacin con un intervalo de menos de un minuto: Normalmente este tipo de error es debido a que la comunicacin online que el comercio tiene activada ha fallado y el comercio tiene activada la respuesta requerida. Cuando no se recibe respuesta por parte del comercio al invocar a la url de la comunicacin online se procede a la anulacin de la operacin. Revise que la comunicacin online funciona correctamente. No se produce comunicacion on-line para las operaciones que se hacen desde la consola.
La operacin ha finalizado correctamente pero no se ha realizado la comunicacin on-line Si se realiza una compra en la web del comercio y en el mismo navegador web, compartiendo cookies, se encuentra la Web de administracin abierta o ha estado abierta, no se produce el proceso de comunicacin on-line aunque la operacin se realiza de forma correcta. Debe reiniciar el navegador WEB o abrir sesiones distintas de navegacin.
78
Qu tengo que hacer para pasar de pruebas a produccin? Pasar de pruebas a real es tan sencillo como cambiar el valor de la clave de cifrado y la direccin del actin a donde envas los datos, pasando de clave_encriptacion = 1111111 http://tpv.ceca.es:8000/cgi-bin/tpv a entorno seguro clave_encriptacion = 2222222 https://pgw.ceca.es/cgi-bin/tpv El entorno de pruebas sigue activo aunque el comercio pase a real. En resumen, el paso a real puedes hacerlo cuando quieras, aunque conviene avisar a tu Caja de la entrada en produccin para estar pendiente de posibles incidencias en medios de pago. Existen tarjetas para probar en el entorno de produccin? Existen tarjetas de prueba para el entorno de desarrollo. Para el entorno de produccin son necesarias tarjetas de verdad y que soporten autenticacin si el comercio es seguro.
79
RECOMENDACIONES.
Desde el TPV virtual siempre recomendamos que en los procesos de actualizacin de tablas, bases de datos o actualizacin de registros por parte del comercio con el fin de confirmar inmediatamente la terminacin de una transaccin se realice utilizando la llamada Comunicacin on line que se explica en este mismo manual y nunca a travs de las paginas y el proceso de navegacin del cliente. En este proceso de Comunicacin on line es conveniente o Verificar que el valor de referencia no est vaco. o Recalcular la firma para comprobar el origen y valor de la referencia. o Verificar que nmero de operacin e importe se corresponden con una operacin pendiente de pago. o Verificar direccin IP de procedencia o Y en los casos posibles utilizar una direccin HTTPS. Se recomienda la generacin del nmero de operacin de forma que estos no se repitan. En caso de ser un nmero cclico que su periodo de repeticin sea tan grande que sea imposible completar un ciclo. Administracin de password y acceso al comercio. o Recomendamos enrgicamente que el password de acceso a los entornos de administracin se cambie la primera vez de uso y que en este cambio se indique una password mayor de 8 dgitos, que sea alfanumrica con al menos 3 dgitos numricos y de una complejidad relativa. Tambin puede incorporar distincin entre maysculas y minsculas.
Recomendaciones de la Agencia de Proteccin de Datos. La Agencia Espaola de proteccin de datos, entidad cuya misin es velar por el cumplimiento de la legislacin sobre proteccin de datos y controlar su aplicacin, en especial en lo relativo a los derechos de informacin, acceso, rectificacin, oposicin y cancelacin de datos, edita unas interesantes recomendaciones para el sector de comercio electrnico que es conveniente conocer, estudiar y aplicar. Desde el TPV virtual aconsejamos que el comercio siga todas las recomendaciones que esta entidad dicta. Desde la WEB https://www.agpd.es/ se puede acceder a esta y otras documentaciones. En la seccin Protegiendo sus datos Recomendaciones puede encontrar estas recomendaciones. https://www.agpd.es/index.php?idSeccion=75 La documentacin PDF puede encontrarse en*: https://www.agpd.es/upload/recomendaciones_comercio_electronico_pdf.pdf
(* Esta direccin podra variar, se recomienda el acceso desde la pagina principal)
80
CONTROL DE VERSIONES:
01/12/2009 Versin 4.5 Revisin ntegra del manual 14/01/2010 Versin 4.6 Modificar el apartado de American Express para introducir los pasos administrativos a seguir por el comercio 17/02/2010 Versin 4.7 Modificar el apartado de American Express para hacer referencia al documento REQUISITOS PARA UTILIZAR EL NOMBRE Y EL LOGO DE AMERICAN EXPRESS EN SU SITIO WEB proporcionado por AMEX Inclusin de cifrado por SHA1
81