see document - METAPROJECT

Anuncio
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.
Descargar