Professional Documents
Culture Documents
Gerencia de Tecnologa
Manual de Integracin
KIT DE CONEXIN DE COMERCIO KCC
VERSIN 6.0
TABLA DE CONTENIDOS
NUEVO EN ESTA VERSIN .................................................................................................. 4 1. INTRODUCCIN................................................................................................................... 5 2. QU ES EL KCC? ............................................................................................................... 7 2.1 PLATAFORMAS SOPORTADAS ..................................................................................... 7 2.3 COMPATIBILIDAD NAVEGADORES ............................................................................ 7 2.3 VALIDACIN DE INTEGRIDAD Y AUTENTICIDAD DEL KCC ................................ 8 3. AMBIENTES DE INCORPORACIN A WEBPAY .......................................................... 9 3.1 AMBIENTE DE CERTIFICACIN ............................................................................................ 9 3.2 AMBIENTE DE PRODUCCIN ................................................................................................ 9 4. ATRIBUTOS DE WEBPAY ................................................................................................ 10 5. CLASIFICACIONES WEBPAY ......................................................................................... 10 5.1 TIPOS DE TRANSACCIONES SOPORTADA EN ESTA VERSIN............................................... 10 5.2 TIPOS DE MONEDA ............................................................................................................ 10 5.3 TIPOS DE CAPTURA ............................................................................................................ 11 5.4 TIPOS DE PAGO .................................................................................................................. 12 5.5 MEDIOS DE CONEXIN ...................................................................................................... 13 6. ARQUITECTURA DEL KCC ............................................................................................. 14 6.1 DEFINICIONES GENERALES ................................................................................................ 14 6.1.1 Subprogramas ............................................................................................................ 14 6.1.2 Flujo de Informacin entre Servidor de Comercio y Servidor de Pago ..................... 16 6.1.3 Condiciones de Excepcin ......................................................................................... 18 7. INTEGRACIN DEL KCC CON EL SOFTWARE DE LA TIENDA VIRTUAL ........ 19 7.1 INSTALACIN DEL KCC..................................................................................................... 19 7.1.1 Creacin de estructura de Directorios ...................................................................... 19 7.1.2 Definicin de Permisos .............................................................................................. 20 7.1.3 Copia de Archivos ...................................................................................................... 21 7.2 CONFIGURACIN DEL KCC ............................................................................................... 24 7.2.1 Configuracin del archivo tbk_config.dat.................................................................. 25 7.2.2 Configuracin del archivo tbk_trace.dat ................................................................... 27 7.2.3 Habilitacin de las formas de pago en Webpay ......................................................... 28 7.3 CREACIN DE PGINAS DE COMERCIO.............................................................................. 30 7.3.1 Pgina de Pago .......................................................................................................... 30 7.3.2 Pgina de Cierre para confirmar las transacciones .................................................. 31 7.3.3 Pgina de xito .......................................................................................................... 32 7.3.4 Pgina de Fracaso ..................................................................................................... 32 7.4 VALIDACIONES OBLIGATORIAS EN PGINA DE CIERRE ................................ 33 7.4.1 Validacin de Monto .................................................................................................. 33 7.4.2 Validacin de MAC .................................................................................................... 33 7.4.3 Validacin de Duplicidad de Orden de Compra ........................................................ 34 OC OK? ............................................................................................................................... 35 7.5 GENERACIN DE LLAVES ASIMTRICAS PRODUCTIVAS ................................ 36 8. DESCRIPCIN DE TIPOS DE TRANSACCIONES ....................................................... 37 8.1 TRANSACCIN NORMAL .............................................................................................. 38
8.2 TRANSACCIN MALL VIRTUAL ............................................................................... 40 8.3 TRANSACCIN CONSULTA DE TASA ....................................................................... 42 9. ARCHIVOS GENERADOS POR EL KCC ....................................................................... 43 9.1 ARCHIVO DE LOG DE EVENTOS ........................................................................................ 43 9.2 ARCHIVO DE LOG DE TRANSACCIONES (BITCORA) ........................................................ 45 9.3 CDIGOS DE RESPUESTA ................................................................................................... 46 10. SOPORTE OPERATIVO................................................................................................... 47 ANEXO A .................................................................................................................................. 48 DATOS AMBIENTE DE CERTIFICACIN WEBPAY..................................................................... 48 ANEXO B ................................................................................................................................... 50 RECOMENDACIONES A LA SEGURIDAD DEL KCC. ................................................................... 50 ANEXO C .................................................................................................................................. 51 ALCANCE DE CERTIFICACIN EFECTUADA POR TRANSBANK ................................................. 51 ANEXO D .................................................................................................................................. 53 TIPIFICACIN DE ERRORES KCC ............................................................................................. 53 ANEXO E ................................................................................................................................... 60 CLCULO DEL VALOR CUOTA................................................................................................. 60 ANEXO F ................................................................................................................................... 61 EJEMPLO INTEGRACIN DE TIENDA TRANSACCIN NORMAL ASP ......................................... 61 ANEXO G .................................................................................................................................. 69 EJEMPLO INTEGRACIN DE TIENDA TRANSACCIN NORMAL PHP ......................................... 69
1. INTRODUCCIN
Webpay es un servicio de pago desarrollado por Transbank para realizar transacciones va Internet con tarjetas bancaras de crdito y dbito. Hoy en da constituye una herramienta clave para el desarrollo de un comercio electrnico eficaz y seguro en Chile. Este servicio se sustenta a travs de un software de aplicacin, que se separa en dos componentes independientes que interactan entre s. Una de ellas esta ubicada fsicamente en la tienda virtual, dentro del servidor de comercio en donde se genera una posible compra por intermedio del browser de un cliente y la otra en el denominado Servidor de Pago de Transbank a travs del cual se realiza la transaccin. Secuencia Webpay: 1. Esta comienza cuando el potencial cliente de una tienda virtual presiona el botn pagar. 2. En ese instante la tienda se comunica con Transbank, por medio del KCC, para solicitar autorizacin para transar la compra. 3. En este punto, la aplicacin ubicada en el Servidor de Pago toma el control de la transaccin comunicndose directamente con el cliente, solicitando los datos de su tarjeta. 4. Una vez realizado el envo de dicha informacin directamente a Transbank, se verifica la disponibilidad de cursar la transaccin. 5. En caso de que la tienda opere con Webpay Plus, se solicita la autenticacin del tarjetahabiente en su banco emisor. 6. El banco despliega pgina de autenticacin para el tarjetahabiente. 7. El tarjetahabiente ingresa los datos solicitados para autenticacin, estos dependen de cada banco. 8. El banco enva a Transbank el resultado de la autenticacin, si esta es positiva continua con los pasos siguientes, en caso contrario, Webpay rechaza la transaccin. 9. Webpay solicita la autorizacin de la transaccin al autorizador del banco emisor de la tarjeta de crdito. 10. Autorizador responde (aprobado, rechazado) a Transbank. 11. Transbank responde a Webpay el resultado de la autorizacin de la transaccin. 12. Luego se le enva una respuesta positiva o negativa a la tienda virtual, as esta puede cerrar la transaccin ya sea en forma exitosa o no.
Internet
12
COMERCIO
Tienda Virtual
4 7
KCC 6.0
Llave publica de comercio
11
POST HTTPS
3 POST HTTPS
WEBPAY Transbank
9
10
AUTORIZADOR
Internet
BANCO Emisor
2. QU ES EL KCC?
Es la aplicacin que se instala en el Servidor de Comercio que permite conectar el software utilizado por la tienda para vender sus productos y/o servicios, con el Servidor de Pago de Transbank. Es un Kit De Conexin al Comercio, identificado con la sigla KCC. Para que el KCC se conecte y logre comunicarse sin problemas con el Servidor de Pago es necesario su correcta instalacin y configuracin por parte del comercio afiliado al servicio Webpay de Transbank. As la finalidad de este manual es explicar en detalle como realizar la integracin entre el KCC y el software de venta de la tienda virtual. La integracin del KCC, consta de 2 etapas: Etapa de Certificacin: Corresponde a la etapa en donde se valida el correcto funcionamiento de la integracin del KCC en la tienda del comercio. Etapa de Produccin: Corresponde al funcionamiento productivo de la solucin en rgimen de operacin normal.
3fb87f5c8e2233a183800c3234f1b87b
Solaris
KCC6-Solaris.rar
81270304fb8f52025d6d4dafa2db4f3a
Informacin: md5sum es un comando de los sistemas Unix que permite identificar la integridad de un fichero mediante de la suma de comprobacin del hash MD5 de un archivo. Es muy utilizado por su sencillez de uso, potencia y popularidad, siendo relativamente sencillo el comprobar si un determinado archivo se ha descargado correctamente o por el contrario ha ocurrido algn problema. Ejemplo de uso:
#md5sum tbk_bp_pago.cgi Resultado esperado para KCC Linux kernel 2.6: 3fb87f5c8e2233a183800c3234f1b87b
4. ATRIBUTOS DE WEBPAY
Permite realizar transacciones seguras y en lnea a travs de Internet. La informacin de la Tarjeta de Crdito del cliente slo es manejada por Transbank, y no es de conocimiento en ningn momento por el comercio. Transacciones con Webpay Plus se solicita al tarjetahabiente autenticarse con su banco emisor, protegiendo de esta forma al comercio por eventuales fraudes o desconocimientos de compra. La seguridad es reforzada por medio de la utilizacin de servidores seguros, protegidos con SSL (Secure Socket Layer). Encriptacin de mensajera y firma digital.
5. CLASIFICACIONES WEBPAY
Tomando en cuenta que cada comercio es en si una entidad nica y con requerimientos propios, el sistema Webpay soporta dos tipos de transacciones, las cuales puede brindar una solucin tecnolgica a una amplia gama de modelos de operacin de tiendas virtuales.
Normal
Mall Virtual
10
Captura Diferida
Observacin: A pesar que el KCC ha sido desarrollado para ser utilizado por cualquier tienda virtual, este debe ser integrado a cada comercio en particular de acuerdo al tipo de plataforma, transaccin y software de comercio utilizado.
11
CREDITO DEBITO
Tres Cuotas Sin Inters Dos Cuotas Sin Inters Cuotas Comercio
Redcompra
Observacin: En la forma de pago Cuotas Comercio, la nica condicin que Transbank impone a los comercios, es que en el clculo del monto de la cuota no supere el lmite correspondiente a la tasa de inters mxima legal. Para velar por que tal condicin se cumpla, se realiza una validacin de esta tasa para todas aquellas transacciones que utilicen esta forma de pago. Se deben considerar una cantidad de cuotas entre 6 y 24. (Ver Anexo E).
12
13
6.1.1 Subprogramas
Tabla 1. Subprogramas utilizados en el KCC. La extensin de tbk_check_mac puede variar de .CGI a .EXE de acuerdo a la plataforma utilizada. (.CGI para Linux y .EXE para Windows). TBK_BP_PAGO Es el encargado de hacer el requerimiento al Servidor de Pagos, derivndole a Transbank, el control del browser del tarjetahabiente. Funciones que realiza: Firma el mensaje, agregando el MAC (cdigo de encriptacin). Conecta con Servidor de Pagos para envo de parmetros encriptados, recibiendo de dicha conexin el Token o nmero nico de la transaccin. Redirecciona el Tarjetahabiente a Transbank con el Token dado. Registra en el log de eventos: Resultado de las operaciones. Errores ocurridos.
14
TBK_BP_RESULTADO Se encarga de recibir la respuesta desde el Servidor de Pagos, transferirla al software del comercio y solicitar la entrega del control del browser del tarjetahabiente a una pgina definida por la tienda. Funciones que realiza: Valida el MAC. Recibe resultado cifrado de la transaccin. Descifra parmetros recibidos. Confirma con el comercio el cierre de las compras pasando todos los parmetros recibidos. Enva la confirmacin o rechazo del cierre de la compra con el comercio (aceptacin o rechazo por parte del comercio).
TBK_CHECK_MAC Encargado de validar ,la firma digital en las respuestas que entrega Transbank al comercio. Es una herramienta que se utiliza para asegurar que la respuesta provenga exactamente desde Transbank.
15
6.1.2 Flujo de Informacin entre Servidor de Comercio y Servidor de Pago A continuacin se explica el flujo de informacin para el tipo de transaccin normal entre el Servidor de Comercio y el Servidor de Pago. 1. El tarjetahabiente realiza una compra con tarjeta de crdito en una tienda virtual a travs del servicio Webpay de Transbank. 2. El software de la tienda ejecuta tbk_bp_pago entregndole los siguientes parmetros va POST: Monto de la compra. Nmero de Orden de Compra1. URL de xito. URL de Fracaso.
3. tbk_bp_pago se conecta con bp_validacion ubicado en el servidor de Transbank. 4. bp_validacion desencripta la informacin, valida al comercio y le asigna una sesin transaccional llamada Token. 5. bp_validacion retorna token a tbk_bp_pago del comercio, tbk_bp_pago redirecciona al tarjetahabiente a bp_revision de Transbank. 6. bp_revision busca informacin de la transaccin segn Token y despliega la ventana de solicitud de datos al tarjetahabiente. 7. El tarjetahabiente digita los datos requeridos de su tarjeta y presiona el botn Pagar. 8. En caso de operar con Webpay Plus, se solicita al tarjetahabiente su autenticacin con el banco emisor. Una vez autenticada correctamente, se solicita la autorizacin de la transaccin. 9. La transaccin es autorizada o rechazada, y su resultado es comunicado por Webpay a travs de parmetros encriptados bp_transaccion (Servidor de Pago), a tbk_bp_resultado en el Servidor de Comercio. 10. En caso de rechazo, tbk_bp_resultado registra la transaccin en su archivo log y confirma el resultado a Transbank. En caso de aprobacin, tbk_bp_resultado ejecuta una pgina (pgina de cierre), en la tienda virtual, comunicndole el nmero de la orden de compra y el cdigo de autorizacin asignado por Transbank. La tienda virtual busca en su base de datos el nmero de la orden de compra, verifica que no est ya pagada y procede a cerrar la transaccin registrando el cdigo de autorizacin de Transbank. Una vez realizado esto se devuelve un string de ACEPTADO que indica que la operacin fue realizada con xito. 11. tbk_bp_resultado recibe ACEPTADO y confirma la transaccin hacia Transbank.
1
La orden de compra es generada por el comercio, esta debe tener un largo mximo de 26 caracteres. Transbank no valida la orden de compra informada por el comercio.
16
12. Finalmente se redirecciona la pgina del tarjetahabiente a la pgina de xito o fracaso segn corresponda. Observacin: El string ACEPTADO debe ser devuelto en maysculas para que este sea reconocido por la aplicacin. El flujo de informacin se muestra grficamente en la Figura 2.
17
6.1.3 Condiciones de Excepcin Las condiciones de excepcin son ciertas instancias del proceso que hacen que la transaccin sea reversada cuando no se cumplen algunas condiciones bsicas, estas son: Timeout: El timeout se produce cuando el tiempo de espera, por parte de Transbank, de la comprobacin (ACK), de que fue realizado el cierre de la compra por parte del comercio es elevado. Se asume por lo tanto que la compra nunca fue realizada. Tiempo limite 30 segundos. Error en Cierre de la Compra: Este ocurre cuando el String de confirmacin del cierre de la compra es distinto de ACEPTADO.
18
19
Sub-Directorios El KCC posee una estructura de directorios determinada para alojar sus archivos, as dentro del directorio $(PATH_DISCO_DIRCGI), se deben crear los siguientes subdirectorios: datos log maestros template
7.1.2 Definicin de Permisos Sistema Operativo Para el usuario web se le deben otorgar los siguientes permisos a los directorios creados.
Directorio cgi-bin datos log maestros Template Lectura x x x x Escritura Ejecucin x
Tabla 2. Asignacin de Permisos. Observacin: En el caso de Unix, se debe agregar permiso de ejecucin a todos los directorios para poder acceder a los archivos ubicados dentro de ellos. Servidor Web Se deben habilitar slo los siguientes permisos en el Servidor Web a los directorios virtuales:
Directorio Virtual / cgi-bin / cgi-bin / log / cgi-bin / datos / cgi-bin / maestros Atributos Permitir ejecucin de cgi utilizando el mtodo POST. Ningn permiso Ningn permiso Ningn permiso
20
7.1.3 Copia de Archivos Dentro de la estructura de directorios definida anteriormente se deben copiar los siguientes archivos.
tbk_bp_pago.cgi Descripcin Programa CGI, mdulo ejecutable. Permite: Traspaso de datos de la transaccin y del comercio a Transbank. Firmar el mensaje, agregando el MAC. Conectar a Servidor de Pago para toma de parmetros. Redireccionar al Tarjetahabiente al Servidor de Pago en Transbank. Ubicacin $(PATH_DISCO_DIRCGI) Permiso Lectura y Ejecucin tbk_bp_resultado.cgi Descripcin Programa CGI, mdulo ejecutable. Permite: Recibir resultado de la transaccin. Validar el MAC. Confirmar con el comercio el cierre de la compra, a travs de pgina de cierre (ver punto 8.3.2). Realizar la confirmacin, ya sea exitosa o no, del cierre de compra, enlazndose con el CGI bp_transaccion, ubicado en Servidor de Pago de Transbank encargado de realizar redireccionamiento del cliente a la pgina de xito o fracaso de transaccin del comercio. Ubicacin $(PATH_DISCO_DIRCGI) Permiso Lectura y Ejecucin
la la el el la
tbk_check_mac.exe (Windows) tbk_check_mac.cgi (otras plataformas) Descripcin Programa que permite asegurar que la pgina de confirmacin del comercio es llamada desde el programa tbk_bp_resultado.cgi. Se utiliza para brindar una mayor seguridad a la transaccin. Ubicacin $(PATH_DISCO_DIRCGI) Permiso Lectura y Ejecucin tbk_check_mac.bat (para Windows) Descripcin Archivo de uso opcional, que centraliza la llamada a tbk_check_mac.exe y dirige la salida hacia un archivo para su posterior lectura. Ubicacin (PATH_DISCO_DIRCGI) Permiso Lectura y Ejecucin. tbk_config.dat Descripcin Archivo de configuracin del KCC. Permite almacenar datos de configuracin que definirn la forma en que operar la tienda en cada transaccin. Puede ser editado con un editor de texto. Ubicacin $(PATH_DISCO_DIRCGI)/datos Permiso Lectura. tbk_trace.dat Descripcin Archivo de configuracin que define el nivel de detalle del registro de eventos del KCC (Log), puede ser editado con un editor de texto. Ubicacin $(PATH_DISCO_DIRCGI)/datos Permiso Lectura.
21
Tbk_bitacora_tipo_de_transaccion_fecha.dat Descripcin Archivo que permite almacenar el resultado de las operaciones realizadas durante el mes de acuerdo al tipo de transaccin habilitado. Se genera por fecha contable. Donde: tipo_de_transaccin: Normal: tr_normal. Mall Virtual: tr_mall fecha: mm: dos dgitos de mes. dd: dos dgitos de da. Ejemplo Ubicacin Permiso Puede ser visualizado con un editor de texto. tbk_bitacora_tr_normal_0407.log $(PATH_DISCO_DIRCGI)/log Lectura y escritura.
tbk_evn_fecha.dat Descripcin Archivo que permite almacenar el resultado de las operaciones. Se genera por da. Donde Fecha: aaaa: cuatro dgitos de ao. mm: dos dgitos de mes. dd: dos dgitos de da. Ejemplo Ubicacin Permiso Puede ser visualizado con un editor de texto. tbk_evn20000410.log $(PATH_DISCO_DIRCGI)/log Lectura y escritura.
privada.pem Descripcin Llave de encriptacin de informacin enviada a travs de Internet a Transbank. Ubicacin $(PATH_DISCO_DIRCGI)/maestros. Permiso Lectura. Reintento.htm Descripcin Pgina que se despliega en caso de ocurrir un error de CGI. Ubicacin $(PATH_DISCO_DIRCGI)/templates. Permiso Lectura. tbk_param.txt Descripcin Archivo de texto que contiene los parmetros que deben recibir los CGIs bp_pago y bp_resultado dependiendo del tipo de transaccin. Ubicacin $(PATH_DISCO_DIRCGI)/datos Permiso Lectura. tbk_public_key.pem Descripcin Llave pblica Transbank, utilizada por KCC para tareas de encriptacin /firma de mensajes Ubicacin $(PATH_DISCO_DIRCGI)/maestros Permiso Lectura.
22
Estructura de directorios
cgi-bin tbk_bp_pago.cgi tbk_bp_resultado.cgi tbk_check_mac.cgi datos tbk_config.dat tbk_param.txt tbk_trace.dat log TBK_EVNAAAAMMDD.log tbk_bitacora_Tipo_transaccin_MMDD.log maestros privada.pem tbk_public_key.pem template reintento.html transicion.html
Observacin: Al momento de subir los archivos al servidor de comercio se debe establecer en la aplicacin utilizada el modo de envi como sigue:
Tipo ASCII BINARIO Extensin *.log; *.dat; *.html; *.asp *.cgi; *.exe
23
Y los parmetros que en ellos se configuran tienen la forma: $(NOMBRE_PARAMETRO) = $(VALOR_PARAMETRO) Donde: $(NOMBRE_PARAMETRO): Corresponde al nombre del parmetro a configurar. $(VALOR_PARAMETRO): Valor asignado a dicho parmetro.
24
7.2.1 Configuracin del archivo tbk_config.dat Este archivo configura el comportamiento general del KCC, tiene los siguientes parmetros.
IDCOMERCIO Valor $(CODIGO_COMERCIO) Descripcin Cdigo numrico de 12 dgitos asignado por Transbank al comercio de acuerdo a la modalidad adoptada. Ejemplo IDCOMERCIO = 597026016975 MEDCOM Valor Descripcin
$(Medio Conexin) Posibles valores: 1 Conexin segura (SSL) a bp_validacion y posterior redireccionamiento a bp_revision 1
Ejemplo
PARAMVERIFCOM Valor 0o1 Descripcin PARAMVERIFCOM es 0, no se realiza el filtro y revisin de parmetros, si es 1, si realiza. Ejemplo 1 URLCGICOM Valor $(PATH_WEB_ DIRCGI)/tbk_bp_resultado.cgi Descripcin Path web donde se encuentra el cgi tbk_bp_resultado Ejemplo URLCGICOM = /cgi-bin/tbk_bp_resultado.cgi SERVERCOM Valor $(SERVIDOR_COMERCIO) Descripcin Numero IP del servidor Web del comercio donde est el cgi tbk_bp_resultado Largo mximo 12 dgitos. Ejemplo SERVERCOM = 198.22.250.29 PORTCOM Valor Descripcin Ejemplo
$(PUERTO_COMERCIO) Puerto asignado al servidor Web del comercio donde est el CGI tbk_bp_resultado. PORT = 80
WHITELISTCOM Valor $(Lista Blanca) Descripcin Listado de caracteres permitidos en los parmetros enviados por POST o GET Ejemplo ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789./: =&?_
25
HOST Valor Descripcin Ejemplo WPORT Valor Descripcin Ejemplo URLCGITRA Valor Descripcin Ejemplo
$(SERVIDOR_CONFIRMACION_COMERCIO) IP del servidor Web del comercio donde estn las pginas de confirmacin de las transacciones por parte del comercio. HOST = 198.22.250.29
$(PUERTO_CONFIRMACIN_COMERCIO). Puerto asignado al servidor Web del comercio donde estn las pginas de confirmacin de las transacciones por parte del comercio. WPORT = 80
URLCGIMEDTRA Valor /cgi-bin/bp_validacion.cgi Descripcin Path Web del cgi bp_validacion en Transbank. Ejemplo URLCGIMEDTRA = /cgi-bin/bp_validacion.cgi SERVERTRA Valor Descripcin Ejemplo PORTTRA Valor Descripcin Ejemplo
$(SERVIDOR_TRANSBANK) Nombre o IP del servidor de Transbank donde se ejecutan las transacciones de WebPay. Incluye el prefijo https. SERVERTRA = https://certificacion.webpay.cl
$(PUERTO_TRANSBANK) Puerto asignado al servidor Web de Transbank donde se ejecutan las transacciones Webpay. PORTTRA = 6443
PREFIJO_CONF_TR Valor $(PREFIJO) Descripcin Prefijo que contiene el nombre del parmetro que indica cual es la pgina que se ejecuta en el comercio para confirmar la transaccin. Ejemplo PREFIJO_CONF_TR=HTML_ HTML_TR_NORMAL Valor $(PAGINA_CONFIRMACION) Descripcin URL absoluta que debe indicar la direccin de la pgina confirmar la transaccin NORMAL. Ejemplo http://www.comercio.cl/ xt_compra.asp HTML_TR_MALL Valor $( PAGINA_CONFIRMACION) Descripcin URL absoluta que debe indicar la direccin de la pgina confirmar la transaccin MALL. Ejemplo http://www.comercio.cl/ xt_compra.asp
26
TBK_REFERER Valor $(REFERER) Descripcin URL absoluta que debe indicar la direccin de la pgina encargada de inicializar el proceso de pago, es decir, desde donde se ejecuta el cgi tbk_bp_pago. Ejemplo http://www.comercio.cl/pago.asp
TBK_KEY_ID Valor 100 o el valor indicado por Transbank Descripcin Indica la llave publica que tiene cargada el comercio, este valor solo debe ser modificado a solicitud de Transbank. Ejemplo 100
7.2.2 Configuracin del archivo tbk_trace.dat Configura el nivel de logs que reporta el KCC, este tiene los siguientes parmetros.
GLEVEL Valor Descripcin $(NIVEL_LOG) Nivel de logs que genera el KCC. Ej.: GLEVEL = 7
Tambin existen las combinaciones de nivel de logs. De esta manera los valores posibles del parmetro GLEVEL son:
Valor 0 1 2 3 4 5 6 7 Nivel de Log No hay logs. LOGINFO LOGERROR LOGINFO+LOGERROR LOGFATAL LOGFATAL+LOGINFO LOGFATAL+LOGERROR LOGINFO+LOGERROR+LOGFATAL
27
7.2.3 Habilitacin de las formas de pago en Webpay Las formas de pago que acepta cada tienda en particular son una definicin comercial. Estas son habilitadas automticamente por Transbank desde el momento en que la tienda comienza a operar con Webpay. Las formas de pago venta normal, venta cuotas y tres cuotas sin inters se habilitan en el formulario de pago estndar de Transbank y le permiten al tarjetahabiente seleccionar la opcin a utilizar.
28
La forma de pago cuotas comercio se despliega en un formulario de pago especial que no le permite al tarjetahabiente cambiar su opcin de pago.
Para pago a travs de Redcompra, el usuario debe seleccionar el banco emisor adherido e ingresar los datos solicitados: nmero de tarjeta y/o RUT.
29
7.3.1 Pgina de Pago Por cada transaccin Webpay que el comercio quiera ejecutar deber crear una pgina dinmica de pago, que haga la llamada al CGI tbk_bp_pago.cgi con los parmetros adecuados de acuerdo a la transaccin y que se especifican ms delante. As, esta es la pgina que tiene el botn pagar y llama al CGI tbk_bp_pago.cgi con los parmetros adecuados. Ejemplo:
Default.asp Ubicacin Permiso Directorio base Lectura
30
La pgina de cierre, es ejecutada por el CGI tbk_bp_resultado2 una vez que Webpay ha resuelto el resultado de la autorizacin de la transaccin. Tiene la finalidad de confirmar la transaccin por parte del comercio. La pgina de cierre recibir por mtodo POST, los parmetros que se indican en el punto 7.4.2. Con ellos, esta pgina deber ser capaz de realizar las operaciones necesarias (validacin ver punto 7.4 y almacenaje de parmetros), desde el punto de vista del comercio, para confirmar la transaccin. La transaccin puede tener 2 resultados: autorizada por el banco o rechazada por el banco. Para el caso de transacciones autorizadas por el banco (TBK_RESPUESTA = 0), se debe considerar lo siguiente: 1. Si el comercio acepta la respuesta de la transaccin, la salida estndar de esta pgina debe devolver el String (HTML), ACEPTADO, en tal caso la CGI tbk_bp_resultado se encarga de realizar la confirmacin (ACK) a Transbank. 2. Por otro lado si el comercio no acepta la respuesta de la transaccin, el String de salida deber ser distinto a ACEPTADO, por ejemplo RECHAZADO, en tal caso la transaccin es reversada. 3. Se debe tener claro tambin, que frente a fallas en la pgina de cierre, inexistencia o no acceso a ella, la transaccin se entender como no aceptada por el comercio, generndose tambin una reversa de la autorizacin. Para el caso de transacciones rechazadas por el banco (TBK_RESPUESTA considerar lo siguiente: 0), se debe
1. No existir impacto financiero, sin embargo para este caso la respuesta por parte de la tienda debe ser siempre ACEPTADO, ver pgina 33 de este manual, de esta forma se desplegar la pgina de fracaso del comercio, de otra forma se desplegar al cliente la pgina de error de Webpay. Es importante indicar, que esta pagina debe registrar en un medio persistente el resultado entregado a Transbank, asocindolo a la Orden de Compra respectiva. Esto ayudar a la tienda a conocer y tener un respaldo de la respuesta entregada, como tambin detectar problemas propios, por ejemplo mltiples rechazos o no aceptaciones.
Dado que slo Transbank puede ejecutar la cgi tbk_bp_resultado, se recomienda que se filtre la ejecucin de dicha cgi por las IPs informadas en la seccin 5.5
31
Dado que esta pgina debe ser capaz de recibir datos por mtodo POST y adems ejecutar acciones, en realidad no debe ser una pgina HTML pura, sino ms bien una pgina dinmica (cgi, php, asp, jsp, etc.), capaz de generar HTML como salida. Ejemplo:
xt_compra.asp Ubicacin Directorio base Permiso Lectura y Escritura
7.3.3 Pgina de xito Se define como la pgina que indica al cliente del comercio que su transaccin fue realizada con xito, esta pgina debe ser programada por el comercio con el fin de desplegar informacin de la transaccin, por ejemplo: orden de compra, productos/servicios, montos, etc. Ejemplo:
Exito.asp Ubicacin Permiso Directorio base Lectura y Escritura
7.3.4 Pgina de Fracaso Se define cmo la pgina que indica al cliente del comercio que su transaccin no pudo ser realizada, sta debe ser programada por el comercio. Ejemplo:
Fracaso.asp Ubicacin Permiso Directorio base Lectura
Observaciones: Para Tipo Transaccin Mall Virtual la pgina de xito se reemplaza por una pgina de resultado en donde se encuentra una lista con todas las transacciones aceptadas y rechazadas. Las pginas de xito, fracaso y resultado son invocadas mediante el mtodo POST.
32
7.4.2 Validacin de MAC Debido a que la pgina de cierre es la que define finalmente la ejecucin de la transaccin, es importante asegurar que esta slo sea invocada desde la CGI tbk_bp_resultado instalado en el comercio. Para lo anterior es necesario realizar una validacin de la firma digital. La CGI tbk_bp_resultado entrega a la pgina de cierre un parmetro con el nombre TBK_MAC que contiene la firma digital de los datos entregados. Para la validacin de dicha firma se entrega el programa tbk_check_mac el cul se encarga de verificar esta firma retornando la palabra CORRECTO en el caso que sea vlida o la palabra INVALIDO en caso contrario. En el caso de error, adems escribe en la salida estndar la razn del error. Para chequear los parmetros de respuesta utilizando el programa tbk_check_mac, la pgina de cierre debe generar un archivo de texto con los parmetros recibidos desde tbk_bp_resultado, en el mismo formato y orden en que llegan a la tienda, separados por el carcter & y entregar al programa como parmetro la ubicacin y nombre del archivo. Por ejemplo, en el caso de pginas programadas en ASP, la totalidad de los parmetros se pueden obtener llamando al mtodo Form del objeto Request sin parmetros (data = Request.Form ()). El orden de los parmetros recibidos es3: 1) 2) 3) 4) 5) 6) 7) 8) TBK_ORDEN_COMPRA TBK_TIPO_TRANSACCION TBK_RESPUESTA TBK_MONTO TBK_CODIGO_AUTORIZACION TBK_FINAL_NUMERO_TARJETA TBK_FECHA_CONTABLE TBK_FECHA_TRANSACCION 9) TBK_HORA_TRANSACCION 10) TBK_ID_SESION 11) TBK_ID_TRANSACCION 12) TBK_TIPO_PAGO 13) TBK_NUMERO_CUOTAS 14) TBK_TASA_INTERES_MAX 15) TBK_VCI 16) TBK_MAC
En caso de que el comercio se encuentre habilitado para recibir el nmero de la tarjeta, y que adems haya solicitado el envo de la fecha de vencimiento Ver Anexo G
33
Observaciones: Para generar el nombre del archivo temporal se requiere usar un nombre distinto para cada transaccin ejecutada. Para lo anterior se recomienda utilizar, como parte del nombre del archivo, el valor que viene en el parmetro TBK_ID_TRANSACCIN o TBK_ORDEN_COMPRA Lenguajes como Java no aseguran que el orden de recuperacin de los parmetros sea el mismo con el que fueron enviados. Se debe tener en cuenta el orden de recuperacin parmetros, en caso de que estos sean recuperados uno a uno por su nombre, ejemplo: request.getParameter("TBK_ORDEN_COMPRA") . Si el orden de los parmetros no es el original, la respuesta de check_mac siempre ser INVALIDO. Al guardar los parmetros en archivo temporal, estos deben ser separados por el carcter &. Ejemplo: TBK_ORDEN_COMPRA=99221&TBK_TIPO_TRANSACCION=TR_NORMAL&...
7.4.3 Validacin de Duplicidad de Orden de Compra Si la tienda permite pagar dos rdenes de compra idnticas esto significara un doble cargo al tarjetahabiente de una misma compra. De acuerdo a lo anterior se debe contemplar en la tienda un manejo de la duplicidad de rdenes, para ello se debe contemplar los siguientes pasos: Grabar Orden de Compra en la Base de datos antes de realizar el pago. Verificar, de acuerdo a la respuesta que enva Transbank a la tienda virtual, que para dicha orden de compra, en la base de datos de la tienda no exista un cdigo de autorizacin asociado, si existe (significa que ya fue pagada), se enva el String RECHAZADO y si no existe se graba el cdigo de autorizacin a dicha orden de compra y se enva un String ACEPTADO.
34
INICIO
NO
Transaccin autorizada?
(TBK_RESPUESTA=0)
SI
MAC OK?
NO
SI
OC OK?
NO
SI
Monto OK?
NO
SI
Responder ACEPTADO Responder RECHAZADO
FIN
35
36
Lectura: TBK_TIPO_TRANSACCION#A#50#1 indica que el parmetro TBK_TIPO_TRANSACCION es de tipo alfanumrico, de tamao mximo 50 y que es obligatorio. #A : Alfanumrico #N : Numrico entero #M: Numrico con decimales #0 : Opcional #1 : Obligatorio Observacin: Los tipos de transacciones soportadas por las tiendas estn definidos implcitamente con cada cdigo de comercio, lo cual se establece en el contrato comercial.
37
256 9 2
A N N
38
Parmetro TBK_ACCION TBK_ORDEN_COMPRA TBK_CODIGO_COMERCIO TBK_CODIGO_COMERCIO_ENC TBK_TIPO_TRANSACCION TBK_RESPUESTA TBK_MONTO TBK_CODIGO_AUTORIZACION TBK_FINAL_NUMERO_TARJET A TBK_FECHA_CONTABLE TBK_FECHA_TRANSACCIN TBK_FECHA_EXPIRACION TBK_HORA_TRANSACCIN TBK_ID_SESION TBK_ID_TRANSACCIN TBK_TIPO_PAGO
Descripcin Accin (ACK, ERR) Orden de compra. Cdigo de comercio Cdigo de comercio encriptado Tipo de transaccin (TR_NORMAL en este caso). Respuesta a la solicitud de la transaccin. Monto de la transaccin. Sin separadores de miles ni de decimales. Se asume los dos ltimos dgitos como valores decimales. Cdigo de autorizacin de la transaccin de compra. Cuatro ltimos nmeros de la Tarjeta de Crdito con que se realiz la compra. (Slo para los comercios que Transbank habilite esta opcin). Fecha contable de la transaccin. (mmdd). Fecha en que se realiz la transaccin. (mmdd). Fecha de expiracin de Tarjeta de Crdito con que se realiz la compra (aamm). (Slo para los comercios que Transbank habilite esta opcin). Hora en la que se realiz la transaccin. (hhmmss). Identificador de sesin. (Si fue habilitado). Identificador de transaccin Forma de Pago escogida por el tarjetahabiente. En el caso de corresponder a un tipo de pago CI, tiene el mismo valor que el parmetro de entrada. Para los otros tipos de pago (VC y SI), contiene el nmero de Cuotas escogida por el tarjetahabiente. Resultado de transaccin Firma digital. (llave de 1024 id = 100) Firma digital. (llave de 4096 id = 101)
Largo 3 26 12 50 2 10 6 4 4 4 4 6 61 20 2
Tipo A A N A A N N A N N N N N A N A
2 3 1024 4096
N A A A
Tabla 4. Parmetros de salida Transaccin Normal. En el Anexo F se describe un ejemplo paso a paso de integracin de KCC 6.0 con transaccin Normal.
La correspondencia entre TBK_TIPO_PAGO y TBK_NUMERO_CUOTAS es la siguiente: DESCRIPCIN TIPO PAGO Venta Normal Venta Cuotas (Slo cuotas normales) Venta Cuotas (Con 3 cuotas sin inters activado) Tres Cuotas Sin Inters Dos Cuotas Sin Inters Cuotas Comercio Redcompra TBK_TIPO_PAGO VN VC VC SI S2 CI VD TBK_NUMERO_CUOTAS 0 2 - 24 4 - 24 3 2 6 24 0
39
40
TBK_FECHA_EXPIRACION TBK_FECHA_CONTABLE TBK_FECHA_TRANSACCIN TBK_HORA_TRANSACCIN TBK_ID_TRANSACCIN TBK_COD_AUT_MXXX TBK_TIPO_PAGO_MXXX TBK_NUMERO_CUOTAS_MXXX TBK_MONTO_CUOTA_MXXX TBK_COD_RESP_MXXX TBK_MONTO_TIENDA_MXXX TBK_ORDEN_TIENDA_MXXX TBK_MAC TBK_TASA_INTERES_MAX
Descripcin Largo Tipo de transaccin (TR_MALL). 50 Siempre viene en 0. 2 Orden de compra Mall. 26 Identificador de sesin (si fue 61 habilitado). Monto de la transaccin Mall. 10 Cuatro ltimos nmeros de la Tarjeta de Crdito con que se realiz la compra. (Slo para los comercios que 4 Transbank habilite esta opcin). Fecha de expiracin de Tarjeta de Crdito con que se realiz la compra 4 (aamm). (Slo para los comercios que Transbank habilite esta opcin). Fecha contable de la transaccin. 4 Fecha en que se realiz la transaccin. 8 Hora en la que se realiz la 6 transaccin. Identificador de transaccin. 20 Cdigo de Autorizacin nmero XXX. 6 Forma de pago nmero XXX. 2 Nmero de cuotas de la compra en 2 tienda nmero XXX. Slo se enva para caso de pago CI. Monto correspondiente de cada cuota 9 para tienda XXX. Respuesta a la transaccin nmero XXX. 2 Monto en la tienda nmero XXX. 26 Orden de compra para la tienda XXX. 10 Firma digital. (llave de 1024 id = 100) 1024 Firma digital. (llave de 4096 id = 101) 4096 Tasa de inters mxima permitida para 4 el perodo vigente.
Tipo A N A A N N
N N N N N N A N N N A N A A N
Tabla 6 Parmetros de salida Transaccin Mall Virtual. Observacin: XXX vara de 001 a 006, es decir cmo mximo se pueden enviar 6 pagos distintos en una nica transaccin. Los pagos pueden pertenecer a la misma tienda o a tiendas diferentes, identificando cada pago con su propia orden de compra.
41
Tabla 7 Parmetros de entrada de la Transaccin Consulta de Tasa. Los parmetros de salida de la Transaccin Consulta De Tasa se muestran la Tabla 8.
Parmetro TBK_TIPO_TRANSACCION TBK_RESPUESTA TBK_FECHA_TRANSACCIN TBK_HORA_TRANSACCIN TBK_ID_TRANSACCIN TBK_TASA_INTERES_MAX TBK_MAC Descripcin Tipo de transaccin (TR_TASA_INTERES_MAX). Respuesta a la solicitud de la transaccin. Fecha en que se realiz la transaccin. Hora en la que se realiz la transaccin Identificador de transaccin. Tasa de inters mxima permitida del periodo. Firma digital. (llave de 1024 id = 100) Firma digital. (llave de 4096 id = 101) Largo 50 2 8 6 20 4 1024 4096 Tipo A N N N N N A A
42
RESULTADO DESCRIPCIN
3 50
A A
43
Ejemplo:
68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 228 228 228 228 228 228 228 228 228 228 228 228 228 228 Filtro Filtro Filtro sanitiza sanitiza sanitiza pago pago pago pago pago pago pago pago pago pago resultado resultado resultado resultado resultado resultado transacc resultado transacc transacc transacc resultado resultado resultado Inicio tbk_param.txt Terminado inicio Array Fin inicio https://172.24.15.14 https://172.24.15.14 https://172.24.15.14 https://172.24.15.14 https://172.24.15.14 https://172.24.15.14 https://172.24.15.14 https://172.24.15.14 https://172.24.15.14 Inicio Desencriptando Desencriptando Validacion OC_20088292148 OC_20088292148 19710175 logro abrir_conexion 19710175 19710175 19710175 OC_20088292148 OC_20088292148 OC_20088292148 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 29082008 102150 102150 102150 102150 102150 102150 102150 102150 102150 102150 102150 102150 102150 102150 102150 102150 102257 102257 102257 102257 102257 102257 102257 102257 102257 102257 102257 102257 102257 102257 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 200.10.12.227 172.24.15.14 172.24.15.14 172.24.15.14 172.24.15.14 172.24.15.14 172.24.15.14 172.24.15.14 172.24.15.14 172.24.15.14 172.24.15.14 172.24.15.14 172.24.15.14 172.24.15.14 172.24.15.14 OK OK OK OK OK Ok OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK 0 OK OK OK OK OK OK
19710175 19710175 19710175 19710175 19710175 19710175 19710175 19710175 19710175 19710175
5,97028E+11 5,97028E+11 5,97028E+11 5,97028E+11 5,97028E+11 5,97028E+11 5,97028E+11 5,97028E+11 5,97028E+11 5,97028E+11
Inicio de filtrado Archivo parseado Datos Filtrados con exito Entrando a sanitizacion Arreglo de parametros OK. Sanitizacion exitosa Parseo realizado Datos en datos/tbk_config.dat Mac generado Construccion TBK_PARAM Codigo comercio encriptado TBK_PARAM encriptado Datos listos para ser enviados Medio 2: Por redireccion Redireccion web Todo OK correctamente recibidos Codigo comercio desencriptado TBK_PARAM desencriptado Entidad emisora de los datos validada Parseo de los datos http://198.22.250.29/qa/kcc51_qa/xt_compra.asp conectandose al port :(80) Abrio socket para conex-com POST a url http://198.22.250.29/qa/kcc51_qa/xt_compra.asp mensaje enviado Llego ACK del Comercio tienda acepto transaccion respuesta enviada a TBK (ACK) Todo OK
Observacin: Todas las variables estn ordenadas en una sola lnea, as se genera una lnea por actividad de transaccin.
44
Monto de la transaccin entregado por el comercio. Cdigo de autorizacin entregado por Transbank. TBK_CODIGO_AUTORIZACION Solo tienen cdigo las transacciones aprobadas R=0. Campos correspondientes a datos de la tarjeta TBK_FINAL_NUMERO_TARJETA que no son entregados al comercio Internet sin envo de tarjeta 00000. TBK_FECHA_CONTABLE TBK_FECHA_TRANSACCION TBK_HORA_TRANSACCION TBK_ID_SESION TBK_ID_TRANSACCION TBK_TIPO_PAGO TBK_NUMERO_CUOTAS TBK_TASA_INTERES_MAX ** TBK_MONTO_CUOTA ** TBK_MAC Fecha (mmdd). Fecha (mmdd), de la transaccin. Hora (hhmmss), de la transaccin. Identificador de la sesin. Identificador de la transaccin. Tipo de pago utilizado. Nmero de cuotas. Slo CI. Tasa de inters mxima permitida del periodo. Slo CI. Monto correspondiente de cada cuota. Firma digital del mensaje (conjunto parmetros) enviados por Transbank.
Tabla 10 Formato log de transacciones * Se imprime solo el valor. ** Solo si compra es en cuotas. *** Largo variable (1024 4096).
45
Observacin: Todas las variables estn ordenadas en una sola lnea, as se genera una lnea por actividad de transaccin.
46
47
ANEXO A ANEXOA
Datos Ambiente de Certificacin Webpay
Datos del Servidor de Prueba:
URL Servidor de Pago Puerto Servidor de Pago https://certificacion.webpay.cl 6443
Observacin: Cada comercio debe tener asociada un par de llaves asimtricas para encriptacin de la informacin transmitida desde la tienda (KCC) y Transbank. Para efectos del ambiente de certificacin se indica slo la llave privada para configuracin de las pruebas (La llave indicada es la misma para todos los comercios). Llave privada de comercios de prueba (privada.pem)
-----BEGIN RSA PRIVATE KEY----MIIEowIBAAKCAQEAn3HzPC1ZBzCO3edUCf/XJiwj3bzJpjjTi/zBO9O+DDzZCaMp 14aspxQryvJhv8644E19Q+NHfxtz1cxd2wnSYKvay1gJx30ZlTOAkzUj4QMimR16 vomLlQ3T2MAz1znt/PVPVU7T/JOG9R+EbiHNVKa/hUjwJEFVXLQNME97nHoLjb3v V5yV2aVhmox7b54n6F3UVPHvCsHKbJpXpE+vnLpVmdETbNpFVrDygXyG+mnEvyiO BLIwEY3XTMrgXvS069groLi5Gg8C5LDaYOWjE9084T4fiWGrHhn2781R1rykunTu 77wiWPuQHMS0+YC7mhnsk8Z/ilD+aWz/vhsgHwIDAQABAoIBAQCM+Nrt4cpNKQmn +Ne8348CGRS9ACXp6WRg6OCQXO4zM7lRZAminVgZgSQXE6aJR+T9rIWMeG7GWydX aJGzEEQJZOjV0MkUr+7mk9qiTOGkGHmGlyHnRQU8jDU59vXe3UEl3l5+NmwHbQht waf9F7XLmoLK/WoVJA6tICRpCl1oQrpziqN+gjdmMpz9i8I1sMFE7+Y7xf+7S2u7 c1MRPUWqgdS9yViQVh3vZi25m5CyKRVnOB0hpNuZ7nrJymtADYSWt9wV2W1fX+MX UUoYfxyQQvWryHhGdedU7GGAnoEdblUcDkBuAaFmsm1P8K4HQZLWP4v6pYlW2JLa Zoaerb3BAoGBANCRevl0CLB0HBU7sCs0eN9fTkIEsh3OVIxPSBqDnKsynJrIWovK cs37Vb6phzdQO3ADoFJvR9ck8+v6Cv0KR8IOFl9wfC4ZoxkKBBeq94ZLN+YhE2PW KiRFybqcgCtzxKS3MyWgpIcT9xFtHVjlorZ8Jk51fgLZbGzamtLhderVAoGBAMO0 mIiiV4l2vXzu4tFfkpu/GOx/D9/vAic3X9FOky09BNCyuMXMQgI8e3wWsGEZghls Vg9KDV5EPxAmpumcdPFK2IMACaH41ac7vys3ZD8kMK0INQkuDAcG4YsxMaTwEPo0 p1i3zwwEWwknw1yJkOyozz0EcIzS9NrZZEjnBHEjAoGAQ81XdeqzvHEyg/CQd6sq NCtubGXMZYYi1C4d2Yi5kKn2YRcK4HDi23V+TWodK+0oNWToZIQKjbVUmn0Bv3rt EvezbDlMFUx+SfCIng0VRJIFTQmpnQYNUxdg2gpwXC/ZWFa6CNxtQABMjFy1cqXM PJild1IYseJurgBu3mkvBTUCgYBqA/T1X2woLUis2wPIBAv5juXDh3lkB6eU8uxX CEe2I+3t2EM781B2wajrKadWkmjluMhN9AGV5UZ8S1P0DStUYwUywdx1/8RNmZIP qSwHAGXV9jI0zNr7G4Em0/leriWkRM26w6fHjLx8EyxDfsohSbkqBrOptcWqoEUx MOQ5HQKBgAS4sbddOas2MapuhKU2surEb3Kz3RCIpta4bXgTQMt9wawcZSSpvnfT zs5sehYvBFszL3MV98Uc50HXMf7gykRCmPRmB9S+f+kiVRvQDHfc9nRNg2XgcotU KAE16PQM8GihQ0C+EcXHouyud5CRJGfyurokRlH/jY3BiRAG5c+6 -----END RSA PRIVATE KEY-----
48
El ambiente de certificacin, cuenta con un banco de pruebas, al que sern redirigidos para realizar la autenticacin. Para autenticar, el usuario (RUT) a ingresar es 11.111.111-1 y la clave es 123. Una vez autenticados, dentro del banco podrn aceptar rechazar la transaccin. Para pruebas de crdito las tarjetas y su comportamiento son:
Marca N de Tarjeta Ao Expiracin Mes Expiracin CVV Resultado VISA 4051885600446623 Cualquiera Cualquiera 123 APROBADO MASTERCARD 5186059559590568 Cualquiera Cualquiera 123 RECHAZADO
Para pruebas de dbito se puede se solicitar un nmero de tarjeta, ingresar 12345678, y aprobar rechazar segn se desee dentro del banco. Al momento de la redaccin de este manual, se mantiene operativo el ambiente de certificacin de Webpay slo crdito, por lo que se deber cambiar la url de los parmetros URLCGITRA y URLCGIMEDTRA. En ambiente de certificacin estos valores deben ser /filtroUnificado/bp_revision.cgi y /filtroUnificado/bp_validacion.cgi respectivamente. En ambiente de produccin estos valores debern ser /cgi-bin/bp_revision.cgi y /cgibin/bp_validacion.cgi respectivamente. A modo de ejemplo, se adjunta la configuracin para certificacin, de un comercio ficticio transaccin normal pesos, ip 123.123.123.123.
IDCOMERCIO = 597026007976 MEDCOM = 1 TBK_KEY_ID = 100 PARAMVERIFCOM = 1 URLCGICOM = http://www.comercioFicticio.cl/cgibin/tbk_bp_resultado.cgi SERVERCOM = 123.123.123.123 PORTCOM = 80 WHITELISTCOM = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789./:=&?_ HOST = 123.123.123.123 WPORT = 80 URLCGITRA = /filtroUnificado/bp_revision.cgi URLCGIMEDTRA = /filtroUnificado/bp_validacion.cgi SERVERTRA = https://certificacion.webpay.cl PORTTRA = 6443 PREFIJO_CONF_TR = HTML_ HTML_TR_NORMAL = http://www.comercioFicticio.cl/webpay/compra.php
49
ANEXO B ANEXOB
Recomendaciones a la seguridad del KCC.
1. Dejar habilitado un puerto exclusivo para la comunicacin con Transbank S.A. en el firewall del comercio si es que lo tuviese. 2. Manejar en forma segura el par de llaves generadas, en especial privada.pem, para evitar algn posible plagio de la tienda. La llave, junto con el cdigo de comercio, constituyen la identidad de su tienda de comercio electrnico. 3. Validar que no se pueda tener acceso al contenido de CGI-BIN, en especial a llave privada del comercio, correspondiente al archivo privada.pem ubicada en cgi-bin/maestros/. La validacin se debe realizar a travs del browser invocando las siguientes URLs: SERVERCOM:PORTCOM/.../cgi-bin/ SERVERCOM: PORTCOM/.../cgi-bin/datos SERVERCOM:PORTCOM/.../cgi-bin/maestros SERVERCOM: PORTCOM/.../cgi-bin/log Resultado esperado para todos los casos: No permite listar y acceder a contenidos 4. Las pginas de cierre de transacciones deben ubicarse en un directorio virtual distinto del resto de las pginas de la tienda virtual. Este directorio debe protegerse de tal forma que permita la ejecucin de dichas pginas slo desde el servidor donde se encuentra tbk_bp_resultado. Habitualmente el mismo directorio.
50
ANEXO C
Alcance de certificacin efectuada por Transbank
Pgina de cierre debe incorporar validacin de: MAC Orden de compra Monto Informacin a desplegar en pgina de xito o Resultado. El Comercio Internet est obligado a entregar al tarjetahabiente, una vez concluida la venta, un recibo de la compra que debe contener como mnimo la siguiente informacin: 4 ltimos dgitos de la tarjeta bancaria. (en caso de ser informado por Transbank a l comercio). Tipo de pago realizado (Dbito o crdito con sus variantes) Nmero de orden de Pedido Descripcin de los bienes y/o servicios Nombre del comercio URL del comercio (direccin online del comercio). Monto y moneda de la transaccin Fecha de la transaccin Nombre del comprador Cdigo de autorizacin de la transaccin Tipo de transaccin: se debe indicar la palabra Venta / Pago Nmero de Cuotas: Se debe indicar el nmero de cuotas informado por Transbank (para las transacciones sin cuotas se debe informar 00). Tipo de Cuotas: se debe sealar lo siguiente dependiendo de la respuesta informada por Transbank: Sin Cuotas (VN) : Si se trata de ventas sin cuotas. Normales (VC) : Si se trata de cuotas normales Sin intereses (SI) : Si se trata de tres cuotas sin intereses Cuotas Comercio (CI): Si se trata de ventas en modalidad cuotas comercio. Una lista de cualquier restriccin relacionada con las devoluciones de reembolsos. Otras validaciones: Existencia de Identidad del Establecimiento. Pas donde se encuentra el Establecimiento. Descripcin completa de los bienes y/o servicios (tallas/tamaos ropa, voltaje, etc.). Polticas del Establecimiento relacionadas con devoluciones y reembolsos. Debe estar claramente indicado la poltica de entrega de productos del Establecimiento. Por ejemplo, si la entrega est limitada al pas en que est radicado el comercio, cundo puede esperar el tarjetahabiente recibir la entrega, etc. Indicar, cuando las haya, las restricciones para la exportacin. 51
ANEXO C
Indicar claramente los costos totales de los productos y servicios, incluyendo todos los cargos de envo e impuestos. Exponer el valor de los productos y servicios en la moneda correspondiente para la cual el Establecimiento contrat el servicio Webpay. Indicar el pas y moneda de la transaccin. Incluir los logotipos de las marcas y del servicio Webpay. Incluir el logotipo de Tres cuotas sin intereses en el caso de que el comercio se haya afiliado a esta modalidad de venta. Indicar algn modo de contacto para servicio de atencin al cliente. Entregar al tarjetahabiente un comprobante fsico o electrnico de la transaccin. Entrega del Producto/Servicio y Notificacin de Compra.
52
ANEXO ANEXOD D
Tipificacin de errores KCC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 ERR_LECTURA_INPUT ERR_LECTURA_PARAMETROS ERR_PARAM_CODIGO_COMERCIO ERR_PARAM_URL_CGI_COMERCIO ERR_PARAM_SERVIDOR_COMERCIO ERR_PARAM_PUERTO_COMERCIO ERR_PARAM_URL_CGI_TRANSBANK ERR_PARAM_SERVIDOR_TRANSBANK ERR_PARAM_PUERTO_TRANSBANK ERR_MEM_MENSAJE ERR_MAC ERR_VERSION_KCC ERR_MSG_OLDKCC ERR_CODIGO_COMERCIO ERR_DATOS_COMERCIO ERR_TIPO_TRANSACCION ERR_URL_CGI_COMERCIO ERR_SERVIDOR_COMERCIO ERR_PUERTO_COMERCIO ERR_CVV ERR_DUPLICADO ERR_ESTADO_COMERCIO ERR_TEMPLATE_COMPRA ERR_TEMPLATE_COMPRA_DET ERR_FECHA_EXPIRACION ERR_MONEDA_INVALIDA ERR_TEMPLATE_REINTENTO ERR_EDITA_MONTO ERR_ORDEN_COMPRA ERR_ID_TRANSACCION ERR_URL_EXITO ERR_URL_FRACASO ERR_MONTO ERR_REFERER ERR_NUM_TRX ERR_MAX_TIENDAS ERR_CODIGO_TIENDA ERR_TIENDA_NO_SOCIADA ERR_MONTO_TIENDA ERR_CONF_TIENDA ERR_URL_RESULTADO ERR_CONECTA_SERVIDOR ERR_SOCKET_LECTURA ERR_SOCKET_ESCRITURA ERR_TIMEOUT_ACK ERR_OBTENER_ACK ERR_ORDEN_TIENDA ERR_NUMERO_TARJETA 53
49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
ERR_NUMERO_CUOTAS ERR_MES_VENCIMIENTO ERR_ANO_VENCIMIENTO ERR_TARJETA ERR_TIPO_PAGO ERR_RESPUESTA_BASE24 ERR_ACK RR_TIENDA_EN_NULO ERR_PARAM_PREF_CONF_TR ERR_PARAM_URL_CONF_TR ERR_PARAM_PUERTO_CONF_TR ERR_PARAM_SERVIDOR_CONF_TR ERR_FECHA_TRANSACCION ERR_ABRIR_BITACORA ERR_FALLO_CUOTA_NORMAL ERR_FALLO_CUOTA_C3C ERR_MONEDA_DESCONOCIDA ERR_TIENDA_NOENCONTRADA ERR_TIENDA_NOASOCIADA ERR_TIENDA_DIF_MONEDA ERR_SINMEMORIA ERR_MONTO_DESCUADRADO ERR_TRX_DESCUADRADAS ERR_TEMPLATE_ONECLICK ERR_TIENDA_TIPO_PAGO ERR_ID_USUARIO ERR_USUARIO_YA_REGISTRADO ERR_INSERTAR_ONECLICK ERR_USUARIO_NO_REGISTRADO ERR_LEER_ONECLICK ERR_TEMPLATE_TRANSICION ERR_LOGO_WEBPAY ERR_TEMPLATE_LOGO_WEBPAY ERR_ACTUALIZAR_ONECLICK ERR_ELIMINAR_ONECLICK ERR_TEMPLATE_MENSAJE ERR_NUMERO_TARJETA_ANTIGUA ERR_ONECLICK_DESHABILITADO ERR_TR_COMPLETA_DESHABILITADA ERR_CAMBIO_MULTICODE ERR_RESPUESTA ERR_LARGO_TIENDA ERR_CORRESPONDENCIA_CUOTAS ERR_TIPO_PAGO_DESHABILITADO ERR_ENVIO_REG_ONECLICK ERR_ID_SESION ERR_TIPO_TBK_TIPO_TRANSACCION ERR_TIPO_TBK_CODIGO_COMERCIO ERR_TIPO_TBK_ID_TRANSACCION ERR_TIPO_TBK_URL_CGI_COMERCIO
54
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
ERR_TIPO_TBK_SERVIDOR_COMERCIO ERR_TIPO_TBK_PUERTO_COMERCIO ERR_TIPO_TBK_VERSION_KCC ERR_TIPO_TBK_MAC ERR_TIPO_TBK_MONTO ERR_TIPO_TBK_ORDEN_COMPRA ERR_TIPO_TBK_ID_SESION ERR_TIPO_TBK_URL_EXITO ERR_TIPO_TBK_URL_FRACASO ERR_TIPO_TBK_TARJETA ERR_TIPO_TBK_TIPO_PAGO ERR_TIPO_TBK_NUMERO_CUOTAS ERR_TIPO_TBK_NUMERO_TARJETA ERR_TIPO_TBK_MES_VENCIMIENTO ERR_TIPO_TBK_ANO_VENCIMIENTO ERR_TIPO_TBK_CVV ERR_LEN_TBK_TIPO_TRANSACCION ERR_LEN_TBK_CODIGO_COMERCIO ERR_LEN_TBK_ID_TRANSACCION ERR_LEN_TBK_URL_CGI_COMERCIO ERR_LEN_TBK_SERVIDOR_COMERCIO ERR_LEN_TBK_PUERTO_COMERCIO ERR_LEN_TBK_VERSION_KCC ERR_LEN_TBK_MAC ERR_LEN_TBK_MONTO ERR_LEN_TBK_ORDEN_COMPRA ERR_LEN_TBK_ID_SESION ERR_LEN_TBK_URL_EXITO ERR_LEN_TBK_URL_FRACASO ERR_LEN_TBK_TARJETA ERR_LEN_TBK_TIPO_PAGO ERR_LEN_TBK_NUMERO_CUOTAS ERR_LEN_TBK_NUMERO_TARJETA ERR_LEN_TBK_MES_VENCIMIENTO ERR_LEN_TBK_ANO_VENCIMIENTO ERR_LEN_TBK_CVV ERR_TIPO_TBK_URL_RESULTADO ERR_TIPO_TBK_NUM_TRX ERR_TIPO_TBK_CODIGO_TIENDA ERR_TIPO_TBK_ORDEN_TIENDA ERR_TIPO_TBK_MONTO_TIENDA ERR_TIPO_TBK_ID_USUARIO ERR_LEN_TBK_URL_RESULTADO ERR_LEN_TBK_NUM_TRX ERR_LEN_TBK_CODIGO_TIENDA ERR_LEN_TBK_ORDEN_TIENDA ERR_LEN_TBK_MONTO_TIENDA ERR_LEN_TBK_ID_USUARIO ERR_LEN_PARAM_TR_NORMAL ERR_LEN_PARAM_TR_MALL ERR_LEN_PARAM_TR_COMPLETA ERR_LEN_PARAM_TR_ONECLICK ERR_LEN_PARAM_TR_INGRESO_ONECLICK ERR_LEN_PARAM_TR_ELIMINACION_ONECLICK
55
154 155 156 157 158 159 160 161 162 163 164 165 166 167 170 171 172 173 174 175 176 177 178 179 180 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328
ERR_LEN_PARAM_TR_MODIFICACION_ONECLICK ERR_LEN_PARAM_TR_MAL_COMPLETA ERR_LEN_PARAM_TR_MALL_ONECLICK ERR_LEN_PARAM_TR_LOGO_WEBPAY ERR_CANT_PARAM_TR_NORMAL ERR_CANT_PARAM_TR_MALL ERR_CANT_PARAM_TR_COMPLETA ERR_CANT_PARAM_TR_ONECLICK ERR_CANT_PARAM_TR_INGRESO_ONECLICK ERR_CANT_PARAM_TR_ELIMINACION_ONECLICK ERR_CANT_PARAM_TR_MODIFICACION_ONECLICK ERR_CANT_PARAM_TR_MALL_COMPLETA ERR_CANT_PARAM_TR_MALL_ONECLICK ERR_CANT_PARAM_TR_LOGO_WEBPAY ERR_TIPO_TBK_FECHA_EXPIRACION ERR_LEN_TBK_FECHA_EXPIRACION ERR_TIPO_TBK_URL_COMERCIO ERR_LEN_TBK_URL_COMERCIO ERR_TIPO_TBK_MONTO_CUOTA ERR_LEN_TBK_MONTO_CUOTA ERR_MONTO_CUOTA ERR_TR_TASA_INTERES_DESHABILITADA ERR_LEN_PARAM_TR_TASA_INTERES_MAX ERR_CANT_PARAM_TR_TASA_INTERES_MAX ERR_CONSISTENCIA_CIC ERR_PARAM_TBK_TIPO_TRANSACCION ERR_LEN_PARAM_TBK_TIPO_TRANSACCION ERR_FORMATO_PARAM_TBK_TIPO_TRANSACCION ERR_PARAM_TBK_MONTO ERR_LEN_PARAM_TBK_MONTO ERR_FORMATO_PARAM_TBK_MONTO ERR_PARAM_TBK_ORDEN_COMPRA ERR_LEN_PARAM_TBK_ORDEN_COMPRA ERR_FORMATO_PARAM_TBK_ORDEN_COMPRA ERR_PARAM_TBK_ID_SESION ERR_LEN_PARAM_TBK_ID_SESION ERR_FORMATO_PARAM_TBK_ID_SESION ERR_PARAM_TBK_URL_EXITO ERR_LEN_PARAM_TBK_URL_EXITO ERR_FORMATO_PARAM_TBK_URL_EXITO ERR_PARAM_TBK_URL_FRACASO ERR_LEN_PARAM_TBK_URL_FRACASO ERR_FORMATO_PARAM_TBK_URL_FRACASO ERR_PARAM_TBK_ID_USUARIO ERR_LEN_PARAM_TBK_ID_USUARIO ERR_FORMATO_PARAM_TBK_ID_USUARIO ERR_PARAM_TBK_TIPO_PAGO ERR_LEN_PARAM_TBK_TIPO_PAGO ERR_FORMATO_PARAM_TBK_TIPO_PAGO ERR_PARAM_TBK_NUMERO_CUOTAS ERR_LEN_PARAM_TBK_NUMERO_CUOTAS ERR_FORMATO_PARAM_TBK_NUMERO_CUOTAS ERR_PARAM_TBK_MONTO_CUOTA ERR_LEN_PARAM_TBK_MONTO_CUOTA
56
329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382
ERR_FORMATO_PARAM_TBK_MONTO_CUOTA ERR_PARAM_TBK_NUM_TRX ERR_LEN_PARAM_TBK_NUM_TRX ERR_FORMATO_PARAM_TBK_NUM_TRX ERR_PARAM_TBK_NUMERO_TARJETA ERR_LEN_PARAM_TBK_NUMERO_TARJETA ERR_FORMATO_PARAM_TBK_NUMERO_TARJETA ERR_PARAM_TBK_FECHA_EXPIRACION ERR_LEN_PARAM_TBK_FECHA_EXPIRACION ERR_FORMATO_PARAM_TBK_FECHA_EXPIRACION ERR_PARAM_TBK_CVV ERR_LEN_PARAM_TBK_CVV ERR_FORMATO_PARAM_TBK_CVV ERR_PARAM_TBK_URL_RESULTADO ERR_LEN_PARAM_TBK_URL_RESULTADO ERR_FORMATO_PARAM_TBK_URL_RESULTADO ERR_PARAM_TBK_RESPUESTA ERR_LEN_PARAM_TBK_RESPUESTA ERR_FORMATO_PARAM_TBK_RESPUESTA ERR_PARAM_TBK_FINAL_NUMERO_TARJETA ERR_LEN_PARAM_TBK_FINAL_NUMERO_TARJETA ERR_FORMATO_PARAM_TBK_FINAL_NUMERO_TARJETA ERR_PARAM_TBK_FECHA_CONTABLE ERR_LEN_PARAM_TBK_FECHA_CONTABLE ERR_FORMATO_PARAM_TBK_FECHA_CONTABLE ERR_PARAM_TBK_FECHA_TRANSACCION ERR_LEN_PARAM_TBK_FECHA_TRANSACCION ERR_FORMATO_PARAM_TBK_FECHA_TRANSACCION ERR_PARAM_TBK_HORA_TRANSACCION ERR_LEN_PARAM_TBK_HORA_TRANSACCION ERR_FORMATO_PARAM_TBK_HORA_TRANSACCION ERR_PARAM_TBK_ID_TRANSACCION ERR_LEN_PARAM_TBK_ID_TRANSACCION ERR_FORMATO_PARAM_TBK_ID_TRANSACCION ERR_PARAM_TBK_CODIGO_AUTORIZACION ERR_LEN_PARAM_TBK_CODIGO_AUTORIZACION ERR_FORMATO_PARAM_TBK_CODIGO_AUTORIZACION ERR_PARAM_TBK_MAC ERR_LEN_PARAM_TBK_MAC ERR_FORMATO_PARAM_TBK_MAC ERR_PARAM_TBK_CODIGO_TIENDA_MXXX ERR_LEN_PARAM_TBK_CODIGO_TIENDA_MXXX ERR_FORMATO_PARAM_TBK_CODIGO_TIENDA_MXXX ERR_PARAM_TBK_ORDEN_TIENDA_MXXX ERR_LEN_PARAM_TBK_ORDEN_TIENDA_MXXX ERR_FORMATO_PARAM_TBK_ORDEN_TIENDA_MXXX ERR_PARAM_TBK_MONTO_TIENDA_MXXX ERR_LEN_PARAM_TBK_MONTO_TIENDA_MXXX ERR_FORMATO_PARAM_TBK_MONTO_TIENDA_MXXX ERR_PARAM_TBK_MONTO_CUOTA_MXXX ERR_LEN_PARAM_TBK_MONTO_CUOTA_MXXX ERR_FORMATO_PARAM_TBK_MONTO_CUOTA_MXXX ERR_PARAM_TBK_NUMERO_CUOTAS_MXXX ERR_LEN_PARAM_TBK_NUMERO_CUOTAS_MXXX
57
383 384 385 386 387 388 389 390 391 392 393 394 396 397 398 399 400 402 403 404 405 406 425 426 427 428 429 430 431 432 433 434 435 436 440 441 442 443 444 445 446 447 448 449 450 451 452 460 461 462 463 464 465 466
ERR_FORMATO_PARAM_TBK_NUMERO_CUOTAS_MXXX ERR_PARAM_TBK_TIPO_PAGO_MXXX ERR_LEN_PARAM_TBK_TIPO_PAGO_MXXX ERR_FORMATO_PARAM_TBK_TIPO_PAGO_MXXX ERR_PARAM_TBK_COD_AUT_MXXX ERR_LEN_PARAM_TBK_COD_AUT_MXXX ERR_FORMATO_PARAM_TBK_COD_AUT_MXXX ERR_PARAM_TBK_COD_RESP_MXXX ERR_LEN_PARAM_TBK_COD_RESP_MXXX ERR_FORMATO_PARAM_TBK_COD_RESP_MXXX ERR_CORRESPONDENCIA_TIPO_PAGO_NUMERO_CUOTAS ERR_NRO_TIENDAS ERR_CONFIGDAT_WHITELISTCOM ERR_STRUCT_ARCH_PARAMCOM ERR_ARCH_PARAMCOM ERR_ARCH_PARAMCOM_VARIABLE_NO_EXISTE ERR_ARCH_PARAMCOM_CGI_NO_ENCONTRADA ERR_PARAM_MEDIO_COMERCIO ERR_PARAM_URL_CGI_TBK_VALIDACION ERR_ARCH_TBK_PARAM ERR_FCOMUNES_NO_HAY_ESPACIO_SUFICIENTE_UNO ERR_FCOMUNES_NO_HAY_ESPACIO_SUFICIENTE_DOS ERR_ENCRIPTANDO_CODIGO_COMERCIO ERR_LARGO_ENC_CODIGO_COMERCIO ERR_ENCRIPTANDO_TBK_PARAM ERR_LARGO_ENC_TBK_PARAM ERR_SSL_CTX ERR_SSL_CONEXION ERR_SSL_ESCRITURA ERR_SSL_ESCRITURA_CONEXION ERR_SSL_REINTENTAR ERR_SSL_DATOS_NO_VALIDOS ERR_LARGO_PARAMETRO ERR_LARGO_TBK_PARAM_INSUFICIENTE ERR_POST_CODIGO_COMERCIO ERR_POST_CODIGO_COMERCIO_ENC ERR_POST_TBK_PARAM ERR_LARGO_UB64_CODIGO_COMERCIO ERR_DESENCRIPTANDO_CODIGO_COMERCIO ERR_LARGO_A_DESENCRIPTAR_CODIGO_COMERCIO ERR_LARGO_UB64_TBK_PARAM ERR_DESENCRIPTANDO_TBK_PARAM ERR_LARGO_A_DESENCRIPTAR_TBK_PARAM ERR_P_CC_CLARO_DISTINTO_P_DESENCRIPTADO ERR_P_CC_CLARO_DISTINTO_PARAM_CC ERR_P_CC_DESENCRIPTADO_DISTINTO_PARAM_CC ERR_LARGO_MY_PARSE_CGI ERR_BUFFER_OVERFLOW_CERO_PAGO ERR_BUFFER_OVERFLOW_DOS_PAGO ERR_BUFFER_OVERFLOW_TRES_PAGO ERR_BUFFER_OVERFLOW_CUATRO_PAGO ERR_BUFFER_OVERFLOW_CINCO_PAGO ERR_BUFFER_OVERFLOW_SEIS_PAGO ERR_BUFFER_OVERFLOW_SIETE_PAGO
58
467 468 469 470 471 472 473 474 475 476 477 478
ERR_BUFFER_OVERFLOW_OCHO_RESULTADO ERR_BUFFER_OVERFLOW_NUEVE_RESULTADO ERR_BUFFER_OVERFLOW_DIEZ_RESULTADO ERR_BUFFER_OVERFLOW_ONCE_FCOMUNES ERR_BUFFER_OVERFLOW_DOCE_FCOMUNES ERR_BUFFER_OVERFLOW_TRECE_FCOMUNES ERR_BUFFER_OVERFLOW_CATORCE_FCOMUNES ERR_BUFFER_OVERFLOW_QUINCE_FCOMUNES ERR_BUFFER_OVERFLOW_DIECISEIS_FCOMUNES ERR_BUFFER_OVERFLOW_DIECISIETE_FCOMUNES ERR_BUFFER_OVERFLOW_DIECIOCHO_FCOMUNES ERR_BUFFER_OVERFLOW_DIECINUEVE_FCOMUNES
59
ANEXO E
Clculo del Valor Cuota Las siguientes son las frmulas utilizadas para el clculo del Valor Presente (precio contado), y del Valor Cuota, referidas a la tasa mxima convencional. El VALOR PRESENTE a la mxima se obtiene aplicando la siguiente frmula:
ANEXO E
VC * 1 1 Tm Tm
Donde: Vc: es el monto de la cuota (informado en la Tx). Tm: es la tasa Mxima Definida (almacenada en tabla). n: es el nmero de cuotas (informado en Tx). EL VALOR CUOTA se obtiene despejando de la frmula anterior:
V c VP * Tm * (1 Tm ) n
=
(1 Tm ) n
n
Tm * 1 T m
El extracto Luego:
1 Tm
corresponde al factor F.
Vc = Precio Contado * F Donde: F: N cuotas: Tm: es funcin del n cuotas y de la Tm. 6 a 24 Se modifica mensualmente y se pblica en el diario oficial entre el da 8 y 10 de cada mes.
60
ANEXO F
Ejemplo integracin de tienda Transaccin Normal ASP
A continuacin se describe un ejemplo de integracin de tienda con tipo de transaccin Normal, sobre el ambiente de certificacin de Webpay. Los pasos a seguir son los siguientes: Paso 1: Descomprimiendo KCC 6.0 Paso 2: Configurando archivo de parmetros tbk_config.dat Paso 3: Configurando parmetros de transaccin tbk_param.txt Paso 4: Instalando la llave privada del comercio de prueba privada.pem y publica de transbank Paso 5: Configurando el nivel de log en archivo tbk_trace.dat Paso 6: Pginas de pago, cierre, xito y fracaso Requerimientos: Contar con un servidor web para ejecucin de paginas .asp, ejemplo IIS Editor de texto Acceso a Internet con trfico hacia certificacion.webpay.cl puerto 6443
ANEXO F
61
Paso 1: Descomprimiendo KCC 6.0 El KCC versin 6.0 proporcionado por Transbank, es especfico para cada de plataforma de sistema operativo (Windows, Linux Solaris), es un archivo comprimido con formato rar. Se debe descomprimir y copiar el contenido de la carpeta CGI-BIN en la ubicacin fsica del disco, en donde residen los CGIs en el servidor Web.
62
Archivo tbk_config.dat:
IDCOMERCIO = 597026016975 MEDCOM =1 PARAMVERIFCOM =1 URLCGICOM = /cgi-bin/tbk_bp_resultado.cgi SERVERCOM = 198.22.250.29 PORTCOM = 80 WHITELISTCOM = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-:=/ HOST = 198.22.250.29 WPORT = 80 URLCGITRA = /cgi-bin/bp_revision.cgi URLCGIMEDTRA = /cgi-bin/bp_validacion.cgi SERVERTRA = https://certificacion.webpay.cl PORTTRA = 6443 PREFIJO_CONF_TR = HTML_ HTML_TR_NORMAL = http://198.22.250.29/xt_compra.asp
Paso 3: Configurando parmetros de transaccin tbk_param.txt Verificar que los parmetros para la transaccin normal (TRX_NORMAL) se encuentren bien configurados
BP_PAGO> <TR_NORMAL> TBK_TIPO_TRANSACCION#A#50#1 TBK_MONTO#M#10#1 TBK_ORDEN_COMPRA#A#26#1 TBK_ID_SESION#A#61#0 TBK_URL_FRACASO#A#256#1 TBK_URL_EXITO#A#256#1 TBK_MONTO_CUOTA#M#9#0 TBK_NUMERO_CUOTAS#N#2#0 </TR_NORMAL> ...
63
privada.pem y
La llave privada es un archivo de texto que debe ser copiado en la carpeta cgi-bin/maestros/ El contenido del archivo es el siguiente:
-----BEGIN RSA PRIVATE KEY----MIICXQIBAAKBgQDV3xIu3OnC9v7a/asLoy6NOF3n3I0e58Yy1+4mOn1kso4ESExp OY5U1K267TEUFPN/BFO5FgZCAC3bClkHJ5tN7z2a5Gu7rXfwO0HJ+cDduOOv0QFX ZUjcM923cy5FFbDLcUPUPMq1hXcCH7tKUrKOunKwBEmkqyhp96/90T4afwIBAwKB gQCOlLbJ6JvXT1SR/nIHwh8I0D6akwi/RS7Mj/QZfFOYdwlYMDLw0QmN4x58niC4 DfeqAuJ7ZAQsAB6SBuYExRIyvAIniU4J817NXcFAsNELGvdp9AjBYJYPv0+4pTDI hptIpY9zBi+7Bz9v00V89xxoEzcYcTVZJhyQ7MAcODWrewJBAPu4rezz1sDuntjn L2gjll2KcDgiE7PuO/x0WyinpksmIP4MHjmPIoCPCyAcZ6hVFtJJR7DlG6XEfp0G eEy+gM0CQQDZgbGpgtX/ex1VuLmIY7ay5iCq0iGgeYiYccdSvXIAob164Il58/p6 CM9Ctqc3stvLVsOplINMORH3iVswLxh7AkEAp9Bz80051fRp5e908Be5k7GgJWwN Ip7SqE2SGxpu3MQV/rK+0QoXAF9cwBLvxY4PNtuFIJi9GS2pvgRQMymrMwJBAJEB IRusjqpSE457JlrtJHdEFcc2wRWmWxBL2jco9qsWflHrBlFNUaawiix5xM/MkoeP LRu4V4gmC/pbkiAfZacCQQDaPiFEkZlOP8ZW9SeXdwcNt1fay2MrnFqMPGPnerri X/1p1oAObaX3NYENyGZQ0U2Bzm3tHsc6lozrgi1QVZYR -----END RSA PRIVATE KEY-----
Al igual que la llave del comercio, la pblica de Transbank debe ir en el mismo directorio. El contenido de este archivo es:
-----BEGIN PUBLIC KEY----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0ltrgs03d0agToUo8mDMQS8sR 9GGwVy9mpnvkCYDWCMcn2Ymtsu1UXv7oNTDnPuFctA9mjiodZCIL+9FuPCNnGr3f hz1vDAreTEZZnhn9m+XVssEA8E2WVMh3e3nrIM3tlmZAKcdnxqYqjFTdlCwSAqYf 4hrmhDT4ctxzDfBMaQIDAQAB -----END PUBLIC KEY-----
Paso 5: Configurando el nivel de log en archivo tbk_trace.dat Validar la siguiente lnea al archivo tbk_trace.dat:
GLEVEL = 7
Paso 6: Pginas de pago, cierre, xito y fracaso Pgina de pago La llamada al KCC se hace a travs del cgi tbk_bp_pago el que a su vez debe ser llamado desde la pgina de pago del comercio. Este archivo tiene como objetivo recoger la informacin de la compra que se pretende realizar. As de acuerdo a los parmetros de entrada de una transaccin normal, este formulario de pago tiene la siguiente forma:
64
pago.asp
<% ' GENERA ORDEN DE COMPRA A PARTIR DE FECHA FECHAACTUAL = NOW() ANO = YEAR(FECHAACTUAL) MES = MONTH(FECHAACTUAL) DIA = DAY(FECHAACTUAL) MINUTO = MINUTE(FECHAACTUAL) SEGUNDO = SECOND(FECHAACTUAL) OC = "OC_"&ANO&MES&DIA&MINUTO&SEGUNDO %>
<HTML> <HEAD> <TITLE>TIENDA ASP KCC6.0 - TRANSACCION NORMAL</TITLE> </HEAD> <BODY BGCOLOR="#3069C6" TOPMARGIN="10" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0"> <BR> <P ALIGN="CENTER"> <FONT FACE=ARIAL SIZE="5" COLOR="WHITE"> TRANSACCION NORMAL - WINDOWS ASP KCC6.0</FONT> </P> <BR> <FORM METHOD="POST" ACTION="/CGI-BIN/TBK_BP_PAGO.CGI"> <TABLE BORDER="0" ALIGN="CENTER"> <TR> <TD ALIGN="CENTER"> <FONT FACE=ARIAL SIZE="3" COLOR="WHITE">MONTO TRANSACCIN</FONT> <BR> <INPUT TYPE="TEXT" NAME="TBK_MONTO" VALUE="10000"> <BR> </TD> <TD ALIGN="CENTER"> <BR> <INPUT TYPE="HIDDEN" NAME="TBK_TIPO_TRANSACCION" VALUE="TR_NORMAL"> <BR> </TD> </TR> <TR> <TD ALIGN="CENTER"> <FONT FACE="ARIAL" SIZE="3" COLOR="WHITE">N DE ORDEN</FONT> <BR> <INPUT TYPE="TEXT" NAME="TBK_ORDEN_COMPRA" VALUE="<%=OC%>"> <BR> </TD> <TD ALIGN="CENTER"> <BR> <INPUT TYPE="HIDDEN" NAME="TBK_ID_SESION" VALUE="<%=OC%>"> <BR> </TD> </TR> </TABLE> <TABLE BORDER=0 ALIGN="CENTER"> <TR> <TD ALIGN="CENTER"> <BR> <INPUT TYPE="HIDDEN" NAME="TBK_URL_EXITO" SIZE=40 VALUE="HTTP://EXITO.ASP" SIZE="50"> <BR> </TD> <TD ALIGN="CENTER"> <BR> <INPUT TYPE="HIDDEN" NAME="TBK_URL_FRACASO" SIZE=40 VALUE="HTTP://FRACASO.ASP" SIZE=50> <BR> </TD> </TR> </TABLE>
<TABLE BORDER="0" ALIGN="CENTER"> <TR> <TD ALIGN="CENTER"> <BR> <INPUT TYPE="SUBMIT" VALUE="PAGAR CON TARJETA DE CRDITO" SIZE=20> </BR> </TD> </TR> </TABLE> </FORM> </BODY> </HTML>
65
Pgina De Cierre Esta pgina extrae los parmetros de respuesta que entrega Transbank, realiza validacin de MAC y si corresponde confirma la transaccin entregando como respuesta "ACEPTADO". Para simplificar el ejemplo, se ha omitido las validaciones de monto y orden de compra que dependen de cada implementacin del comercio.
xt_compra.asp
<HTML> <% RESPUESTA = Request.Form("TBK_RESPUESTA") if (RESPUESTA="0") then if (check_mac="CORRECTO") then ' Slo si MAC ok, oc ok, monto ok se debe responder "ACEPTADO" ' Aqui debe validar estado de OC ' Aqui debe validar Monto response.write("ACEPTADO") end if else ' Acepta no autorizacin de la transaccin response.write("ACEPTADO") end if function check_mac () OC = Request.Form("TBK_ORDEN_COMPRA") carpetaLogs = "d:\TIENDA\cgi-bin\log\" archivoBat = "d:\TIENDA\cgi-bin\tbk_check_mac.bat" ejecutable_CheckMac = "d:\TIENDA\cgi-bin\tbk_check_mac.exe" archivo_temporal = carpetaLogs & "DatosParaCheckMac_" & OC & ".txt" archivo_resultado = carpetaLogs & "ResultadoCheckMac_" & OC & ".txt" set filesys = CreateObject("Scripting.FileSystemObject") set file = filesys.CreateTextFile(archivo_temporal) ' Recupera parametros y guarda en archivo file.write(Request.Form()) file.Close cmd = archivoBat & " " & ejecutable_CheckMac & " " & archivo_temporal & " " & archivo_resultado Set WshShell = CreateObject ("WScript.Shell") iReturn = WshShell.Run(cmd,1,true) set WshShell = nothing ' Lee resultado de validacin de MAC set ArchResultado = CreateObject("Scripting.FileSystemObject") set tf = ArchResultado.Opentextfile(archivo_resultado) check_mac = tf.readLine end function %> </HTML>
Nota: En el ejemplo se hace uso del archivo tbk_check_mac.bat, el cual se entrega con el KCC 6.0 y permite centralizar la llamada al tbk_check_mac.exe y facilitar la generacin del archivo de resultado, el cual almacenar el resultado de la validacin del MAC (CORRECTO INVALIDO).
66
Pgina de xito El parmetro TBK_URL_EXITO corresponde a la URL que contiene a la pgina que se llamar en caso que la transaccin se haya ejecutado correctamente. Esta pgina debiera desplegar informacin sobre el producto o servicio pagado, condiciones de entrega, etc. informacin que puede ser extrada desde la base de datos del comercio. La informacin puede ser desplegada recuperando el valor del parmetro TBK_ORDEN_DE_COMPRA. Ejemplo pgina xito:
<html> <head> <title>Ejemplo pagina de xito</title> </head> <body bgcolor="#3069C6" topmargin="10" leftmargin="0" marginwidth="0" marginheight="0"> <% ' Recupera nmero de Orden de Compra OC = Request.Form("TBK_ORDEN_COMPRA") carpeta = "d:\tienda\cgi-bin\log\" archivo = carpeta & "DatosParaCheckMac_" & OC & ".txt" set fs = CreateObject("Scripting.FileSystemObject") set a = fs.Opentextfile(archivo) id_tbk = a.readAll id_tbk = replace(id_tbk,"&","</br>") a.Close %> <center> <br><br><br><br> <b> <a> <font face="arial" size="5" color="white">Transaccin Exitosa !!!</font> </a> </b> <br><br> <font face="arial" size="3" color="white"> Orden de Compra :<b> <% =request.form("TBK_ORDEN_COMPRA") %> </b> procesada</font> <br></br> <font face="arial" size="2" color="#AAAAAA"><b><% =id_tbk %> </b> </font> <br></br> </center> </body> </html>
exito.asp
67
Pgina de fracaso El parmetro TBK_URL_FRACASO corresponde a la URL que contiene a la pgina que se llamar en el caso que la transaccin fracase. No hay ningn requerimiento sobre esta pgina, basta con que contenga un mensaje apropiado que informe al usuario que la transaccin no se realiz. Ejemplo pgina de fracaso:
<HTML> <BODY> LA TRANSACCION NO SE PUDO REALIZAR </BODY > </HTML>
fracaso.asp
68
ANEXO F
Ejemplo integracin de tienda Transaccin Normal PHP
A continuacin se describe un ejemplo de integracin de tienda con tipo de transaccin Normal, sobre el ambiente de certificacin de Webpay. Los pasos a seguir son los siguientes: Paso 1: Descomprimiendo KCC 6.0 Paso 2: Configurando archivo de parmetros tbk_config.dat Paso 3: Configurando parmetros de transaccin tbk_param.txt Paso 4: Instalando la llave privada del comercio de prueba privada.pem y la publica de Transbank tbk_public_key.pem Paso 5: Configurando el nivel de log en archivo tbk_trace.dat Paso 6: Pginas de pago, cierre, xito y fracaso Requerimientos: Contar con un servidor web para ejecucin de paginas .PHP, ejemplo APACHE Editor de texto Acceso a Internet con trfico hacia certificacion.webpay.cl puerto 6443
ANEXO G
69
Paso 1: Descomprimiendo KCC 6.0 El KCC versin 6.0 proporcionado por Transbank, es especfico para cada de plataforma de sistema operativo (Windows, Linux Solaris), es un archivo comprimido con formato rar. Se debe descomprimir y copiar el contenido de la carpeta CGI-BIN en la ubicacin fsica del disco, en donde residen los CGIs en el servidor Web.
70
Archivo tbk_config.dat:
IDCOMERCIO = 597026016975 MEDCOM =1 PARAMVERIFCOM =1 URLCGICOM = http://IP_SERVIDOR/TIENDA_TEST/cgi-bin/tbk_bp_resultado.cgi SERVERCOM = IP_SERVIDOR PORTCOM = PUERTO_SERVIDOR WHITELISTCOM = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-:=/ HOST = IP_SERVIDOR WPORT = PUERTO_SERVIDOR URLCGITRA = /cgi-bin/bp_revision.cgi URLCGIMEDTRA = /cgi-bin/bp_validacion.cgi SERVERTRA = https://certificacion.webpay.cl PORTTRA = 6443 PREFIJO_CONF_TR = HTML_ HTML_TR_NORMAL = http://IP_SERVIDOR/TIENDA_TEST/html /xt_compra.asp
Paso 3: Configurando parmetros de transaccin tbk_param.txt Verificar que los parmetros para la transaccin normal (TRX_NORMAL) se encuentren bien configurados
BP_PAGO> <TR_NORMAL> TBK_TIPO_TRANSACCION#A#50#1 TBK_MONTO#M#10#1 TBK_ORDEN_COMPRA#A#26#1 TBK_ID_SESION#A#61#0 TBK_URL_FRACASO#A#256#1 TBK_URL_EXITO#A#256#1 TBK_MONTO_CUOTA#M#9#0 TBK_NUMERO_CUOTAS#N#2#0 </TR_NORMAL> ...
71
privada.pem y
La llave privada es un archivo de texto que debe ser copiado en la carpeta cgi-bin/maestros/ El contenido del archivo es el siguiente:
-----BEGIN RSA PRIVATE KEY----MIICXQIBAAKBgQDV3xIu3OnC9v7a/asLoy6NOF3n3I0e58Yy1+4mOn1kso4ESExp OY5U1K267TEUFPN/BFO5FgZCAC3bClkHJ5tN7z2a5Gu7rXfwO0HJ+cDduOOv0QFX ZUjcM923cy5FFbDLcUPUPMq1hXcCH7tKUrKOunKwBEmkqyhp96/90T4afwIBAwKB gQCOlLbJ6JvXT1SR/nIHwh8I0D6akwi/RS7Mj/QZfFOYdwlYMDLw0QmN4x58niC4 DfeqAuJ7ZAQsAB6SBuYExRIyvAIniU4J817NXcFAsNELGvdp9AjBYJYPv0+4pTDI hptIpY9zBi+7Bz9v00V89xxoEzcYcTVZJhyQ7MAcODWrewJBAPu4rezz1sDuntjn L2gjll2KcDgiE7PuO/x0WyinpksmIP4MHjmPIoCPCyAcZ6hVFtJJR7DlG6XEfp0G eEy+gM0CQQDZgbGpgtX/ex1VuLmIY7ay5iCq0iGgeYiYccdSvXIAob164Il58/p6 CM9Ctqc3stvLVsOplINMORH3iVswLxh7AkEAp9Bz80051fRp5e908Be5k7GgJWwN Ip7SqE2SGxpu3MQV/rK+0QoXAF9cwBLvxY4PNtuFIJi9GS2pvgRQMymrMwJBAJEB IRusjqpSE457JlrtJHdEFcc2wRWmWxBL2jco9qsWflHrBlFNUaawiix5xM/MkoeP LRu4V4gmC/pbkiAfZacCQQDaPiFEkZlOP8ZW9SeXdwcNt1fay2MrnFqMPGPnerri X/1p1oAObaX3NYENyGZQ0U2Bzm3tHsc6lozrgi1QVZYR -----END RSA PRIVATE KEY-----
Al igual que la llave del comercio, la pblica de Transbank debe ir en el mismo directorio. El contenido de este archivo es:
-----BEGIN PUBLIC KEY----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0ltrgs03d0agToUo8mDMQS8sR 9GGwVy9mpnvkCYDWCMcn2Ymtsu1UXv7oNTDnPuFctA9mjiodZCIL+9FuPCNnGr3f hz1vDAreTEZZnhn9m+XVssEA8E2WVMh3e3nrIM3tlmZAKcdnxqYqjFTdlCwSAqYf 4hrmhDT4ctxzDfBMaQIDAQAB -----END PUBLIC KEY-----
Paso 5: Configurando el nivel de log en archivo tbk_trace.dat Validar la siguiente lnea al archivo tbk_trace.dat:
GLEVEL = 7
Paso 6: Pginas de pago, cierre, xito y fracaso Pgina de pago La llamada al KCC se hace a travs del cgi tbk_bp_pago el que a su vez debe ser llamado desde la pgina de pago del comercio. Este archivo tiene como objetivo recoger la informacin de la compra que se pretende realizar. As de acuerdo a los parmetros de entrada de una transaccin normal, este formulario de pago tiene la siguiente forma:
72
<?php $TBK_MONTO="10000"; $TBK_ORDEN_COMPRA = date("Ymdhis"); $TBK_ID_SESION = date("Ymdhis") /****************** CONFIGURACION *******************/ $TBK_TIPO_TRANSACCION = "TR_NORMAL"; $TBK_URL_EXITO = "http://IP_SERVIDOR/TIENDA_TEST/html/exito.php"; $TBK_URL_FRACASO = "http://IP_SERVIDOR/TIENDA_TEST/html/fracaso.php"; $url_cgi = "http://IP_SERVIDOR/TIENDA_TEST/cgi-bin/tbk_bp_pago.cgi"; //Archivos de datos para uso de pagina de cierre $myPath = "/PATH_WWW/TIENDA_TEST/comun/dato$TBK_ID_SESION.log"; /****************** FIN CONFIGURACION *****************/ //formato Moneda $partesMonto=split(",",$TBK_MONTO); $TBK_MONTO=$partesMonto[0]."00"; //Grabado de datos en archivo de transaccion $fic = fopen($myPath, "w+"); $linea="$TBK_MONTO;$TBK_ORDEN_COMPRA"; fwrite ($fic,$linea); fclose($fic); ?> <html> <body > <form action="<?php echo $url_cgi;?>" name="frm" method="post"> <table> <tr> <th align="right">Tipo Transaccion:</td> <td><input type="text" name="TBK_TIPO_TRANSACCION" value="<?php echo $TBK_TIPO_TRANSACCION;?>"/></td> </tr> <tr> <th align="right">Monto:</td> <td><input type="text" name="TBK_MONTO" value="<?php echo $TBK_MONTO;?>"/></td> </tr> <tr> <th align="right">Orden de Compra:</td> <td><input type="text" name="TBK_ORDEN_COMPRA" value="<?php echo $TBK_ORDEN_COMPRA;?>"/></td> </tr> <tr> <th align="right">TBK_ID_SESSION:</td> <td><input type="text" name="TBK_ID_SESION" value="<?php echo $TBK_ID_SESION;?>"/></td> </tr> <tr> <th align="right">Pagina de EXITO:</td> <td><input type="text" name="TBK_URL_EXITO" value="<?php echo $TBK_URL_EXITO;?>"/></td> </tr> <tr> <th align="right">Pagina de Fracaso:</td> <td><input type="text" name="TBK_URL_FRACASO" value="<?php echo $TBK_URL_FRACASO;?>"/></td>
</tr> <tr> <td align="right" colspan="2"><input type="submit"></td> </tr> </table> </form> </body>
73
Pgina De Cierre Esta pgina extrae los parmetros de respuesta que entrega Transbank, realiza validacin de MAC y si corresponde confirma la transaccin entregando como respuesta "ACEPTADO". Para simplificar el ejemplo, se ha omitido las validaciones de monto y orden de compra que dependen de cada implementacin del comercio.
xt_compra.php
<?php //rescate de datos de POST. $TBK_RESPUESTA=$_POST["TBK_RESPUESTA"]; $TBK_ORDEN_COMPRA=$_POST["TBK_ORDEN_COMPRA"]; $TBK_MONTO=$_POST["TBK_MONTO"]; $TBK_ID_SESION=$_POST["TBK_ID_SESION"]; /****************** CONFIGURAR AQUI *******************/ $myPath = "/PATH_WWW/TIENDA_TEST/comun/dato$TBK_ID_SESION.log"; //GENERA ARCHIVO PARA MAC $filename_txt = "/PATH_WWW/TIENDA_TEST/comun/MAC01Normal$TBK_ID_SESION.txt"; // Ruta Checkmac $cmdline = "/PATH_WWW/TIENDA_TEST/cgi-bin/tbk_check_mac.cgi $filename_txt"; /****************** FIN CONFIGURACION *****************/ $acepta=false; //lectura archivo que guardo pago.php if ($fic = fopen($myPath, "r")){ $linea=fgets($fic); fclose($fic); } $detalle=split(";", $linea); if (count($detalle)>=1){ $monto=$detalle[0]; $ordenCompra=$detalle[1]; } //guarda los datos del post uno a uno en archivo para la ejecucin del MAC $fp=fopen($filename_txt,"wt"); while(list($key, $val)=each($_POST)){ fwrite($fp, "$key=$val&"); } fclose($fp); //Validacin de respuesta de Transbank, solo si es 0 continua con la pagina de cierre if($TBK_RESPUESTA=="0"){ $acepta=true; } else { $acepta=false; } //validacin de monto y Orden de compra if ($TBK_MONTO==$monto && $TBK_ORDEN_COMPRA==$ordenCompra && $acepta==true){ $acepta=true;} else{ $acepta=false;} //Validacin MAC if ($acepta==true){ exec ($cmdline, $result, $retint); if ($result [0] =="CORRECTO") $acepta=true; else $acepta=false; } ?> <html> <?php if ($acepta==true){?> ACEPTADO <?php } else {?> RECHAZADO <?php }?> </html>
Nota: En el ejemplo se hace uso del archivo tbk_check_mac.cgi, el cual se entrega con el KCC 6.0 y permite la validacin del MAC (CORRECTO INVALIDO).
74
Pgina de xito El parmetro TBK_URL_EXITO corresponde a la URL que contiene a la pgina que se llamar en caso que la transaccin se haya ejecutado correctamente. La informacin puede ser desplegada recuperando el valor del parmetro TBK_ORDEN_DE_COMPRA. Ejemplo pgina xito:
<?php $TBK_ID_SESION = $_POST["TBK_ID_SESION"]; $TBK_ORDEN_COMPRA = $_POST["TBK_ORDEN_COMPRA"]; /****************** CONFIGURAR AQUI *******************/ $myPath = "/PATH_WWW/TIENDA_TEST/comun/MAC01Normal$TBK_ID_SESION.txt"; $pathSubmit = "http://IP_SERVIDOR/TIENDA_TEST/html/index.php"; /****************** FIN CONFIGURACION *****************/ //Rescate de los valores informados por transbank $fic = fopen($myPath, "r"); $linea=fgets($fic); fclose($fic); $detalle=explode("&", $linea); $TBK_ORDEN_COMPRA=explode("=",$detalle[0]); $TBK_TIPO_TRANSACCION=explode("=",$detalle[1]); $TBK_RESPUESTA=explode("=",$detalle[2]); $TBK_MONTO=explode("=",$detalle[3]); $TBK_CODIGO_AUTORIZACION=explode("=",$detalle[4]); $TBK_FINAL_NUMERO_TARJETA=explode("=",$detalle[5]); $TBK_FECHA_CONTABLE=explode("=",$detalle[6]); $TBK_FECHA_TRANSACCION=explode("=",$detalle[7]); $TBK_HORA_TRANSACCION=explode("=",$detalle[8]); $TBK_ID_TRANSACCION=explode("=",$detalle[10]); $TBK_TIPO_PAGO=explode("=",$detalle[11]); $TBK_NUMERO_CUOTAS=explode("=",$detalle[12]); $TBK_MAC=explode("=",$detalle[13]); $TBK_FECHA_CONTABLE[1]=substr($TBK_FECHA_CONTABLE[1],2,2)."".substr($TBK_FECHA_CONTABLE[1],0,2); $TBK_FECHA_TRANSACCION[1]=substr($TBK_FECHA_TRANSACCION[1],2,2)."".substr($TBK_FECHA_TRANSACCION[1],0,2); $TBK_HORA_TRANSACCION[1]=substr($TBK_HORA_TRANSACCION[1],0,2).":".substr($TBK_HORA_TRANS ACCION[1],2,2).":".substr($TBK_HORA_TRANSACCION[1],4,2); ?> <html> <head><title>TIENDA PHP KCC6.0</title></head> <body> <P ALIGN="CENTER">Transaccion Normal - EXITO</P><br> <table align="center"> <tr><td align=left width=100% >El pago se ha realizado con éxito.</td></tr> <tr><td align=left width=100% >Datos de la Compra:</td> </tr> <tr> <td align=left width=100% > <table> <tr valign=top> <th align=left>Nro Orden:</th> <td align=left><?php echo $TBK_ORDEN_COMPRA[1];?></td> <th align=left>Monto (pesos chilenos):</th> <td align=left><?php echo ($TBK_MONTO[1]/100); ?></td> </tr> </table> </td> </tr>
exito.php
75
<tr><td align=left width=100%><h3>Datos de la Transacción:</h3></td> </tr> <tr> <td align=left width=100%> <table width=90% border=0 align=center> <tr valign=top > <th align=left>Respuesta Transacción:</th> <td align=left><?php echo $TBK_RESPUESTA[1];?></td> <th align=left>Codigo Autorización:</th> <td align=left><?php echo $TBK_CODIGO_AUTORIZACION[1];?></td> <th align=left>Fecha Contable:</th> <td align=left><?php echo $TBK_FECHA_CONTABLE[1];?></td> </tr> <tr valign=top > <th Transacción:</th> <td $TBK_FECHA_TRANSACCION[1];?></td> <th Transacción:</th> <td $TBK_HORA_TRANSACCION[1];?></td> <th crédito:</th> <td align=left>XXXXXXXXXXXX<?php echo $TBK_FINAL_NUMERO_TARJETA[1];?></td> </tr> <tr valign=top> <th Transacción:</th> <td $TBK_TIPO_TRANSACCION[1];?></td> <th align=left>Tipo Pago:</th> <td align=left><?php $TBK_TIPO_PAGO[1];?></td> <th align=left>Numero cuotas:</th> <td align=left><?php $TBK_NUMERO_CUOTAS[1];?></td> </tr> </table> </td> </tr> </table> <FORM ACTION="<?php echo $pathSubmit;?>" METHOD=POST> <center><INPUT TYPE="SUBMIT" VALUE="VOLVER A INICIO"></center> </form> </body> </html> echo echo align=left><?php echo align=left>Tipo align=left>tarjeta de align=left><?php echo align=left>Hora align=left><?php echo
align=left>Fecha
76
Pgina de fracaso El parmetro TBK_URL_FRACASO corresponde a la URL que contiene a la pgina que se llamar en el caso que la transaccin fracase. No hay ningn requerimiento sobre esta pgina, basta con que contenga un mensaje apropiado que informe al usuario que la transaccin no se realiz. Ejemplo pgina de fracaso:
<?PHP /****************** CONFIGURAR AQUI *******************/ $PATHSUBMIT = "HTTP://IP_SERVIDOR/TIENDA_TEST/HTML/INDEX.PHP"; /****************** FIN CONFIGURACION *****************/ $TBK_ID_SESION = $_POST["TBK_ID_SESION"]; $TBK_ORDEN_COMPRA = $_POST["TBK_ORDEN_COMPRA"]; ?> <HTML> <HEAD><TITLE>TIENDA PHP KCC6.0</TITLE></HEAD> <BODY> <CENTER> <B>TRANSACCI&OACUTE;N FRACASADA !!!</B> <TABLE> <TR><TH>FRACASO</TH></TR> <TR><TD> TBK_ID_SESION=<?PHP ECHO $TBK_ID_SESION; ?><BR> TBK_ORDEN_COMPRA=<?PHP ECHO $TBK_ORDEN_COMPRA; ?><BR> </TD></TR> </TABLE> </CENTER> <FORM ACTION="<?PHP ECHO $PATHSUBMIT;?>" METHOD=POST> <CENTER> <INPUT TYPE="SUBMIT" VALUE="VOLVER A INICIO"> </CENTER> </FORM> </BODY> </HTML>
fracaso.asp
77
78