Integrando WebPay Plus Paso a Paso ¿Has tenido la oportunidad de leer el manual de integración que Transbank entrega a los programadores para esta tarea?, si lo has hecho sabrás que es una guía muy técnica y contiene bastantes errores e incluso los códigos de ejemplo son erróneos, esto genera genera confusión y a su vez una enorme pérdida de tiempo para los comercios y valla que he visto rodar cabezas de programadores que les tomo mucho tiempo entender el flujo de una transacción y sus clientes, el comercio, no tienen la paciencia ni el tiempo para estar esperando que aprenda el resto de proceso. Si tomas en cuenta que por integrar WebPay a un comercio un programador cobra entre $200.000 y $350.000 CLP, vale la pena aprender la correcta forma de realizar una integración ya sea para integrar y ofrecer como servicio como para integrarlo en el sitio de nuestro proyecto independiente.
1 Integrando WebPay Plus Paso a Paso
Integrando WebPay Plus Paso a Paso ¿Has tenido la oportunidad de leer el manual de integración que Transbank entrega a los programadores para esta tarea?, si lo has hecho sabrás que es una guía muy técnica y contiene bastantes errores e incluso los códigos de ejemplo son erróneos, esto genera genera confusión y a su vez una enorme pérdida de tiempo para los comercios y valla que he visto rodar cabezas de programadores que les tomo mucho tiempo entender el flujo de una transacción y sus clientes, el comercio, no tienen la paciencia ni el tiempo para estar esperando que aprenda el resto de proceso. Si tomas en cuenta que por integrar WebPay a un comercio un programador cobra entre $200.000 y $350.000 CLP, vale la pena aprender la correcta forma de realizar una integración ya sea para integrar y ofrecer como servicio como para integrarlo en el sitio de nuestro proyecto independiente.
1 Integrando WebPay Plus Paso a Paso
¿Qué es WebPay Plus? Es una pasarela de pagos online que permite a los clientes comprar productos o servicios por internet y a los comercios recibir los pagos de sus clientes. Creado por Transbank es actualmente la principal pasarela de pagos online, es posible encontrarnos con WebPay Plus para casi cualquier pago o compra por internet. Esta pasarela es un beneficio y casi una necesidad para muchos comercios, pero solo ellos saben por todo el sufrimiento que tuvieron que pasar para poder integrarla a sus sitios web.
¿Cómo lo obtengo? Para contratar WebPay Plus debes llamar a Transervice al 600 638 638 0 o 0 o desde celulares al 02-2661 27 00, 00, indica a la operadora que deseas contratar WebPay Plus y ella tomara tus datos, para poder contratar debes tener iniciación de actividades con un mínimo de 6 meses funcionando como comercio.
WebPay Plus realiza un cobro mensual de 0.48 uf al mes más IVA Por transacción en Debito 1.79% más IVA Por transacción en Crédito 2.95% más IVA
Estos montos son descontables de cada transacción.
La información indicada es información comercial de Transbank y está sujeta a cambios sin previo aviso.
2 Integrando WebPay Plus Paso a Paso
Manos a la integración Conociendo los archivos Para iniciar la integración debes descargar el Kit de integración que Transbank pone a nuestra disposición, el Kit para su versión de Linux 32 y 64 bits son parte de esta guía pero si requieres otra versión o una más actualizada la puedes encontrar en la siguiente URL https://www.transbank.cl/public/productos-y-servicios/webpay/ . Una vez realizada la descarga descomprime el archivo y veras los siguientes archivos que lo componen:
Lo denotado en azul es lo único a lo que debes poner total atención es sumamente importante para entender el proceso que Transbank sigue para certificar el sitio de un comercio, detallo a continuación: ManualIntegracionKCC60.pdf : Este manual es una mala mezcla de rápidas actualizaciones en la documentación del KCC 5, es poco claro y demasiado técnico para la mayoría de los que realizan una integración por primera vez, si no fuese por el excelente trabajo de apoyo de algunos en la mesa de soporte WebPay Plus sería imposible integrar solo con ese manual, pero no debe ser menos preciado puesto que es también una de las herramientas principales de ese equipo de apoyo pues contiene una base limitada de los errores que pueden presentarse al momento de la integración, es por ello que por más complejo que parezca, una vez hayas leído esta guía y comprendido los detalles y secretos de la integración WebPay, da una leída rápida al manual que Transbank ofrece, veras como entenderás un poco más tanto tecnicismo. Como dato anexo, el manual que Transbank entrega corresponde a la versión 6.0 del KCC y actualmente están en la 6.02, NO existe una versión actualizada de la documentación para integrar esta importante pasarela. Ficha Certificación WebPay 6: Una vez hayas terminado la integración debes enviar este documento a Transbank para dar inicio a las pruebas de integración en las cuales Transbank corrobora que la integración no tenga inconvenientes y sea segura tanto para el comercio como para quienes compraran en él, más adelante en esta guía veras a detalle como completarlo.
3 Integrando WebPay Plus Paso a Paso
CGI-BIN: Este directorio es común en la raíz de algunos Host, en este caso contiene los archivos del KCC encargados de que el proceso de la transacción se lleve a cabo, para poder dar a entender esto haremos un reconocimiento por su estructura.
Reconocimiento por el KCC El KCC, Kit de integración que Transbank pone a nuestra disposición para conectar con los servidores de Certificación y Producción fue realizado con una tecnología actualmente casi descontinuada llamada CGI, dentro del KCC encontraras el directorio CGI-BIN con los siguientes archivos:
Como puedes ver existen solo tres archivos con extensión “.cgi”, estos archivos son el cuerpo de la integración puesto que por ellos pasa el proceso de pago desde que el cliente presiona pagar en la página del comercio hasta que la transacción es llevada a éxito o fracaso, a continuación te daré detalle de el por qué a cada uno de estos archivos: Tbk_bp_pago.cgi: Para poder dar inicio a un pago con WebPay el cliente presiona pagar en la página del comercio, pues bien al realizar esa acción internamente inyecta los datos de la transacción a la CGI Pago, esta recibe los datos y una vez conectada con el servidor de Transbank permite el ingreso de los datos de la tarjeta y banco. Tbk_bp_resultado.cgi: Debes entender que la información enviada a la CGI Pago es procesada por Transbank y el mismo banco, una vez realizado este proceso dicha información vuelve a los servidores del comercio y se conecta con la CGI Resultado cuya función principal es desencriptar la información de la transacción para que sea procesada y aceptada o rechazada por la integración del comercio. Tbk_check_mac.cgi: Esta CGI es la encargada de corroborar que la información recibida por la CGI Resultado provenga de Transbank, es importante tener claro que una vez la información es desencriptada por la CGI Resultado dicha información es enviada a un archivo de validaciones llamado Pagina de Cierre, este archivo utiliza una de sus validaciones para conectarse con la CGI Check_mac y corroborar que la firma digital sea efectivamente de Transbank.
4 Integrando WebPay Plus Paso a Paso
UNA TRANSACCIÓN PASO A PASO . Ya aclarada la función principal de cada una de las CGI debes entender el proceso desde que se presiona el botón pagar hasta el final de la transacción puesto que a pesar de lo que se piensa, Transbank no maneja la totalidad de una transacción, esto es un proceso que detallo a continuación paso a paso: 1. El cliente presiona el botón pagar en la página del comercio. 2. De forma interna la información de la transacción se inyecta a la CGI Pago. 3. CGI Pago procesa la información y permite al cliente ingresar los datos de tipo de pago, tarjeta y banco. 4. El cliente presiona nuevamente pagar y es ahí cuando sale de Transbank para entrar a los sistemas del banco emisor de su tarjeta. 5. El Banco solicita los datos de acceso personal al cliente, el cliente acepta y el banco valida dicha información. 6. Si el banco no encuentra inconvenientes en la tarjeta o saldo enviara la información de vuelta a Transbank con el parámetro tbk_respuesta = 0, conocido como Respuesta 0, esta respuesta es bancaria y quiere decir que esta todo Ok y de forma interna reserva el dinero de la transacción para su posterior confirmación de éxito. En caso de que haya algún problema con la tarjeta o no haya saldo el banco al enviar la información a Transbank emitirá un tbk_respuesta distinto de 0, por ejemplo tbk_respuesta = -1 por lo cual no hará la reserva del dinero. 7. Transbank recibe los datos de la transacción incluyendo la respuesta del banco (tbk_respuesta), encripta la información y la envía al servidor del comercio. 8. En el servidor del comercio la información de la transacción se conecta con la CGI resultado que des encripta la información y la envía a la página de cierre para que sea validada. 9. La página de cierre realiza la validación de respuesta bancaria, si la respuesta bancaria es = 0 entonces continua con las demás validaciones pero si la respuesta bancaria es distinta de 0 entrega como respuesta del comercio inmediatamente un ACEPTADO, esto no quiere decir que la transacción fue exitosa, solo que el comercio acepta la transacción pues sus datos han llegado sin inconvenientes al servidor. 10. La página de cierre valida la Check Mac, esta validación corrobora que los datos de la transacción provengan de Transbank, esto se realiza comparando la información con el resultado de la CGI Check_Mac, si la validación falla la respuesta inmediata del comercio será RECHAZADO, en caso de resultar exitosa continuara con la validación de Orden de compra. 11. La página de cierre valida la Orden de Compra, esta validación corrobora que la orden de compra sea la correcta y no haya sido adulterada en el proceso de la transacción, en caso 5 Integrando WebPay Plus Paso a Paso
12.
13.
14.
15. 16. 17. 18.
de fallar la respuesta inmediata del comercio será RECHAZADO, en caso de resultar exitosa continuara con la validación de Monto Adulterado. La página de cierre valida el Monto Adulterado, esta validación corrobora que le monto sea el exacto de cuando se dio inicio a la transacción, en caso de fallar la respuesta inmediata del comercio será RECHAZADO, en caso de resultar exitosa habrán sido exitosas las tres validaciones obligatorias por lo que de forma inmediata la respuesta del comercio será ACEPTADO. Ahora existen dos tipos de respuesta, la respuesta del banco (tbk_respuesta) y la respuesta del comercio (ACEPTADO o RECHAZADO), indiferente las respuestas entregadas, ambas junto a la información de la transacción son enviadas a Transbank para su evaluación. Transbank analiza lo siguiente: a. Si tbk_respuesta = 0 y la respuesta del comercio es ACEPTADO, la transacción es Exitosa. b. Si tbk_respuesta es distinto de 0 y la respuesta del comercio es ACEPTADO, la transacción es Fracasada. c. Si tbk_respuesta = 0 y la respuesta del comercio es RECHAZADO, la transacción será Reversada. La información es enviada nuevamente de vuelta al servidor del comercio. Si la transacción fue exitosa, el cliente es redirigido a la página de Éxito de la transacción. Si la transacción fue fracasada, el cliente es redirigido a la página de fracaso de la transacción. Si la transacción será reversada, el cliente es redirigido a la página de fracaso de la transacción. En este caso como se mencionó en el punto 6, el banco acepto la transacción pero el comercio no, por lo cual el banco emisor de la tarjeta ya hizo la reserva del dinero y el cliente lo vera de forma negativa pues hizo una transacción que fracaso ante sus ojos pero de igual forma descontaron el dinero, es importante aclarar que el dinero no fue descontado, solo fue reservado a la espera de la confirmación de que la transacción fuera exitosa, lamentablemente este proceso puede llegar a tomar hasta 72 horas bancarias y no es responsabilidad de Transbank o el comercio donde se realizó la compra, es un tema totalmente bancario, una vez el banco realiza la confirmación de que la transacción fracaso los dineros son integrados nuevamente a la cuenta del cliente.
Para graficar este proceso y apoyar su comprensión, en la siguiente página encontraras un diagrama con el flujo correcto paso a paso, si bien puede verse reducido en tamaño en los archivos adjuntos a esta guía está incluido de forma independiente para tu comodidad.
6 Integrando WebPay Plus Paso a Paso
Flujo de una transacción con WebPay Plus. Iniciodelproceso
El clientepresiona Pagaren elsitio del comercio
Seenvíala informaciónde la transacción a laCGI Pagoy estase conectacon Transbank
La CGI Pago reconocelosdatos y permitealcliente ingresar eltipo de pago, bancoy numerode tarjeta
Ingresadoslosdatos el clientepresiona “Pagar”y salede Transbank paraser redirigidoalBanco
El clienteingresal os datosqueel banco solicita, y losenvía, en estaetapa el bancocorrobora que nohaya problemasconla tarjetao elsaldo
Agrupalosdatos de latransaccióny añade una “Respuesta con valor distintode 0", ej: Respuesta-1
No Banco Ok?
SI
Agrupalosdatos de latransaccióny añadeuna “Respuesta0”
La informaciónes enviadadevuelta a Transbank
Transbank recibela información,la cual esencriptaday enviadaa laCGI Resultadoen el servidordel comercio
CGI Resultado desencriptala informacióny la envía a lapaginade Cierre
Paginadecierre corroborala respuesta delbanco y validaciones obligatorias
No
Respuestadel banco= 0
SI No Validación Check_Mac Ok?
SI
No
Validación Ordende CompraOk?
SI
Validación Monto Ok?
Seenvíarespuesta decomercio “Rechazado”
No
SI
Seenvíarespuesta decomercio “Aceptado”
Seenvíaa Transbank respuesta delbanco y respuestadel comercio
Respuestadel bancoOk? No
Sila respuestadel bancoes distintade 0y larespuestadel comercioes “Aceptado” , la transaccióne s Fracasada.
Seredirigea Fracaso
SI
Transbank recibelas respuestasfinales y evalúa
Sila respuestadel bancoes= 0y la respuestadel comercioes “Aceptado” , la transaccióne s exitosa.
Seredirigeala paginadeéxito
Respuestadel comercioOk? No
SI
Sila respuestadel bancoes= 0y la respuesta del comercioes “Rechazado” , la transaccióne s Reversada.
Seredirigea Fracaso
Fin del Proceso
7 Integrando WebPay Plus Paso a Paso
MANOS AL FUEGO , A INTEGRAR Ya habiendo conocido lo básico para entender una transacción y su entorno con el KCC, llego el momento de dar un paso más a delante y explicar el paso a paso de una integración al estilo vieja escuela de Transbank, para ello necesitamos que pongas toda tu atención y empeño en entender a detalle lo que te explicaremos a continuación. Las pruebas y explicaciones que verás aquí están basadas bajo un ambiente de servidor Host Linux de 64 bits.
Recomendaciones sobre Hosting: Es importante al momento de seleccionar un Hosting tener en cuenta los siguientes puntos: Arquitectura del servidor (Plataforma): Si bien el KCC tiene distintas versiones para cada arquitectura de servidor, esta guía busca simplificar la integración de WebPay Plus y con ello evitar grandes dolores de cabeza al momento de integrar, veras en adelante que nos basamos en la arquitectura de Linux y es de por si lo que recomendamos 100% pues presenta estabilidad y fácil resolución de problemas con respecto a la ejecución de funciones y extensiones sin olvidar que a nuestra opinión bien configurado un servidor en Linux puede tener una seguridad casi inquebrantable. Estabilidad y soporte del servicio: A pesar de lo que la opinión popular piense, no siempre los problemas en las transacciones son por culpa de transbak, de hecho casi nunca es un problema de los servidores de Transbank, hay que recordar que el KCC estará instalado en nuestro servidor por lo cual cualquier inconveniente en nuestros servicios de Host puede causar problemas en las transacciones para nuestros clientes. Es altamente recomendable que al momento de contratar el servicio sea una empresa que pueda prestar soporte directo 24/7 a cualquier problema que pueda surgir y debes creer que los habrá tarde o temprano. Cuanto tráfico diario puede soportar: Si el comercio al cual se realiza la integración tiene pocas ventas, un servicio Host estándar o compartido no dará problemas pues no se verá renvalsado por las visitas, en cambio si el comercio tiene cientos o miles de ventas diarias debes multiplicar por 10 la cantidad de visitas y corroborar con el servicio de hosting si el plan que estas a punto de contratar puede soportar tal tráfico. Nivel de control que tenemos dentro del servicio de Host: Si hay algún inconveniente con el Hosting y lo habrá, debes tener un soporte adecuado para la solución de este, normalmente los servicios host manejan un sistema de tickets pero dependiendo la empresa pueden tomar un tiempo en contestar por lo que te recomiendo que contrates un servicio que te permita controlar lo máximo posible de tu servicio de Host, así cuando el inminente problema llegue, puedas ser tu quien lo solucione, existen servicios VPS (Virtual Prívate Server) que te permiten gestionar cada
8 Integrando WebPay Plus Paso a Paso
detalle sin embargo el costo suele ser bastante elevado, gestiona de forma correcta que servicio es el más conveniente acorde a los requerimientos y exigencias de cada comercio. Ejecución de archivos CGI: Antes de contratar cualquier servicio de Hosting lo primero a consultar es si permite la ejecución de archivos CGI ya que normalmente están bloqueados pues presentan para muchos algún riesgo en la seguridad del servicio de Host. Ejecución de la función Exec: Otro punto importante es la programación y la función más importante se llama EXEC, esta función permite ejecutar de forma interna la CGI Check_Mac y con ello validar que la información corresponde a los servidores de Transbank, sin embargo la cualidad de ejecución que esta función permite no es bien vista por muchos administradores de Host por lo cual puede que este bloqueada, averiguar si es así y en caso de serlo si es factible su habilitación. Herramientas a utilizar en esta guía: 1. Hosting Linux 64bits sin bloqueo de archivos CGI ni función EXEC. 2. Filezilla (software FTP Cliente incluido en los archivos de esta guía) 3. KCC Linux 64 bits, (incluido en los archivos de esta guía) Los ejemplos de código mostrados en esta guía son basados en lenguaje PHP y HTML. Subir los archivos al servidor: Dar alta a los archivos en el servidor es un proceso sencillo pero no debemos descuidarlo puesto que el no realizar correctamente este proceso puede hacer que caigas en errores básicos que te harán perder tiempo a ti y al comercio que espera su integración, sigue este sencillo paso a paso para cumplir un alta exitosa de archivos: Accede a tu hosting a través de Filezilla o tu software cliente ftp favorito e ingresa a public_html, este último es el directorio raíz de tu web, al acceder veras algo similar a esto.
En el caso de nuestro ejemplo existe ya un directorio CGI_BIN, en caso de no haberlo debes crearlo para posteriormente subir los siguientes archivos.
9 Integrando WebPay Plus Paso a Paso
Como sabes son los archivos de la integración, en este caso es la versión de Linux 64 bits, debes subirlos dentro del directorio CGI-BIN. Para subir archivos a un servidor existen dos modos, modo Binario y modo ASCII, el cliente ftp te permite elegir entre tres opciones de subida ASCII, binario y Automático esta última opción esta por defecto por lo cual jamás nos preocupamos por cómo se suben nuestros archivos confiando en que el cliente ftp tomara la mejor decisión, en el caso del KCC el cliente ftp no toma la mejor decisión al subir las CGI por lo cual sí subes los archivos de forma directa e intentas acceder a la URL de alguna CGI aparecerá lo siguiente:
El error 500 en este caso hace referencia a un inconveniente en la ejecución de la CGI, por lo cual podemos pensar solo dos cosas, el archivo se corrompió al ser dado de alta en el servidor o es un problema de permisos de ejecución, para evitarlo subiremos los archivos de la siguiente forma: De los archivos de la integración solo sube esto:
Una vez los hayas subido en Filezilla dirígete a la opción Transferencia, tipo de transferencia y selecciona Binario como se muestra a continuación.
Solo entonces sube al servidor los siguientes archivos CGI:
10 Integrando WebPay Plus Paso a Paso
Una vez hayas subido los archivos retrocede a public_html, selecciona el directorio CGI_BIN, da clic derecho y selecciona la opción permisos de archivo:
Aparecerá la ventana de atributos de archivo, en ella debes de forma recursiva asignar los permisos 755, para ello en la opcion “Valor numérico” escribe 755, selecciona el check “Incluir todos los subdirectorios” y marca “Aplicar a todos los ficheros y directorios” como se muestra a continuacion.
11 Integrando WebPay Plus Paso a Paso
Eso bastaría con el alta de archivos pero para corroborar haremos las siguientes pruebas: 1. Accede a la URL de la CGI Pago, esta debería mostrarse como se indica a continuación:
2. Accede a la URL de la CGI Resultado esta debería mostrarse de forma similar a esto:
Habiendo resultado exitosas las pruebas damos por finalizada el alta de archivos al servidor, proseguiremos con la configuración del KCC.
12 Integrando WebPay Plus Paso a Paso
Archivo de configuración. El KCC posee un archivo único de configuración de nombre tbk_config.dat, su función principal es indicar a nuestra integración como conectar con los servidores de Transbank y donde debe ser dirigida la información al volver de los servidores de Transbank, en el KCC el archivo se encuentra en el directorio “DATOS” con la siguiente configuración estándar.
IDCOMERCIO: Contiene el número de comercio de pruebas el cual es uno de los identificadores para conectarse con el servidor de Transbank, al salir a producción debe ser reemplazado por el código de comercio real entregado por Transbank. MEDCOM: Indica el medio de comunicación, básicamente añade un filtro de seguridad para servidores que no tengan SSL, si bien el valor recomendado por Transbank es 1, este valor suele dar inconvenientes en algunos servidores, si tienes inconvenientes con este valor cámbialo a 2 para deshabilitarlo. TBK_KEY_ID: Establece el largo de la llave que permitirá la conexión con los servidores de Transbank, no se requiere modificar para la versión 6.02 del KCC. PARAMVERIFCOM: Establece un nivel de verificación de los parámetros enviados y recibidos, el valor 1 lo activa y el 0 lo desactiva, mantener con el valor por defecto. URLCGICOM: Este parámetro por defecto en blanco indica a la información que vuelve de Transbank donde se ubica la CGI resultado, debe contener la URL de esa CGI en su servidor. SERVERCOM: Este parámetro debe contener la IP Publica de tu servidor para indicar al KCC a que servidor debe volver la información de las transacciones. PORTCOM: Este parámetro debe contener el puerto por el cual la información de la transacción proveniente de Transbank debe entrar al servidor del comercio, por defecto es el puerto 80, en casos especiales puede ocuparse el puerto 5555 mientras sea previamente habilitado. WHITELISTCOM: Contiene por defecto una lista de caracteres que se manejan en la lista blanca del KCC para que no presenten defectos durante la integración, si para alguna URL relacionada con la integración incluyes un carácter distinto o extraño corrobora que se encuentre en esta lista para 13 Integrando WebPay Plus Paso a Paso
evitar problemas difíciles de detectar, en caso de que no se encuentre puedes agregarlo libremente. HOST: Este parámetro debe contener la IP Publica de tu servidor para indicar al KCC a que servidor debe conectarse la información de las transacciones si desea acceder a la página de cierre, en casos especiales puede contener una IP local para indicar donde está ubicada de forma local la página de cierre. WPORT: Este parámetro debe contener el puerto por el cual la información de la transacción proveniente de Transbank debe acceder a la página de cierre, por defecto es el puerto 80, en casos especiales puede ocuparse el puerto 5555 mientras sea previamente habilitado. URLCGITRA: Contiene por defecto la ruta de las CGI de servidor en los servidores de Certificación de Transbank, para producción deben ser modificadas. URLCGIMEDTRA: Contiene por defecto la ruta de las CGI de servidor en los servidores de Certificación de Transbank, para producción deben ser modificadas. PORTTRA: Este parámetro contiene el puerto por el cual el KCC en nuestro servidor se conecta con los servidores de Transbank. PREFIJO_CONF_TR: Este parámetro contiene el prefijo que indica cual es la página que se ejecuta en el comercio para confirmar la transacción. HTML_TR_NORMAL: Este parámetro contiene la URL de la página de cierre a la cual debe acceder la información que vuelve de Transbank.
Teniendo claro la función de cada parámetro en el archivo de configuración debes modificarlo acorde al servidor en el cual estés integrando, según lo previamente indicado y el siguiente ejemplo:
14 Integrando WebPay Plus Paso a Paso
Ya has configurado en su totalidad al KCC para que funcione en lo referente a ejecución de archivos, permisos y conexiones entre servidores, llego el momento de hacer nuestra primera prueba de pago pero para ello debes entender que las CGI de Transbank solo se activan cuando reciben información por inyección de datos. Empezando a programar Inyección de datos es el inicio de todo lo que requiere que tengas conocimientos de programación, el objetivo de esta guía no es enseñar a programar por lo que toma en cuenta que de aquí en adelante damos por hecho que tienes conocimientos sobre el área, de todas formas se explica detalladamente la lógica del código a usar y como apoyo dentro de los adjuntos en esta guía podrás encontrar archivos y códigos de ejemplo. En caso de no tener conocimientos en programación no te alarmes ya que más adelante en la guía podrás ver cómo integrar WebPay Plus sin necesidad de grandes conocimientos en programación y paso a paso.
Inyección de datos: Para poder iniciar una transacción debemos inyectar los datos de la misma hacia la CGI Pago, los datos a inyectar son: Tipo de transacción: En nuestro caso estamos trabajando en una transacción tipo normal por lo cual el valor a inyectar es el valor fijo TR_NORMAL. Orden de compra: Corresponde a la orden de compra del pago a realizar. Monto de la transacción: Corresponde al monto que se pretende pagar. ID de sesión: Este campo no es obligatorio pero es de gran ayuda para indexar las transacciones con la sesión de algún cliente en nuestro sistema de pagos. URL de éxito: Corresponde a la URL a la cual será redirigido el cliente una vez su transacción sea exitosa. URL de fracaso: Corresponde a la URL a la cual será redirigido el cliente en caso de fallar la transacción. La inyección puede realizarse mediante método POST o método GET, este último no es totalmente seguro ya que los parámetros que se envían en la transacción quedan expuestos por ello siempre al momento de programar una inyección recomendamos realizar el proceso mediante POST.
15 Integrando WebPay Plus Paso a Paso
En el siguiente ejemplo podrás ver un código en POST que POST que a través de un formulario hace el envío de los parámetros de la transacción inyectándolos directamente directamente a la CGI Pago:
Este código es parte de un documento HTML que soporte Transbank entrego durante un tiempo a los integradores para que realizaran pruebas y entendieran el envío de parámetros por POST, hemos realizado nuestras modificaciones e incluido este archivo en los datos adjuntos a esta guía. El documento HTML se llama prueba.html prueba.html y lo utilizaremos a partir de ahora para realizar las pruebas de transacciones.
Primera prueba de transacción Realizaremos nuestra primera prueba, el objetivo de esta es comprobar que las configuraciones anteriores están bien y podemos conectarnos a los servidores de Transbank, para ello abre el archivo adjunto a esta guía prueba.html en prueba.html en un editor de código y modifica la URL de la CGI Pago que se indica por la correspondiente a tu integración:
16 Integrando WebPay Plus Paso a Paso
Una vez realizado esto, guarda los cambios y ejecuta el archivo en un navegador web, recomendamos Firefox, debería lucir así:
Mantén el valor de Tipo de transacción y modifica el del resto de los parámetros con valores a tu elección, aún no hemos programado una página de éxito o fracaso así que te sugiero reemplazar esas URL por una URL de algo conocido para que puedas identificar si la transacción fue exitosa o fracasada. Ya realizados los cambios presiona PROBAR y deberías ser redirigido a esto:
Si es así, felicitaciones!!! felicitaciones!!! Ya estas conectado conectado a los servidores de Certificación Certificación de Transbank y quiere decir que todo lo que hiciste anteriormente funciono sin inconvenientes. Si intentaras realizar el pago de esa transacción ahora serias redirigido a la página de fracaso que indicaste en un principio, esto sucede porque aún no existe la página de cierre que valide el éxito de la transacción, para ello haremos las pruebas en base a unos archivos de prueba adjuntos a esta guía. 17 Integrando WebPay Plus Paso a Paso
Pruebas de Flujo sin validaciones Para comprobar que el flujo de nuestra integración funciona como corresponde hemos adjuntado a esta guía los siguientes archivos:
Pruebascierre.php: Archivo Pruebascierre.php: Archivo con código de prueba para que las transacciones siempre sean exitosas forzando el éxito con un string ACEPTADO. ACEPTADO. Pruebasexito.php: Archivo Pruebasexito.php: Archivo con código de prueba que indica que la transacción fue exitosa. Pruebasfracaso.php: Archivo Pruebasfracaso.php: Archivo con código de prueba que indica que la transacción fracaso. En public_html crea public_html crea un directorio llamado pruebas y sube los archivos dentro de ese directorio ya que tanto Cierre como Éxito y fracaso no pueden estar dentro del directorio CGI-BIN, CGI-BIN, además sube el archivo prueba.html dentro prueba.html dentro de public_html como se indica a continuación:
Recuerda la configuración del archivo tbk_config.dat, tbk_config.dat, debes cambiar el parámetro HTML_TR_NORMAL por HTML_TR_NORMAL por la URL de la página de cierre de pruebas como se ve en este ejemplo:
18 Integrando WebPay Plus Paso a Paso
Ya realizados estos cambios podemos empezar con las pruebas, haremos un p ago por $16.000 CLP con datos ficticios así que entra a tu URL y abre el archivo prueba.html en tu navegador, luego cárgalo con los siguientes datos:
Presiona probar y serás redirigido al ambiente de Certificación de Transbank como se muestra a continuación:
Para realizar un pago tenemos dos opciones, con Tarjeta de Crédito o con Redcompra (Debito), en el ambiente de certificación no influye mucho que se pague en una u otra divisa es por ello que se utiliza para ambos casos los siguientes datos de prueba: Marca Nº de Tarjeta Año Expiración Mes Expiración CVV
Trx Exitosas (VISA) 4051885600446623 Cualquiera Cualquiera 123
Trx Fracasadas (MASTERCARD) 5186059559590568 Cualquiera Cualquiera 123
19 Integrando WebPay Plus Paso a Paso
Entonces, queremos comprobar que el flujo se realiza correctamente y por ello necesitamos realizar una transacción exitosa, para esto usaremos la tarjeta de prueba 4051885600446623 y solo por decisión propia pagaremos en Crédito, puedes hacerlo en debito si gustas, esto se vería así:
Presionamos pagar y después de unos segundos nos encontraremos con esto:
Esto es la simulación de banco que tiene el ambiente de Certificación de Transbank, para continuar con el pago debes usar el Rut: 11.111.111-1 y la clave: 123, luego presionar aceptar para que te redirija a la siguiente pantalla donde debes aceptar si deseas que se realice el pago, es un simulador de respuesta bancaria, si aceptas data un tbk_respuesta = 0, si un valor distinto de 0:
20 Integrando WebPay Plus Paso a Paso
Si la transacción fue exitosa y no existen problemas en el flujo de la integración serás enviado al Boucher de Transbank como se aprecia en la siguiente imagen:
Posterior a ello si presionas continuar o dejas pasar unos segundos serás redirigido a la página de éxito de pruebas que indicamos en un principio:
21 Integrando WebPay Plus Paso a Paso
En caso de que haya habido algún inconveniente con el flujo la transacción fracasará y no verás el Boucher de Transbank, serás redirigido automáticamente a la página de fracaso de pruebas que indicamos en un principio:
Si este es tu caso, revisa uno a uno los pasos para corroborar que los seguiste al pie de la letra, si así fue es probable que el problema radica en alguna configuración de tu servidor, para detectar el inconveniente y dar solución dirígete a la sección de Logs y Solución de Problemas en la página 30. Por el contrario si viste el éxito de tu transacción Felicitaciones!!! Ahora sabemos que el flujo funciona de forma correcta y puedes continuar con la programación de tu página de Cierre, Éxito y Fracaso respectivamente. Página de Cierre La página de cierre contiene las validaciones necesarias para corroborar que las transacciones sean seguras tanto para el comercio como para el cliente que realiza el pago, además es la encargada de dar la respuesta por parte del comercio ya sea esta ACEPTADO o RECHAZADO dependiendo de las circunstancias, la estructura de la página de cierre consta de lo siguiente: Captura de datos: Los datos al ser des encriptados por la CGI Resultado, son enviados a la página de cierre la que captura los datos para su lectura con un código similar a este:
22 Integrando WebPay Plus Paso a Paso
Validación de Mac: Esta validación tiene por función principal corroborar que la información venga efectivamente de los servidores de Transbank, esto lo hace conectándose con la CGI Check_Mac a través de un código similar a este:
23 Integrando WebPay Plus Paso a Paso
Validación de Orden de Compra: Esta validación tiene por función corroborar que la orden de compra sea la correcta para esa transacción, básicamente estar seguros de que no fue corrompida o no es una orden de un pago inexistente, esto lo hace a través de un código similar a este:
Suele haber poca claridad sobre el cómo realizar la validación de Orden de compra, para ello dejo el siguiente diagrama en el que explico una de las lógicas posibles que puedes utilizar al momento de programar esta validación: Inicio
Los parámetros de la transacción s e guardan en una tabla de la base de datos, se asigna estado = 0 para indicar que no ha sido pagada
El cliente presiona pagar
Los parámetros de la transacción van a Transbank y continúan el proceso normal de pago
Pagina de cierre recibe los datos
Transbank e nvía de vuelta los parámetros de la transacción a la CGI Resultado
La validación de OC se conecta a la b ase de datos y consulta
No
Entrega RECHAZADO
Si
Entrega RECHAZADO por Duplicidad de orden
OC existe?
Si
Estado de OC pagada?
No Continua con la siguiente validación y en caso de ser exitosa la pagina de cierre entrega ACEPTADO
Fin
24 Integrando WebPay Plus Paso a Paso
Se asigna Estado = 1 para registrar que ya fue pagada
Validación de Monto Adulterado: Esta validación debe corroborar que el monto de la transacción sea el mismo que al iniciar el proceso de pago, básicamente corroborar que no fue adulterado de alguna forma en el proceso de la transacción, esto es posible gracias a un código similar a este:
Al igual que con la anterior validación suele haber poca claridad sobre el cómo realizarla, para ello dejo el siguiente diagrama en el que explico una de las lógicas posibles que puedes utilizar al momento de programar esta validación: Inicio
Los parámetros de la transacción se guardan en una tabla de la base de datos
El cliente presiona pagar
Los parámetros de la transacción van a Transbank y continúan el proceso normal de pago
Pagina de cierre recibe los datos
Transbank envía de vuelta los parámetros de la transacción a la CGI Resultado
La validación de monto se conecta a la base de datos y consulta
Monto es el mismo?
No
Si
Continua con la siguiente validación y en caso de ser exitosa la pagina de cierre entrega ACEPTADO
Fin
25 Integrando WebPay Plus Paso a Paso
Entrega RECHAZADO
Página de Éxito La página de éxito es la encargada de mostrar al cliente un detalle de lo que compro incluyendo información sobre la transacción, el buen detalle de una página de éxito es una de las grandes exigencias de Transbank para poder certificar el sitio de un comercio, podemos dividir la página de éxito en lo siguiente: Captura de datos: Al igual que en la página de cierre se deben capturar los datos de la transacción para poder mostrarlos al cliente, esto puedes hacerlo con un código similar a este:
Como puedes apreciar es similar al de la página de cierre al momento de la captura de datos. El Cuerpo: El cuerpo de la página de éxito contiene toda la información previamente cargada y que debe ser mostrada al cliente, puedes programarlo con un código similar a este:
26 Integrando WebPay Plus Paso a Paso
Validación de inyección a Éxito: Si a través de POST o GET inyectan datos a la página de éxito, seguramente cargara los datos inyectados o los pertenecientes a una transacción anterior, para evitar eso debes crear una validación que corrobore que los datos que entran a la página de éxito pertenecen a una transacción ya pagada, para ello debes crear una validación con un código similar a este:
Al igual que en anteriores validaciones suele haber poca claridad sobre el cómo realizarla, para ello dejo el siguiente diagrama en el que explico una de las lógicas posibles que puedes utilizar al momento de programar esta validación: Inicio
Datos entran a pagina de cierre
Consulta en transacciones con estado pagado si OC, Monto
Pagina de cierre consulta base de datos
Si Carga los datos de la transacción exitosa
No Existen?
Fin
27 Integrando WebPay Plus Paso a Paso
Redirige a pagina de fracaso
Una vez hayas realizado lo anterior tu página de éxito se verá algo similar a esto:
En casos especiales Transbank pide un detalle mayor del producto para lo cual te recomendamos sigas el siguiente esquema: NOMBRE DEL PRODUCTO Caramelo de menta Que solo son IVA Subtotal Total
DETALLE DE LA COMPRA CANTIDAD DETALLE 2 Yo te traigo nena 1 Para ti mi amor
28 Integrando WebPay Plus Paso a Paso
PREC. UNITARIO $1.000 $500
TOTAL $2.000 $500 $399 $2.101 $2.500
Página de Fracaso La página de fracaso es la encargada de mostrar un mensaje con los posibles motivos del fracaso en una transacción, este mensaje es también parte de las exigencias de Transbank para certificar el sitio, no es muy complejo pues solo debe mostrar las causas y cargar el número de la orden de compra fracasada, puede programarla en base a este sencillo código:
Una vez programada debería verse similar a esto:
Hasta este punto hemos aclarado todo referente a cómo integrar WebPay Plus de forma manual, si has hecho todo bien y al pie de la letra puedes ahora realizar una transacción de prueba con las páginas de Cierre, Éxito y Fracaso reales.
29 Integrando WebPay Plus Paso a Paso
Logs y solución de problemas Como todo sistema el KCC maneja Logs que registran sus movimientos, estos logs nos pueden indicar el estado de una transacción o guiarnos para descubrir porque no se realizan correctamente nuestras transacciones, en el KCC existen dos logs que se encuentran dentro del directorio “Log” de tu integración como puedes apreciar a continuación:
Existen dos tipos de Logs, estos son: TBK_EVN: EVN o Eventos se comienza a grabar desde que el cliente presiona pagar en el sitio del comercio, es por ello que nos muestra a detalle el flujo de nuestra transacción desde esa instancia hasta que nos deriva a éxito o fracaso, esta cualidad hace que este log sea la herramienta principal al momento de detectar el problema que impide el correcto flujo de nuestras transacciones. El nombre del archivo permite identificar la fecha en la cual fue creado según este ejemplo: TBK_EVN20150208.log = TBK_EVN(año)(mes)(dia).log TBK_BITACORA: Bitácora nos muestra todos los parámetros de la transacción, desde si esta fue aceptada o fracasada hasta la hora de dicha transacción. Este log comienza a grabarse después de que la información de la transacción vuelve al servidor del comercio. El nombre del archivo permite identificar el tipo de transacción y la fecha en la cual fue creado según este ejemplo: TBK_BITACORA_TR_NORMAL_0208.log = TBK_BITACORA_(transacción)_(de tipo normal)_(mes)(dia).log
Datos a considerar sobre los logs: 1. El gran problema de una bitácora es que los archivos creados no registran el año, por lo cual cuando se cumple un año de su integración el sistema comienza a sobrescribir el mismo archivo. 2. Si el servidor se queda sin espacio el KCC enviara un ERROR 63 u otro error de escritura, lectura pues al no haber espacio no se podrán escribir o leer los logs.
Para dar solución a estas dos instancias sugiero cada un año realizar respaldo y limpieza de los logs en su servidor. 30 Integrando WebPay Plus Paso a Paso
Aprendiendo a leer el Log de Eventos
El log EVN como ya sabes nos permite ver el flujo completo de las transacciones desde que se presiona pagar en el sitio del comercio, el registro se realiza de forma lineal en un total de diez columnas, paso a enumerar y detallar las columnas más importantes que te permitirán entender en qué etapa del flujo esta una transacción en específico:
Transacción exitosa: 1
2
3
4
5
6
7
8
1. Posición en el flujo: Indica la posición en la cual se encuentra la transacción acorde al flujo de una transacción en WebPay. 2. Parámetros de Flujo: Indica los archivos, etapas, conexiones, orden de compra e id de transacción paso a paso en el flujo de una transacción. 3. Fecha: Indica la fecha de la transacción. 4. Hora: Indica la hora de la transacción. 5. IP: Indica la IP de la transacción. 6. Estado: Indica el estado de esa línea en la transacción. 7. Código de Comercio: Indica el código del comercio que está gestionando el pago. 8. Descripción de parámetros: Describe en un leve detalle los archivos, etapas, conexiones, orden de compra e id de transacción paso a paso en el flujo de una transacción. El ejemplo que ves pertenece a una transacción exitosa de principio a fin, con la numeración que indicamos puedes seguir una a una las columnas y en base a ello puedes leer línea a línea para entender en qué etapa esta la transacción, puedes apreciar cuando se conecta a los puertos y la página de cierre, cuando se envía y recibe la información de Transbank.
31 Integrando WebPay Plus Paso a Paso
Transacción fracasada: 1
2
3
4
5
6
7
8
En este ejemplo vemos una transacción fracasada, como puedes ver es el mismo flujo en base incluso a la misma orden de compra del ejemplo anterior (1811), si te das cuenta el flujo continua de forma correcta hasta la línea 32, en las líneas siguientes puedes ver que la tienda no acepto la transacción, esto significa que al enviar el POST a la página de cierre, esta recibe los datos y una de las validaciones obligatorias los rechaza, no entrega ACEPTADO y envía un ERROR 46 en la línea 36 indicándolo. Análisis e identificación de errores en EVN: ERROR 283: Hace referencia a un inconveniente de conexión o como se indica en el mensaje, un posible error de llaves, las llaves se encuentran en el directorio MAESTROS de tu integración y permiten la conexión entre el KCC en el servidor del comercio y los servidores de Certificación de Transbank pero el inconveniente puede ser la errónea carga de las llaves o un inconveniente en el archivo tbk_config.dat.
¿Cómo Solucionarlo? 1. Lo primero a revisar es la configuración de tu archivo tbk_config.dat, corrobora que los primeros parámetros estén como observas en la siguiente imagen:
Si estas en Certificación el código debe ser el indicado en el ejemplo, si estas en Producción debe ser el código contratado con Transbank. Si MEDCOM está en uno puede ser el motivo del problema de comunicación, cámbialo a dos para deshabilitarlo. TBK_KEY_ID debe estar con el valor indicado pues indica el largo de la llave. PARAMVERIFCOM debe tener el valor uno para que la verificación de parámetros sea efectiva. 32 Integrando WebPay Plus Paso a Paso
2. Si está todo bien configurado y el problema persiste el inconveniente es de llaves así que debes volver a subirlas. El alta debe ser realizada en Automático con tu cliente FTP o en ASCII. No debes cambiar los permisos de los archivos. Si aun así el inconveniente persiste comprime las llaves, súbelas comprimidas y descomprímelas dentro del servidor con CPANEL. Atención a subir las llaves correctas acorde el ambiente ya sea este Certificación o Producción. LLAVES EN CERTIFICACION
LLAVES EN PRODUCCION
ERROR 42: Este inconveniente se presenta por problemas de comunicación en alguno de los siguientes parámetros del archivo tbk_config.dat.
¿Cómo Solucionarlo? 1. Corroborar la siguiente información y hacer las modificaciones sugeridas en caso de que se requiera: La IP del HOST puede estar bloqueada o mal escrita. El puerto en WPORT puede estar bloqueados o mal escrito. 2. En caso de que no tenga acceso directo a desbloquear puertos o permitir y denegar accesos a IP solicítelo al soporte de su Hosting o administradores de su sistema de servidores. ERROR 46: Este inconveniente se presenta cuando la información es recibida por la página de cierre pero esta última rechaza los datos entregados por Transbank. ¿Cómo Solucionarlo? 1. Corroborar en el archivo tbk_config.dat que la URL de la página de cierre este bien escrita y sea la correcta en el paramento HTML_TR_NORMAL. 2. Corroborar que las validaciones en su página de cierre están bien escritas y funcionan correctamente.
33 Integrando WebPay Plus Paso a Paso
3. Revisar la validación de CHECK_MAC, específicamente que se esté ejecutando la función EXEC, dentro de esta guía encontrara el archivo pruebaexec.php que le permitirá saber el usuario de su servidor y si la función EXEC está habilitada en su servidor. Subir el archivo pruebaexec.php a public_html en su servidor. Ingrese desde su navegador a la URL http://www.sitiocomercio/pruebaexec.php, esto debería mostrar el siguiente mensaje:
En caso de quedar en blanco o mostrar un ERROR, la función no está habilitada, contacte al soporte del Hosting o los administradores de su servidor para que sea habilitada. Flujo no conecta con CGI Resultado: Muchas veces realizaras transacciones que no presentan un código de ERROR, estas en el log EVN se presentan de esta forma:
Como puedes apreciar el flujo completa el proceso de la CGI PAGO pero no continua con la CGI Resultado, esto sucede porque no puede conectarse a esta CGI ¿Cómo Solucionarlo? 1. Corroborar la siguiente información y hacer las modificaciones sugeridas en caso de que se requiera: La IP del HOST puede estar bloqueada o mal escrita. El puerto en WPORT puede estar bloqueados o mal escrito. 2. En caso de que no tenga acceso directo a desbloquear puertos o permitir y denegar accesos a IP solicítelo al soporte de su Hosting o administradores de su sistema de servidores. 3. La información que Transbank envía a la CGI Resultado llega encriptada, esto hace que por seguridad muchos servidores decidan bloquear su acceso es por ello que debe corroborar que las IP de Transbank estén habilitadas en su servidor o no tengan algún tipo de Bloqueo. IP de Certificación
IP de Producción:
200.10.12.55
200.10.14.162 200.10.14.163 200.10.12.162 200.10.12.163 200.10.14.34 200.10.14.177
34 Integrando WebPay Plus Paso a Paso
Aprendiendo a leer el Log de Bitácora
Como ya sabes Bitácora nos permite ver todos los parámetros que tiene una transacción, a diferencia de EVN este log solo no es de mucha utilidad para ver o diagnosticar ERRORES pero nos permite ver los estados de las respuestas tanto del Banco como del Comercio y sus detalles lo que nos permite identificar, Duplicidades y Reversas, paso a detallar las columnas más importantes que te permitirán entender en qué etapa del flujo esta una transacción en específico:
En el log bitácora están todos los parámetros recibidos de la transacción y es bueno que lo analices pues ante cualquier inconveniente con una transacción en especifica este archivo puede darte claridad sobre la hora que se realizó la transacción, los últimos cuatro dígitos de la tarjeta, el orden de compra y su estado. Respuestas de Transbank: 1. La primera respuesta es la respuesta del comercio, la entrega la primera columna llamada Action entrega dos valores posibles, ACK o ERR, el primer valor se entrega cuando la página de cierre da ACEPTADO y el segundo valor se entrega cuando da RECHAZADO. 2. La segunda respuesta es la respuesta del banco, entregada en el parámetro TBK_RESPUESTA se obtiene cuando el banco da o no el pase a la reserva del dinero de la transacción. En base a esas respuestas podemos analizar y determinar lo siguiente: Si tbk_respuesta = 0 y la respuesta del comercio es ACEPTADO, la transacción es Exitosa. Si tbk_respuesta es distinto de 0 y la respuesta del comercio es ACEPTADO, la transacción es Fracasada. Si tbk_respuesta = 0 y la respuesta del comercio es RECHAZADO, la transacción será Reversada.
35 Integrando WebPay Plus Paso a Paso
Integrando WebPay Plus en WordPress Wordpress es uno de los CMS más utilizados actualmente y siendo realistas es un excelente sistema cuando se trata de comercios si se implementa con el Plugin Woocommerce, hace ya un tiempo Cristian Tala un reconocido programador creo un Plug-in para integrar WebPay Plus, es una opción para integrar de forma más sencilla WebPay Plus que toda la comunidad agradecemos enormemente puesto que luego de él vinieron más interesados en crear P lugins para integrar esta pasarela en Wordpress. Bueno es en base a ese Plugin es que te guiaremos paso a paso en la integración sin programación de WebPay Plus a Wordpress con Woocomerce.
Para el siguiente Paso a Paso asumiremos que tienes los conocimientos básicos sobe la instalación de Wordpress y su manejo en general, en caso de tener dudas o querer interiorizarte más puedes inscribirte en nuestro curso Online de Wordpress en la siguiente URL http://www.tuspagosweb.com/cursos/wordpress, esta URL estará habilitada en breve para la pre-venta. Instalando PlugIn WebPay Plus Primero que nada nos dirigiremos a la sección Plugins en la administración de nuestro blog, ya ahí entraremos a Agregar Nuevo y en el buscador escribirás WebPay, aparecerán unas cuantas opciones de las cuales debes elegir esta:
36 Integrando WebPay Plus Paso a Paso
Una vez instalado el Plugin debe ser activado en la opción Activar Plugin:
Ya activado podrás verlo en la lista de Plugins instalados:
Configuración Paso a Paso en WooCommerce Esta configuración si bien es sencilla suele dar unas vueltas que enredarían hasta al más hábil, para evitarlo te preparamos el siguiente paso a paso que te dará la solución definitiva para integrar en WordPress sin complicaciones y en solo seis pasos: 1. En tu panel de administración dirígete a Paginas – Agregar nueva y crea una página de nombre Resultado de Transacción y como contenido escribe [webpay_thankyou] (incluyendo corchas). Esta página nueva le permitirá al sistema redirigir a Éxito o Fracaso respectivamente. 2. En tu panel de administración dirígete a WooCommerce – Ajustes – Finalizar Compra – Opciones de Pago y selecciona WebPay Plus como medio de pago como se indica en la imagen, no olvides guardar los cambios:
37 Integrando WebPay Plus Paso a Paso
3. Da Clic en Ajustes y modifica el siguiente recuadro como se indica y guarda los cambios:
CGI URL: Escribir URL de la CGI Pago en tu servidor. Check Mac Path: Escribir la ruta completa de la CGI Check Mac en tu servidor, esta comúnmente es /home/usuario/public_html/cgi-bin/, donde usuario es el usuario de tu servidor, puedes averiguar el nombre de tu usuario con pruebaexec.php, archivo adjunto a esta guía. Return Page: Debes seleccionar la página anteriormente creada como la página a la que retornaran todas las transacciones para derivar a Éxito o Fracaso respectivamente. 4. Abre el archivo de configuración del KCC y cambia la URL de la página de cierre indicada en el parámetro HTML_TR_NORMAL como se indica a continuación:
38 Integrando WebPay Plus Paso a Paso
Detalle de la URL de la página de cierre en Wordpress. 1 2 3 http://curso.wordpress/cursowp/?wc-api=WC_Gateway_Webpayplus&xt_compra 1. URL del Comercio. 2. Directorio de instalación de WordPress. 3. Archivo de la página de cierre.
5. En tu Panel de administración de WordPress dirígete a Productos – Añadir Producto y crea un nuevo producto, no olvides asignar un valor al producto. 6. Ve a la sección Productos en el Home del sitio del comercio y realiza tu primer pago de forma exitosa.
39 Integrando WebPay Plus Paso a Paso
Como superar exitosamente la Certificación de Transbank Requisitos para Certificar Como hemos mencionado antes, Transbank tiene unos requisitos para poder Certificar el sitio de un comercio, estos requisitos los podemos desglosar de la siguiente forma: Requisitos Básicos: Se debe cumplir a cabalidad el despliegue correcto de la información que debe ver el cliente desde que inicia un pago hasta que se entrega el resultado de Éxito o Fracaso. Pruebas de Validaciones: Se debe corroborar el funcionamiento de las tres validaciones obligatorias de la página de cierre y la validación opcional de la página de éxito. Pruebas de Transacciones: Se debe corroborar que las transacciones pagadas en Debito y Crédito lleguen a éxito y fracaso según corresponda de forma correcta.
Requisitos Básicos: Dentro de los requisitos aparentemente más simples son los que constituyen el Anexo C, este anexo se encuentra en el manual de integración que proporciona Transbank y hace referencia a cómo debe estar constituido un pago, su página de éxito y su página de fracaso, a continuación detallamos lo que Transbank exige para certificar un comercio en lo que a Anexo C se refiere:
Antes de pagar: Cuando un cliente selecciona un producto y lo lleva al carro para poder pagarlo se muestra un detalle que puede ser similar a este: DETALLE DE LA COMPRA CANTIDAD DETALLE 2 Yo te traigo nena 1 Para ti mi amor
NOMBRE DEL PRODUCTO PREC. UNITARIO TOTAL Caramelo de menta $1.000 $2.000 Que solo son $500 $500 IVA $399 Subtotal $2.101 Total $2.500 Debes considerar que la misma información que muestras como detalle de la compra antes de pagar, debe ser la misma en la página de éxito resultante.
40 Integrando WebPay Plus Paso a Paso
Página de Éxito: La página de Éxito debe desplegar la siguiente información una vez termine exitosamente la transacción: 1. Información de la transacción: esta debe ser ordenada y detallada para evitar que sea devuelta por Transbank, asegúrate que no falte ningún parámetro: INFORMACION DE LA TRANSACCION Tipo de Transacción
Venta
Numero de OC
19
Fecha
Febrero 9, 2015
Nombre del Comercio Curso Wordpress URL Comercio
http://curso.wordpress
Cliente
Nataniel Romanov
Código de Autorización 185216 Final de Tarjeta
6623
Tipo de pago
Crédito
Tipo de Cuota
Sin Cuotas
Número de Cuotas
00
2. Detalle de la compra: Este es el detalle de lo comprado, recuerda que debe ser exactamente igual que el detalle antes de pagar. NOMBRE DEL PRODUCTO Caramelo de menta Que solo son IVA Subtotal Total
DETALLE DE LA COMPRA CANTIDAD DETALLE 2 Yo te traigo nena 1 Para ti mi amor
PREC. UNITARIO $1.000 $500
TOTAL $2.000 $500 $399 $2.101 $2.500
3. Devolución y Reembolso: Debe existir un link hacia las políticas de devolución y reembolso, en caso de no existir debe incluir un mensaje como este: No se realizan devoluciones, ni reembolsos. En caso de tener alguna duda favor de contactar a (persona XXXX) o (Departamento XXXX) al teléfono (XXXX) o al mail (
[email protected])".
4. Despachos: En caso de envíos debe incluir un link hacia las políticas y términos de envió, en caso de no existir puede incluir un texto como el siguiente:
41 Integrando WebPay Plus Paso a Paso
Recuerda que tus productos serán enviados por correo a tu domicilio si es que seleccionaste este medio de despacho y deberían estar entre 2 y 3 días hábiles a tu hogar Página de Fracaso: La página de fracaso debe contener los posibles motivos de la falla en la transacción y el número de la orden de compra fallida, estos motivos son preestablecidos por Transbank de la siguiente manera:
Transacción Fracasada OC Nº 21 Las posibles causas de este rechazo son:
Error en el ingreso de los datos de su tarjeta de crédito o débito (fecha y/o código de seguridad). Su tarjeta de crédito o débito no cuenta con el cupo necesario para cancelar la compra. Tarjeta aún no habilitada en el sistema financiero.
Pruebas de Validaciones: Al momento de realizar las revisiones más exhaustivas el equipo de soporte analiza una y cada una de las validaciones creadas y las pone a prueba para corroborar que funcionen de forma correcta, sigue las indicaciones y podrás hacer una revisión de las validaciones como cualquier analista de la mesa de soporte antes de enviar a certificar el sitio del comercio: Validación de Monto Adulterado En esta validación se intenta pagar una OC con un monto distinto al que se ha gestionado desde un principio, sigue el paso a paso: 1. Abre tu navegador Firefox y presiona en tu teclado la combinación Ctrl + Shif + J, aparecerá la consola del navegador, haz clic derecho y selecciona la opción que indica la imagen:
42 Integrando WebPay Plus Paso a Paso
Registrar cuerpos de petición y respuesta nos permitirá mantener los datos que se envían en el POST de una transacción. 2. Una vez realizado esto entra al sitio del comercio y genera una transacción como si fueras a comprar un producto, cuando llegues donde tienes que poner los datos de la tarjeta no hagas nada más y observa la Consola del navegador y en la búsqueda de la parte superior derecha escribe PAGO, verás algo así:
3. Podrás notar que una de las líneas es POST, haz clic en esa línea y te mostrara el inspector de solicitud de red y en la sección Datos de Formulario enviados podrás ver los parámetros enviados por POST. A esta práctica se le llama Capturar el POST.
43 Integrando WebPay Plus Paso a Paso
4. Ya con el POST capturado abre el archivo prueba.html incluido en esta guía y carga los datos de la transacción tal cual los datos capturados, exceptuando el Monto, modifícalo por un valor inferior como en el siguiente ejemplo:
5. Ya modificado debes realizar el pago desde este formulario con los datos para que sea totalmente exitosa como se muestra a continuación:
6. Una vez realizado el pago queda expuesto lo que quisimos probar, en esta prueba adulteramos el monto de una transacción en proceso, la respuesta esperada es que nos envíe a la página de fracaso indicando que la validación de Monto Adulterado está funcionando correctamente, en caso de haber llegado a éxito, hora de que revises el código en esa validación para detectar el inconveniente.
44 Integrando WebPay Plus Paso a Paso
Validación de Duplicidad de Orden En esta prueba se intenta pagar una OC que ya se encuentra previamente pagada, sigue el paso a paso para entender su lógica: 1. Mantén abierta la Consola del navegador y habilitada su función de Registrar cuerpos de petición y respuesta.
2. Realiza un proceso de pago de forma normal en el sitio del comercio, continua con el flujo hasta que te lleve a Éxito capturando en el proceso el POST de la transacción.
3. Carga los datos del POST en el archivo prueba.html que se encuentra con esta guía como se muestra a continuación sin modificar ningún parámetro:
4. Una vez realizados los cambios realiza el pago, la respuesta esperada es que seas redirigido a fracaso puesto que intentas pagar una OC que ya se encuentra pagada y la validación de Duplicidad de OC la rechaza correctamente, en caso de que hayas llegado a
45 Integrando WebPay Plus Paso a Paso
Éxito es momento de que revises esa validación para detectar y solucionar el inconveniente que presenta. Validación de Check Mac Las pruebas de Validación para la Check_Mac son varias pequeñas pruebas con un objetivo claro, vulnerar la seguridad de nuestra integración, atención al Paso a Paso, las pruebas deben hacerse en el mismo orden: Inyección de datos con respuesta -1: En esta guía encontrara Pruebas_Mac.html como archivo adjunto, este archivo nos permite realizar las pruebas de Chequeo en el Mac, abra el documento en su navegador para realizar la primera prueba y complete sus casillas como indica la imagen:
46 Integrando WebPay Plus Paso a Paso
Los parámetros modificados son:
URL donde se inyectaran los datos: Aquí está la URL de la página de cierre del comercio. Respuesta de TBK: Indica el valor de respuesta, para esta prueba se fuerza el -1. Orden de Compra, ID de Sesión y Monto son modificados por una X, puede ser cualquier letra.
El objetivo de esta prueba es forzar una respuesta -1 con valores alfanuméricos, esta información es inyectada a la página de cierre para entregar el siguiente resultado:
Solo para esta prueba se espera que la respuesta sea RECHAZADO al igual que ACEPTADO, dependerá de la lógica usada en la programación de la página de cierre y en ambos casos para soporte Transbank está correcto.
Inyección con datos alfanuméricos: Esta validación busca forzar la inyección de datos falsos hacia la página de cierre intentando obtener un ACEPTADO. Reemplazar la información como se indica:
47 Integrando WebPay Plus Paso a Paso
Los parámetros modificados son:
URL donde se inyectaran los datos: Aquí está la URL de la página de cierre del comercio. Respuesta de TBK: Indica el valor de respuesta, para esta prueba se fuerza el 0 para que entregue el ACEPTADO. Orden de Compra, ID de Sesión son modificados por una 1z, puede ser cualquier letra y Monto se mantiene con un valor numérico.
El objetivo de esta prueba es forzar una respuesta 0 con valores alfanuméricos y numéricos, esta información es inyectada a la página de cierre para entregar un ACEPTADO forzado. La respuesta esperada para esta prueba es un RECHAZADO. Inyección a Cierre con datos de transacción real: Esta prueba usa datos de una transacción real para lo cual debes capturar el POST de una transacción real sin pagar, al igual que en la validación de Monto adulterado:
48 Integrando WebPay Plus Paso a Paso
Luego carga los datos en el formulario como muestra el siguiente ejemplo:
Una vez realizada la carga de datos haz el envío, la respuesta esperada para esta prueba es un RECHAZADO. Inyección de datos a la página de éxito: En esta prueba ocuparas los datos del mismo POST anterior, lo único que cambiara es que en la URL de envío estará la URL de éxito como muestra el siguiente ejemplo:
49 Integrando WebPay Plus Paso a Paso
La respuesta esperada para esta prueba es que redirija a la página de fracaso o en su defecto al Home del sitio, dependiendo del ánimo de la mesa de soporte puede que hasta no tengan inconvenientes si se muestra un ERROR. Esta prueba debes repetirla con los datos de una transacción fracasada.
Inyección a Cierre con datos de una transacción pagada: Esta validación busca inyectar datos directamente a la página de cierre de una transacción previamente pagada. Captura el POST de una transacción que haya sido pagada y cárgalo en el formulario como indica el ejemplo:
La respuesta esperada para esta prueba es RECHAZADO.
50 Integrando WebPay Plus Paso a Paso
Pruebas de Transacciones Esta Última revisión es la más sencilla solo se trata de realizar transacciones y que funcionen como deben, si usas la divisa de fracaso, debe fracasar y si usas la divisa de éxito debe ser exitosa, en base a eso, realiza las siguientes pruebas:
Transacción exitosa Debito Transacción Fracasada Debito Transacción Exitosa Crédito Sin Cuotas Transacción Exitosa Crédito 3 Cuotas Transacción Exitosa Crédito 40 Cuotas Transacción Fracasada Crédito
Si las pruebas realizadas fueron exitosas, Felicitaciones haz terminado con las revisiones que Soporte Transbank hace a los comercios para enviar a Certificar.
Puntos a considerar: 1. La certificación que Transbank realiza no es rápida, toma mínimo una semana y como máximo meses. 2. Si envías un Email indicando que Soporte Transbank puede hacer la revisión a la integración, tienes que estar muy seguro de lo que dices y haber hecho todas las pruebas antes puesto que si encuentran un solo detalle te escribirán o llamaran para que lo soluciones lo que retrasa el proceso. 3. El Equipo de Soporte WebPay es un personal altamente competente que pueden guiarte ante algunas dudas pero se encuentran restringidos por políticas de seguridad de Transbank a darte más información sobre configuración de servidores, no insistas. 4. Si bien Soporte WebPay tiene un tiempo máximo de respuesta de 24 hrs por Email, este tiempo puede variar acorde a la carga de trabajo, desde Septiembre del 2014 que no recuperan de forma constante su ritmo de trabajo así que no te sorprendas que se demoren más en responder, solo insiste telefónicamente. 5. Tanto Anexo C como Validaciones pueden ir variando con el tiempo acorde el estado de ánimo de Transbank.
51 Integrando WebPay Plus Paso a Paso
Has logrado hacer la integración de principio a fin, haz corroborado que las validaciones estén funcionando en base a las mismas pruebas que hace Transbank para enviar a Certificar, es el momento ideal para enviar a certificar el sitio del comercio, paso a paso:
1. 2. 3. 4.
Completa la Ficha de Certificación que está dentro del KCC de Transbank Envíala a
[email protected] solicitando la revisión de su integración Ellos tomaran contacto contigo cuando hayan realizado las pruebas. Si han pasado 24 Hrs y no sabes nada de Soporte, llámalos al 800 44 11 44 y consulta por tu solicitud. 5. Una vez revisado el sitio si encuentran un reparo te lo harán saber, en caso de que todo esté funcionando perfectamente enviaran el sitio al departamento de Certificación y te notificaran de ello (aunque a veces lo olvidan). 6. Certificación al tomar el caso se pondrá en contacto contigo para indicarte el paso a producción que no es nada más que generar las llaves productivas con un archivo que ellos te piden descargar y cambiar los parámetros del archivo de configuración por los datos productivos, nivel de complejidad 0 después de haber trabajado con esta guía. 7. Haciendo todo bien el comercio ya estará productivo. Felicitaciones!!!
Sé que aparenta ser rápido el proceso, pero repito que depende la carga de trabajo de la mesa de soporte, esto puede tomar un buen tiempo.
52 Integrando WebPay Plus Paso a Paso
Otras Opciones No porque esta guía este enfocada a la integración de WebPay Plus quiere decir que no podemos explorar o dar a conocer otras alternativas, no estamos ciegos y entendemos que WebPay Plus es un sistema muy antiguo con muchos problemas pero un mal necesario para los comercios en chile, pero de aquí a unos pocos años han llegado a chile plataformas que nos dan una esperanza de nuevas y más seguras tecnologías para realizar Pagos y cobros en línea, paso a detallas las dos que más nos llaman la atención como negocio.
Esta plataforma ha ido abarcando terreno en Latinoamérica en los últimos años pues tiene varias soluciones de botones de pago y Plugins en distintos CMS como:
Como si fuera poco presenta soluciones Pre integradas para llegar y vender en las siguientes plataformas:
Además para desarrolladores permite la integración del sistema de pagos a través de API y WEBCHECKOUT según sean nuestras necesidades.
53 Integrando WebPay Plus Paso a Paso
Vamos al grano, ¿cuánto gano y cuánto gana PayU? PayU es bien sincero al momento de hablar de dineros, detalla cada uno de los cobros que se realizan por transacción, o así lo quieren hacer ver con su tarifa Básica:
COBROS POR TRANSACCION EXITOSA CREDITO DEBITO Comisión del 4.99% + $151 CLP Comisión del 4.99% + $151 CLP VALORES INFERIORES A $10.000 CLP Comisión del 8% + $50 CLP, solo aplicable para tarjetas de Crédito Como dato que pocos manejan, este sistema de pagos tiene integrado WebPay Plus así que cuando se realizan los cobros o pagos, estos son realizados vía el mismo antiguo sistema de pagos online.
54 Integrando WebPay Plus Paso a Paso
A mi gusto personal, el favorito en nuestro equipo de trabajo , una… no sé si innovación pero algo que estaba haciendo falta hace ya bastante tiempo en Chile, este sistema es parecido al anterior, detallemos: Nos da la opción de trabajar con botones de pago y Plugins para los siguientes CMS:
Además de Drupal como plataforma de desarrollo web:
Además si somos desarrolladores podemos elegir de una rica documentación creada por ellos para dejar volar nuestra imaginación integrando esta pasarela con código en base a:
55 Integrando WebPay Plus Paso a Paso
Khipu es un sistema independiente, si bien me parece haber visto algo de Khipu con una integración KCC, para esta versión no es el caso, Khipu trabaja de forma total y completamente independiente lo que permite que en esta plataforma exista un modo desarrollador que nos permite hacer transacciones tipo Prueba, es como el ambiente de certificación de Transbank, pero bueno. Hora de hablar de lo bueno, el precio por transacción: COBROS POR TRANSACCION EXITOSA CREDITO Comisión del 1% con tope de $300 CLP
DEBITO Comisión del 1% con tope de $300 CLP
Tal cual estás leyendo, cobra una comisión de un 1% y si ese 1% supera los $300 CLP no se cobra más, entonces te pueden pagar un millón y la comisión será solo $300C CLP, una maravilla no?. Como detalle anexo, Khipu no tiene una cuenta interna en la cual este reservado tu dinero para que luego lo envíes a tu cuenta, Khipu hace recaudaciones diarias, esto quiere decir que lo que te pagaron hoy, estará en tu cuenta bancaria mañana mismo. El único gran inconveniente y diferencia entre Khipu y el resto de las pasarelas de pago online es que para realizar un pago, el cliente debe descargar e instalar una plataforma de pagos de khipu y si bien el proceso se lleva de forma casi automática cuanto intentas pagar por primera vez, a algunos les puede sorprender, pero no puedo decir que sea un motivo de pérdida de ventas o alejamiento de los clientes. Como con nosotros los animo a probar Khipu en sus proyectos.
56 Integrando WebPay Plus Paso a Paso
57 Integrando WebPay Plus Paso a Paso
58 Integrando WebPay Plus Paso a Paso