Está en la página 1de 78

Transbank S.A.

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

NUEVO EN ESTA VERSIN


La nueva versin incluye lo siguiente: Nueva versin de KCC (6.0). Archivo de llave publica Transbank (tbk_public_key.pem) Parmetro de respuesta TBK_MAC modifica su largo. El utilitario genkey.exe ahora genera llaves de 4096 bits, por omisin.

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

Llave privada para encriptacin de datos y autenticacin de comercio

4 7

KCC 6.0
Llave publica de comercio
11

POST HTTPS

3 POST HTTPS

WEBPAY Transbank

9
10

AUTORIZADOR

Internet

BANCO Emisor

Figura 1. Secuencia de Transaccin Electrnica con Webpay Plus

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.

2.1 PLATAFORMAS SOPORTADAS


Las siguientes son las plataformas soportadas por KCC Windows Linux Solaris

2.3 COMPATIBILIDAD NAVEGADORES


Transbank garantiza el correcto funcionamiento de KCC y Webpay bajo los siguientes navegadores Web: Internet Explorer 6, 7, 8 y 9 Mozilla Firefox 10 Chrome 17 Safari 5 IMPORTANTE: Es de responsabilidad del comercio garantizar la compatibilidad de su sitio Web con navegadores Web, como tambin tomar todas las medidas necesarias de seguridad para garantizar una compra segura. Se sugiere uso de certificados digitales y evitar uso de pop-up emergentes para evitar problemas de bloqueo con ltimas versiones de navegadores Web.

2.3 VALIDACIN DE INTEGRIDAD Y AUTENTICIDAD DEL KCC


Con el objetivo de asegurar la integridad y autenticidad del Kit de Conexin de Comercio, se ha incorporado en este manual el hash MD5 correspondiente a los principales componentes del kit para cada plataforma.
Plataforma Windows
Kcc6-Windows.rar

Hash md5 f7b70df4bc27b5e9ab6714a6abebe287

Linux Kernel 2.6


KCC6-Linux.rar

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

3. AMBIENTES DE INCORPORACIN A WEBPAY


Para el proceso de incorporacin de Webpay a una tienda virtual existen dos ambientes de conexin: Ambiente de Certificacin. Ambiente de Produccin.

3.1 Ambiente de Certificacin


El ambiente de certificacin es un ambiente especialmente creado para efectuar, en modalidad de pruebas, transacciones Webpay. En este ambiente, las transacciones son simuladas, por lo cual no se requieren datos reales, sino de pruebas. Durante el proceso de integracin se le entrega al cliente (comercio) el KCC versin 6.0, para que lo integre a su tienda virtual y realice transacciones hacia el ambiente de certificacin. Para mayor informacin consultar el Anexo A. Una vez realizada la integracin es necesario certificarla, para esto se realizan transacciones de prueba desde la tienda virtual hacia el ambiente de certificacin, y se verifica el funcionamiento global del sistema. Referirse al Anexo C para ver detalles exigidos en este proceso. Para fines de configuracin, la URL y puerto de comunicacin con Webpay de certificacin de Transbank son: SERVERTRA PORTTRA : https://certificacion.webpay.cl : 6443

3.2 Ambiente de Produccin


Una vez finalizada la integracin y certificada con xito, el comercio pasa a la ltima fase denominada produccin en donde la tienda ya esta habilitada para trabajar con Webpay sin problemas. Para fines de configuracin, la URL y puerto de comunicacin con Webpay productivo de Transbank son: SERVERTRA PORTTRA : https://webpay.transbank.cl : 443

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.

5.1 Tipos de Transacciones soportada en esta versin


Tipo Transaccin Descripcin Permite la compra de productos y/o servicios a travs de Internet. Esta modalidad pera de forma que uno, o varios productos y/o servicios agrupados en un carro de compra entregan un total final, de venta a pagar. Est directamente asociado a una sola tienda virtual. Permite que un grupo de tiendas virtuales realicen ventas en conjunto generando slo un total de venta final.

Normal

Mall Virtual

5.2 Tipos de Moneda


Adems de las clasificaciones de empleo de Webpay mencionadas anteriormente, se permite elegir el tipo de moneda de la transaccin, es decir, peso o dlar. Esto debido a que se pueden realizar compras con tarjetas emitidas en el extranjero con cupo en dlares y validas internacionalmente.

10

5.3 Tipos de Captura


Se permiten dos formas de captura de la transaccin electrnica estas son:
Tipo de Captura Simultanea Descripcin Es la utilizada cuando la transaccin es validada en lnea por Transbank. El cargo del pago se hace simultneamente en la tarjeta de crdito del cliente. Es utilizada cuando el comercio por diversas razones, ejemplo: verificacin de stock, no puede realizar la transaccin en tiempo real, aqu lo que se hace es retener el valor de la compra del saldo de la tarjeta del cliente sin validar la transaccin hasta que el comercio apruebe la compra y lo comunique a Transbank. Existe un tiempo mximo estipulado para realizar esto ltimo, de no ser as la retencin de la tarjeta de crdito del cliente ser reversada.

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

5.4 Tipos de Pago


Actualmente existen cuatro tipos de pago posibles. Estas se detallan a continuacin:
Tipo de Pago Venta Normal Venta Cuotas Descripcin Corresponde al pago total del precio establecido por la tienda para el producto en cuestin. Corresponde al pago de un producto en una cantidad de cuotas establecida por el tarjetahabiente. Corresponde al pago de un producto en tres cuotas precio contado. Corresponde al pago de un producto en dos cuotas precio contado. El comercio ofrece al tarjetahabiente pagar sus producto, en cuotas iguales y conocidas por l. Esto implica que la informacin principal en cada transaccin la constituye el precio contado del producto, el valor y nmero de cuotas. Pago a travs de tarjeta de dbito Redcompra

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

5.5 Medios de Conexin


El medio de conexin indica a KCC la forma en la que se comunicar con TBK. Esto se define a travs del parmetro MEDCOM que se encuentra ubicado en el archivo tbk_config.dat. El valor que este parmetro puede tomar es 1. Este parmetro abre un canal SSL (canal de comunicacin seguro) entre el comercio y Transbank, por el cual se envan los datos encriptados y en segundo plano generando un token identificador de la transaccin que se le enva al tarjeta habiente para su redireccin al formulario de pago Webpay. Observaciones: El parmetro MEDCOM = 1, como se indic anteriormente, requiere de SSL para su funcionamiento, lo que implica que el comercio pueda establecer una comunicacin directa con las IPs de Transbank al puerto 443 (la url de conexin es https://webpay.transbank.cl) Las IPs de Transbank a las que el comercio debe permitir el trfico (comercio -> Transbank), son las siguientes: o 200.10.14.162 o 200.10.14.163 o 200.10.12.162 o 200.10.12.163 o 200.10.14.34 o 200.10.14.177 Se recomienda filtrar por las IPs listadas anteriormente el acceso a la cgi tbk_bp_resultado (ver seccin 7.3.2) para asegurar que slo Transbank pueda ejecutarla.

13

6. ARQUITECTURA DEL KCC


6.1 Definiciones generales
El KCC es una aplicacin que bsicamente esta compuesta por: Subprogramas Archivos de configuracin Archivos de seguridad Archivos de registro Pginas Web Llave pblica de Transbank

6.1.1 Subprogramas

Subprograma Pago Resultado de la Transaccin Verificacin de Firma Digital

Nombre del Archivo tbk_bp_pago tbk_bp_resultado tbk_check_mac

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.

Figura 2. Flujo de Informacin Webpay Modalidad Normal

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

7. INTEGRACIN DEL KCC CON EL SOFTWARE DE LA TIENDA VIRTUAL


En la instalacin del KCC en el sitio del comercio hay aspectos que varan entre un comercio y otro. Esto debido a que no todos los comercios tienen los mismos software instalados (Servidor Web y Software de Comercio Electrnico principalmente), as hay algunas decisiones en la instalacin que se dejan a criterio del comercio. Los pasos necesarios para la integracin del KCC genrico con un software de comercio electrnico son los siguientes:
Pasos Instalacin del KCC. Detalle - Creacin de estructura de directorios. - Definicin de permisos. - Copia de archivos. - Archivo de configuracin tbk_config.dat. - Archivo de configuracin tbk_trace.dat - Pginas de llamada al KCC. - Pginas para confirmar las transacciones.

Configuracin del KCC Creacin de pginas de comercio.

7.1 Instalacin del KCC


7.1.1 Creacin de estructura de Directorios Directorio Base La aplicacin se debe alojar en un directorio base para facilitar su ubicacin y posterior configuracin, as se debe crear un directorio base denominado, por ejemplo, KCC. Directorio CGI-BIN El segundo paso para la instalacin del KCC en el sitio del comercio es crear un directorio de CGIs dentro del directorio base. Para ello hay que ejecutar las siguientes acciones: 1. Crear un directorio vaco con el nombre $(PATH_DISCO_DIRCGI). 2. Configurar el servidor Web para agregar un directorio de CGIs en la ubicacin $(PATH_DISCO_DIRCGI) cuya ubicacin lgica sea PATH_WEB_DIRCGI). 3. Asignar permisos de ejecucin para el usuario Web.

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

7.2 Configuracin del KCC


Los archivos de configuracin del KCC son: tbk_config.dat tbk_trace.dat

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.

Ejemplo: WHITELISTCOM=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234 56789./:=&?_ Observacin: Solamente puede ir un parmetro por lnea.

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

/cgi-bin/bp_revision.cgi Path Web del cgi bp_revision en Transbank. URLCGITRA = /cgi-bin/bp_revision.cgi

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

Los niveles posibles de log son:


Nivel LOGINFO LOGERROR LOG_FATAL Valor 1 2 4 Descripcin El KCC genera logs informativos. El KCC genera logs de errores. El KCC genera logs Fatales

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 Creacin de Pginas de Comercio


El ltimo paso en la integracin del KCC con el software del comercio, es la creacin de cuatro pginas dinmicas por parte de la tienda para conectarse con el KCC.

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

7.3.2 Pgina de Cierre para confirmar las transacciones


IMPORTANTE: La pgina de cierre, explicada en esta seccin, contiene la lgica ms relevante de la transaccin. De no estar bien implementada, ocasionar errores e inconsistencias entre la informacin manejada por Transbank y el comercio. Especficamente, se podra producir un descuadre frente a transacciones autorizadas y reversadas por no contar con la respuesta adecuada por parte de la tienda del comercio. El efecto final sern diferencias en abono al comercio.

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 VALIDACIONES OBLIGATORIAS EN PGINA DE CIERRE


7.4.1 Validacin de Monto Para aumentar la seguridad de la tienda virtual, Transbank exige la realizacin de una validacin del monto de cada transaccin. Para tal efecto, se entrega a la pgina de cierre el parmetro TBK_MONTO TBK_MONTO_TIENDA_MXXX de acuerdo a la transaccin usada. As la tienda virtual debe validar el monto que pide autorizar con el monto autorizado por Transbank. En la pgina de pago se guarda la informacin.

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

La lgica implementada en la pgina de cierre debe ser la siguiente:

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

7.5 GENERACIN DE LLAVES ASIMTRICAS PRODUCTIVAS


Para generar las llaves asimtricas productivas, se puede utilizar la aplicacin proporcionada por Transbank (genkey.exe) o utilizar las libreras OpenSSL: Generacin de llaves con OpenSSL:
# openssl genrsa -out privada.pem 1024 # openssl rsa -in privada.pem -pubout -out publica.pem

Generacin de llaves con herramienta genkey (slo plataforma Windows):


#genkey 1024 Generacion de LLaves para KCC 5.0 Webpay Transbank Ingrese su codigo de comercio:59701234556 Tamano Llave: 1024 generando llaves.... Clave privada RSA guardada en archivo privada.pem El archivo privada.pem contiene su llave privada, este es secreto y debe ser cargado en el KCC.

36

8. DESCRIPCIN DE TIPOS DE TRANSACCIONES


Para el buen funcionamiento del sistema de pago Webpay, se deben definir para cada una de las transacciones de pago, parmetros de entrada y salida. Los parmetros de entrada son los que se deben generar en las pginas de llamada al KCC por parte del comercio, bsicamente a travs de algn formulario que enve dichos parmetros va mtodo POST al CGI tbk_bp_pago. Los parmetros de salida son aquellos que entrega Transbank a travs del CGI tbk_bp_resultado al comercio por medio de la pgina de cierre para finalizar la transaccin. La definicin de parmetros se encuentra establecida para cada tipo de transaccin. Esta definicin se encuentra en el archivo tbk_param.txt, la cual no es necesario crear o modificar, ya se entrega en el KCC. Ejemplo para Transaccin normal:
<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>

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

8.1 TRANSACCIN NORMAL


La Transaccin Normal consiste en realizar una transaccin virtual llamando a la CGI tbk_bp_pago con los parmetros de entrada definidos en la Tabla 3. Una vez ejecutado este cgi el control de la transaccin es tomado por Transbank quien le exige al tarjetahabiente que entregue una serie de datos de su tarjeta para terminar la transaccin, el resultado de sta es comunicado al comercio por medio del cgi tbk_bp_resultado, que entrega los parmetros a la pgina de cierre, estos parmetros de salida son mostrados en la Tabla 4. Una vez confirmada la transaccin a Transbank por parte del comercio, se le devuelve a ste el control del browser del cliente. Esta Transaccin esta orientada a una tienda en donde por cada pago el cliente debe digitar los datos de la tarjeta de crdito.
Parmetro TBK_TIPO_TRANSACCION TBK_MONTO TBK_ORDEN_COMPRA TBK_ID_SESION TBK_URL_EXITO Descripcin Tipo de transaccin (TR_NORMAL) Monto de la transaccin. Sin separadores de miles ni de decimales. Se asume los dos ltimos dgitos como valores decimales. Orden de compra, generado por el comercio. Identificador de sesin. (opcional) Pgina a llamar en caso de xito en la transaccin. Debe ser una direccin absoluta, para lograr el redireccionamiento del browser del cliente. Pgina a llamar en caso de fracaso en la transaccin. Debe ser una direccin absoluta, para lograr el redireccionamiento del browser del cliente. Slo se enva para caso de pago CI. (opcional) Monto correspondiente de cada cuota. Slo se enva para caso de pago CI. (opcional) Nmero de cuotas a pagar. Largo 50 10 26 61 256 Tipo A N A A A

TBK_URL_FRACASO TBK_MONTO_CUOTA TBK_NUMERO_CUOTAS

256 9 2

A N N

Tabla 3. Parmetros de entrada Transaccin Normal

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

TBK_NUMERO_CUOTAS TBK_VCI TBK_MAC

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

8.2 TRANSACCIN MALL VIRTUAL


La Transaccin Mall Virtual permite agrupar a varias tiendas virtuales en un Mall Virtual, el cual posee un cdigo de comercio propio y nico que corresponde al parmetro ID_COMERCIO que se configura en el archivo tbk_config.dat. Por otro lado, cada tienda virtual asociada al Mall tambin posee un cdigo de comercio (cdigo de tienda), que la identifica como nica, este cdigo se enva como parmetro al momento de realizar la compra. Esta transaccin acta bsicamente igual que la Transaccin Normal con la salvedad que al momento de la confirmacin por parte de Transbank, la derivacin del browser es hacia una pgina de resultado en la cual se lleva un catastro de las transacciones por comercio aprobadas y rechazadas. En caso de existir un error en la confirmacin por parte de la tienda (Mall), a Transbank en cuanto a la realizacin del cierre de la compra el browser del cliente ser derivado a la pgina de fracaso definida por el comercio. Los parmetros de entrada al cgi tbk_bp_pago se definen en la Tabla 5 y los de salida en la Tabla 6.
Parmetro TBK_TIPO_TRANSACCION TBK_MONTO TBK_ORDEN_COMPRA TBK_ID_SESION TBK_URL_RESULTADO TBK_URL_FRACASO TBK_NUM_TRX TBK_CODIGO_TIENDA_MXXX TBK_ORDEN_TIENDA_MXXX TBK_MONTO_TIENDA_MXXX TBK_MONTO_CUOTA_MXXX TBK_NUMERO_CUOTAS_MXXX Descripcin Largo Tipo de transaccin (TR_MALL). 50 Monto total de la transaccin Mall. 10 Orden de compra de la transaccin Mall. 26 Identificador de sesin (opcional). 61 Pgina a llamar con los resultados de las 256 transacciones. Pgina a llamar en caso de fracaso en la 256 transaccin de Mall. Nmero de transacciones de compra. 4 Cdigo de Comercio de la tienda nmero XXX 12 en la transaccin Mall. Orden de compra de la tienda XXX en la 26 transaccin Mall. Monto de compra de la tienda XXX en la 10 transaccin Mall. Solo se enva para caso de pago CI. Monto correspondiente de cada cuota para 9 tienda XXX. Slo se enva para caso de pago CI. 2 Nmero de cuotas a pagar para tienda XXX. Tipo A N A A A A N N A N N N

Tabla 5 Parmetros de entrada de la Transaccin Mall Virtual.

40

Parmetro TBK_TIPO_TRANSACCION TBK_RESPUESTA TBK_ORDEN_COMPRA TBK_ID_SESION TBK_MONTO TBK_FINAL_NUMERO_TARJETA

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

8.3 TRANSACCIN CONSULTA DE TASA


La totalidad de los parmetros de entrada a la CGI tbk_bp_pago se muestran en la Tabla 7.
Parmetro TBK_TIPO_TRANSACCION TBK_URL_EXITO TBK_URL_FRACASO Descripcin Largo Tipo de transaccin (TR_TASA_INTERES_MAX). 50 Pgina a llamar en caso de xito en la transaccin 256 Pgina a llamar en caso de fracaso en la 256 transaccin. Tipo A A A

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

Tabla 8 Parmetros de salida de la Transaccin Consulta de Tasa.

42

9. ARCHIVOS GENERADOS POR EL KCC


El KCC genera dos tipos de archivos logs, un log de eventos y un log de transacciones, ambos archivos de logs se generan en el directorio $(PATH_DIRCGI_WEB)/log con formato texto plano.

9.1 Archivo de Log de Eventos


En este archivo se escriben todos los logs informativos, de error o fatales segn lo configurado en el archivo tbk_trace.dat. Se genera un archivo distinto por cada da y el nombre del archivo es de la forma TBK_EVN$(FECHA).log. Donde: $(FECHA): corresponde a la fecha en formato aaaammdd. El formato de este archivo es el que se muestra a continuacin:
Variable ID_TRANSACCION PARAMETROS FECHA HORA IP Descripcin Identificacin de la transaccin Datos relevantes, Ejemplo: accin realizada, estado de accin o sobre quin aplica, etc. Formato ddmmaaaa. Formato hhmmss. IP desde donde ser realiza la compra. Resultado operacin, donde : OK = evento correcto KO = evento incorrecto 0 ERR Descripcin evento o error. Largo 10 40 14 6 15 Tipo A A N N A

RESULTADO DESCRIPCIN

3 50

A A

Tabla 9 Formato log de eventos.

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

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

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

9.2 Archivo de Log de Transacciones (bitcora)


Este archivo contiene una lnea con cada transaccin ejecutada y almacena la data que entrega la CGI tbk_bp_resultado a la pgina de confirmacin de la transaccin. El nombre de este archivo es TBK_$(TIPO_TRANSACCION) _$(FECHA).log. Donde: $(TIPO_TRANSACCION) = TR_NORMAL, TR_MALL, etc. $(FECHA) = mmdd El formato de este archivo es el que se muestra a continuacin en la Tabla 10.
Variable TBK_ACCION * TBK_ORDEN_COMPRA TBK_CODIGO_COMERCIO TBK_TIPO_TRANSACCION TBK_RESPUESTA TBK_MONTO Descripcin Accin (ACK, ERR) Nmero de la orden de compra generada por el comercio (nmero nico por transaccin). Cdigo de comercio, nmero que identifica en forma unvoca al comercio. Indica el tipo de transaccin utilizada. Respuesta entregada por Transbank. Largo 3 26 12 50 2 10 8 17 4 4 6 61 20 2 1 4 9 de *** Tipo A A N A N N A N N N N A N A N N N A

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

Ejemplo de una transaccin en bitcora:


ACK; TBK_ORDEN_COMPRA=221353; TBK_CODIGO_COMERCIO=597027342714; TBK_TIPO_TRANSACCION=TR_NORMAL; TBK_RESPUESTA=-1; TBK_MONTO=565200; TBK_CODIGO_AUTORIZACION=000000; TBK_FINAL_NUMERO_TARJETA=7276; TBK_FECHA_CONTABLE=0520; TBK_FECHA_TRANSACCION=0520; TBK_HORA_TRANSACCION=124144; TBK_ID_SESION=238831; TBK_ID_TRANSACCION=129613424593; TBK_TIPO_PAGO=VN; TBK_NUMERO_CUOTAS=0; TBK_MAC=76d37677633e4a095669d512475ad6473e43d1039b9b599ea1583cd8ab52017e3cab320 5d1b7b889b8a0fc2a0b9495764473c9d13f54e4ef54044b296ccd8534e19bf5f0332a0db3c8217f3a3 c685c871590985585b14e58c45d68b6be56231b48425844c20da8f105b6e79d1db2b4ee86c68d588f 0479c30e5f46e6634957347482f899ae57c3259d84c1827dd58e051dabcb8bbd6be915c40f6dbe8a7 d01ae9f293e05b0db073eaa039796c540e38a0918f9e78a0633af18d9953b6ce96f4cd54f7e776bc1a 79ae987fd34873c8fdb98a29d5d39d0f74eca41d73524e709414714bde16ca1f09e7f9e15ab36cbeb 6347de8723593833059041558169fc71db9801f6e3732611ad275d14cdcab2837808d0757d17b21ab 609d2f52d63a10dfd7d257c6f833a020918d06da38c47d5424bebff93d352c3ae4f5cd4e67afe24de9 32bb5485ab57e986f3e3cbe2f6b7e8ed2281f7eeed52df7ec75f65dd237e71ce1da96b7b85c1860df 8f57c053f8481400a252754f3579a1c7f50b2c8d494810e1671cb7618f9ecb04e426a74c3c68dbcc04 64f2434dd9f636df770a66298001205539633d746691dd12be7e61d27ddc922442e1c52377e48349e 7c4698a14cee8405c37bbbc61cbd789e47aed663bd85f71d36aae6a765abc2ae9d42c0bb00159326 a7bbab2e94ac37e31535ce5a6a880d98ced0504a49f7e850178e8dc157d&

Observacin: Todas las variables estn ordenadas en una sola lnea, as se genera una lnea por actividad de transaccin.

9.3 Cdigos De Respuesta


Los cdigos de respuesta que entrega Transbank a la tienda virtual se definen el la Tabla 11.
TBK_RESPUESTA 0 -1 -2 -3 -4 -5 -6 -7 -8 Definicin Transaccin aprobada. Rechazo de transaccin. Transaccin debe reintentarse. Error en transaccin. Rechazo de transaccin. Rechazo por error de tasa. Excede cupo mximo mensual. Excede lmite diario por transaccin. Rubro no autorizado.

Tabla 11. Definicin de Cdigos de Respuesta.

46

10. SOPORTE OPERATIVO


En caso de requerir soporte durante el proceso de incorporacin a Webpay Plus o por problemas que eventualmente se pudieran presentar en rgimen productivo, deber enviar un correo a soporte.webpay@transbank.cl, entregando la siguiente informacin sobre el problema: Ambiente en que ocurri el problema (certificacin produccin) Cdigo del comercio (5970...) Fecha y hora de ocurrencia Anexar al correo: Log de eventos y de bitcora correspondientes a la fecha del suceso. Archivo tbk_config.dat Navegador y sistema operativo del usuario al que se le present el problema. Identificar, en lo posible, el banco emisor de la tarjeta del cliente (aplica slo a ambiente productivo)

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

Cdigos de Comercios disponibles:


Normal Pesos Normal Dlar Mall Pesos (2 tiendas) Tienda 1 Mall Pesos Tienda 2 Mall Pesos Mall Dlar (2 tiendas) Tienda 1 Mall dlar Tienda 2 Mall dlar 597026007976 597026007984 597026008069 597026008905 597026008913 597026010039 597026010047 597026010055

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

Valor Presente a Mxima =

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.

Paso 2: Configurando archivo de parmetros tbk_config.dat Supuestos del ejemplo:


Cdigo de Comercio Tipo De Transaccin Direccin Fsica IP Servidor de Comercio Puerto de acceso al Servidor de Comercio URL Servidor de Pago Puerto de acceso al Servidor de Pago Plataformas Servidor Web Carpeta de archivos de tienda virtual y CGI-BIN 597026016975 Normal SUPERCOMERCE 198.22.250.29 80 https://certificacion.webpay.cl 6443 Windows NT IIS D:\tienda

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

Paso 4: Instalando la llave privada del comercio de prueba publica de transbank

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 %>

URL ubicacin TBK_BP_PAGO.CGI

<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>

URL de pgina de xito

URL de pgina de fracaso

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

Paso 2: Configurando archivo de parmetros tbk_config.dat Supuestos del ejemplo:


Cdigo de Comercio Tipo De Transaccin Direccin Fsica IP Servidor de Comercio Puerto de acceso al Servidor de Comercio URL Servidor de Pago Puerto de acceso al Servidor de Pago Plataformas Servidor Web Carpeta de archivos de tienda virtual y CGI-BIN 597026016975 Normal /PATH_WWW/TIENDA_TEST IP_SERVIDOR PUERTO_SERVIDOR https://certificacion.webpay.cl 6443 LINUX APACHE ~/PATH_WWW/TIENDA_TEST

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

Paso 4: Instalando la llave privada del comercio de prueba publica de transbank

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 &eacute;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&oacute;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&oacute;n:</th> <td align=left><?php echo $TBK_RESPUESTA[1];?></td> <th align=left>Codigo Autorizaci&oacute;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&oacute;n:</th> <td $TBK_FECHA_TRANSACCION[1];?></td> <th Transacci&oacute;n:</th> <td $TBK_HORA_TRANSACCION[1];?></td> <th cr&eacute;dito:</th> <td align=left>XXXXXXXXXXXX<?php echo $TBK_FINAL_NUMERO_TARJETA[1];?></td> </tr> <tr valign=top> <th Transacci&oacute;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

Transbank S.A. COPYRIGHT2001

(ltima Actualizacin Marzo de 2012)

78