1 GUIA DE AYUDA A LA INTEGRACION DE WEBPAY INDICE INTRODUCCION................................................................................................................................2 1.- VERIFICACION DE LA VERSION DE KCC..............................................................................3 2.- VERIFICACION DE LA ESTRUCTURA DE ARCHIVOS Y PERMISOS DEL KCC................4 3.- VERIFICACION DE LA CONFIGURACION DEL ARCHIVO tbk_config.dat..........................5 4.- IMPLEMENTACION DEL CGI chkmac.cgi EN LA PAGINA DE CIERRE................................6 2 INTRODUCCION Asumiendo que la instalación del Kit de webpay KCC(Kit de conexión a comercio) es responsabilidad del cliente y que por motivos de seguridad en los servidores de TECNOERA están deshabilitadas las opciones de ejecutar programas externos con la función exec, y de incluir archivos remotos mediante la función file_get_contents de PHP. Es que se ha creado la siguiente “guía de ayuda a la integración de webpay” en los servidores de TECNOERA. El objetivo de esta guía es indicar cómo implementar una alternativa al comando exec de PHP utilizando el cgi chkmac.cgi desarrollado por TECNOERA y además indicar que puntos se deben verificar en el proceso de instalación hecho por el cliente para que la instalación del KCC esté correcta. La siguiente guía NO tiene como objetivo servir de “manual de instalacion de KCC desde cero”. Para la instalación desde cero se debe recurrir al manual entregado por transbank. Son cuatro los puntos importantes a considerar en la instalación del KCC y que se tratan en esta guía. 1. 2. 3. 4. Que se esté utilizando la versión correcta del KCC según la plataforma del cliente. Que la estructura de carpetas, archivos y permisos del KCC estén correctos. Que el archivo tbk_config.dat esté configurado correctamente. Que esté implementado el uso de chkmac.cgi como alternativa al comando exec de PHP en la página de cierre de la transacción(esta página es programada por el cliente y habitualmente se llama xt_compra.php y puede estar ubicada en cualquier parte del sistema). 3 1.- VERIFICACION DE LA VERSION DE KCC El KCC es entregado por transbank mediande un archivo comprimido que contiene la estructura de carpetas y archivos cgi y el manual de instalación en formato PDF. Los archivos comprimidos entregados por Transbank según plataforma son los siguientes: ● ● ● ● ● Windows: KCC5.1-WIN.ZIP Linux Kernel 2.6: KCC5.1-Lin32-Kernel_2.6.zip Linux Kernel 2.4: KCC5.1-Lin32-Kernel_2.6.zip AIX : KCC5.1-AIX.ZIP Solaris: KCC5.1-SUN.ZIP Los Hash md5 de los cgi del KCC son los siguientes: 4 2.- VERIFICACION DE LA ESTRUCTURA DE ARCHIVOS Y PERMISOS DEL KCC El archivo comprimido del KCC viene con la estructura de carpetas y archivos ya creada, se debe descomprimir y copiar a la carpeta cgi-bin/, quedando la siguiente estructura. Los permisos para la estructura de directorios deben ser los siguientes: Directorio Lectura Escritura Ejecución cgi-bin x datos x log x maestros x template x x x Los permisos para los archivos deben ser los siguientes: Archivo Lectura Escritura Ejecución tbk_bp_pago.cgi x x tbk_bp_resultado.cgi x x tbk_check_mac.exe / tbk_check_mac.cgi x x tbk_check_mac.bat x x tbk_config.dat x tbk_trace.dat x tbk_bitacora_tipo_de_transaccion_fecha.dat x x tbk_evn_fecha.dat x x privada.pem x reintento.htm x tbk_param.txt x Nota: La tabla de permisos de directorios y archivos está transcrita del manual entregado por transbank, en la práctica, los archivos tbk_bp_pago.cgi, tbk_bp_resultado.cgi, tbk_check_mac.cgi y chkmac.cgi funcionan bien con permiso 755. 5 3.- VERIFICACION DE LA CONFIGURACION DEL ARCHIVO tbk_config.dat Por lo general este es el único archivo que debe configurar el cliente. Viene preconfigurado y normalmente las únicas variables que hay que modificar son las siguientes. URLCGICOM : Path web donde se encuentra el cgi tbk_bp_resultado.cgi SERVERCOM : IP del servidor Web del comercio donde está el cgi tbk_bp_resultado.cgi HOST : IP del servidor Web del comercio donde están las páginas de confirmación de las transacciones por parte del comercio. ● HTML_TR_NORMAL : URL absoluta de página de cierre de la transacción, es un archivo que programa el cliente y por lo general se llama xt_compra.php aunque puede llamarse de cualquier forma. ● ● ● Ejemplo del contenido del archivo tbk_config.dat: IDCOMERCIO = 597028915780 MEDCOM =2 URLCGIMEDTRA = /cgi-bin/bp_validacion.cgi WHITELISTCOM = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789._-:=/? PARAMVERIFCOM = 1 SERVERTRA = https://certificacion.webpay.cl URLCGICOM = http://www.web_del_cliente.cl/cgi-bin/tbk_bp_resultado.cgi SERVERCOM = 200.24.235.XXX PORTCOM = 80 HOST = 200.24.235.XXX WPORT = 80 URLCGITRA = /cgi-bin/bp_revision.cgi PORTTRA = 6443 PREFIJO_CONF_TR= HTML_ HTML_TR_NORMAL = http://www.web_del_cliente.cl/xt_compra.php 6 4.- IMPLEMENTACION DEL CGI chkmac.cgi EN LA PAGINA DE CIERRE Existe una página dinámica para cierre de la transacción, esta página es programada por el cliente, por lo general se llama xt_compra.php pero puede llamarse de cualquier forma y estar ubicada en cualquier parte del sitio. Para implementar el uso del cgi chkmac.cgi se debe incluir este cgi junto con los cgi del KCC y darle permiso 755. Se debe editar el archivo chkmac.cgi entregado por TECNOERA: Se debe asignar valor a las variables $conf{'passwd'} y $conf{'log_path'}. A la variable $conf{'passwd'} se le debe asignar una password, esta misma password será utilizada en el archivo de cierre de transacción. A la variable $conf{'log_path'} se le debe asignar la ruta de la carpeta log/ del KCC. 7 Hecho lo anterior se debe ubicar la página de cierre de la transacción que comunmente se llama xt_compra.php y editarla. Se debe buscar un código similar al siguiente: $cmdline = $docRoot ."/cgi-bin/tbk_check_mac.cgi $filename"; exec($cmdline,$result,$retint); y reemplazarlo por el siguiente código: $result[0] = file_get_contents("http://localhost/web_del_cliente.cl/cgi-bin/chkmac.cgi? passwd=definir_una_password&filename=$filename"); Notas: La url que se le entrega como parámetro a file_get_contents debe ser local al servidor (localhost), si no la conoce debe solicitarla mediante soporte a TECNOERA. ● La variable passwd que se entrega por GET es recibida por el archivo chkmac.cgi como $query->param('passwd') y debe contener el mismo valor que se le asignó a la variable $conf{'passwd'} en el archivo chkmac.cgi. ● La variable $filename debe contener solamente el nombre del archivo de log de la transacción (sin ruta de directorios, solamente el nombre), Ejemplo: $filename = 'log_20080118103954_0663580797.log'; ● Hecho y verificado todo lo anterior y suponiendo que el cliente programó bien la acción de su boton “PAGAR CON WEBPAY”, debería funcionar la implementación de KCC. Si hecho y verificado todo lo anterior no funciona significa que el cliente no ha programando bien la acción de su boton “PAGAR CON WEBPAY” que es el que gatilla todo el proceso.