# Bienvenido

**Este plugin dejará de funcionar el 31 de Diciembre del 2017**. Leer más : https://www.cristiantala.cl/el-fin-una-era-adios-kcc-de-transbank/

Bienvenidos al wiki de este plugin. Espero que me ayuden a hacer que este plugin sea el mejor que se pueda encontrar como gateway de pago para WooCommerce con Webpay.

Esta versión es totalmente nueva. Se modificó todo el core de Woocommerce, por lo que se tuvo que modificar todo el plugin partiendo desde 0... ( Uff ! ).

Aún se están haciendo cambios debido a que los chicos de soporte de webpay no se ponen de acuerdo entre ellos y han hecho cambios en la certificación que no aparecen en el manual.

Siempre puedes encontrar la última versión estable por el buscador de plugins de wordpress.
* http://wordpress.org/plugins/webpay-woocommerce-plugin/

##Problemas Conocidos.
* Ninguno por el momento ( desde versión v3.5.7 )

##Estado del Arte

* Este plugin funciona con las últimas versiones de woocommerce. (Version 2.1.*)
* Este plugin ya no funciona con las versiones anteriores de Woocommerce.

## Descarga

Si quieres editarlo recomiendo descargarlo con git:

```
$ git clone https://ctala@bitbucket.org/ctala/woocommerce-webpay.git
```


Siempre se puede obtener y descargar la última versión de esta página o del siguiente link:

```
https://bitbucket.org/ctala/woocommerce-webpay/get/master.zip
```

Todos los cambios y mejoras se hacen en la rama "devel" hasta ser estables.
 
## DEBUG MODE
Si tienes habilitado en tu instalación de Wordpress el modo debug, el plugin creará mensaje dependiendo de donde se encuentre en el código de manera bien detallada.
Si habilitas el login en wordpress puedes ver todo lo que está ocurriendo dentro del archivo *debug.log* dentro de la carpeta *wp-content*.

Para habilitarlo debes agregar las siguientes variables en el archivo *wp-config.php*

```
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
```

###Ejemplo del debug.log

```
#!bash

ubuntu@ip-10-147-227-221:/var/www/wp-content$ tail -f debug.log -n 1000 | grep WEBPAY
[25-Jun-2013 16:24:20 UTC] [WEBPAY - FORM]      -> Entrando a la verificación de carpetas
[25-Jun-2013 16:24:20 UTC] [WEBPAY - FORM]      -> Se utilizará /var/www/wp-content/plugins/woocommerce-webpay-2.0/comun/dato20130625042420.log para guardar los datos
[25-Jun-2013 16:24:20 UTC] [WEBPAY - FORM]      -> Preparando para escribir 1000;35 en /var/www/wp-content/plugins/woocommerce-webpay-2.0/comun/dato20130625042420.log
[25-Jun-2013 16:24:20 UTC] [WEBPAY - FORM]      -> ARCHIVO CERRADO
[25-Jun-2013 16:28:26 UTC] [WEBPAY - FORM]      -> Entrando a la verificación de carpetas
[25-Jun-2013 16:28:26 UTC] [WEBPAY - FORM]      -> Se utilizará /var/www/wp-content/plugins/woocommerce-webpay-2.0/comun/dato20130625042826.log para guardar los datos
[25-Jun-2013 16:28:26 UTC] [WEBPAY - FORM]      -> Preparando para escribir 1000;36 en /var/www/wp-content/plugins/woocommerce-webpay-2.0/comun/dato20130625042826.log
[25-Jun-2013 16:28:26 UTC] [WEBPAY - FORM]      -> ARCHIVO CERRADO
[25-Jun-2013 16:35:25 UTC] [WEBPAY - PROCESS - PAYMENT] -> Iniciando el proceso de pago para 37
[25-Jun-2013 16:35:25 UTC] [WEBPAY - FORM]      -> Entrando a la verificación de carpetas
[25-Jun-2013 16:35:25 UTC] [WEBPAY - FORM]      -> Se utilizará /var/www/wp-content/plugins/woocommerce-webpay-2.0/comun/dato20130625043525.log para guardar los datos
[25-Jun-2013 16:35:25 UTC] [WEBPAY - FORM]      -> Preparando para escribir 1000;37 en /var/www/wp-content/plugins/woocommerce-webpay-2.0/comun/dato20130625043525.log

```

Puedes además revisar el código de manera directa en esta página.


# Instalación. #

Una ves descargado el plugin hay dos cosas que tienes que tener en consideración.


1. El plugin creará una carpeta dentro del directorio de uploads llamada webpay-data que contendrá la carpeta  **comun**. Si esta carpeta no se ha creado por favor crearla con permisos de lectura y escritura.

2. Es my importante que se entiendan los conceptos de escritura y lectura de archivos. El script de transbank es ejecutado por el usuario de apache. Si este usuario no tiene permiso de acceso (Lectura y escritura ) a los archivos creados en la carpeta común, estos tendrán un problema de validación en las últimas etapas.   

3. Debes de tener configurado los archivos CGI de WebPay. El plugin te preguntará por esta información dentro de la configuración. ( Woocommerce -> Settings -> Paymente Gateways -> Webpay Gateway).

4. La página usada por HTML_TR_NORMAL = http://DIRECCIONDETUPAGINA/?wc-api=WC_Gateway_Webpayplus&xt_compra

5. Es necesario crear una página en blanco con el shortcode [webpay_thankyou] al cual será redireccionada la transacción. 

6. Es necesario modificar la configuración bajo WooCommerce -> Ajustes -> Finalizar Compra -> WebPayPlus.

7. Para que el plugin funcione los valores de la dirección del cgi, check path y return page deben de ser correctas. Los otros valores son estéticos y pedidos por parte de Transbank.

8. Es posible que debas agregar el guion " - " a la WhiteList de transbank para que no tire error de conexión.

# Ejemplo **tbk_config.dat**. #

## Certificación ##

OJO,PESTAÑA y CEJA. La configuración siguiente es para un ambiente de certificación.

```
#!bash

IDCOMERCIO = TUIDCOMERCIO
MEDCOM = 2
TBK_KEY_ID = 101
PARAMVERIFCOM = 1
URLCGICOM = http://DIRECCIONDETUPAGINA/cgi-bin/tbk_bp_resultado.cgi
SERVERCOM = TUIP
PORTCOM = 80
WHITELISTCOM = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789./:=&?_-
HOST = TUIP
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://DIRECCIONDETUPAGINA/?wc-api=WC_Gateway_Webpayplus&xt_compra

```

## Producción ##


```
#!bash

IDCOMERCIO = TUIDCOMERCIO
MEDCOM = 1
TBK_KEY_ID = 101
PARAMVERIFCOM = 1
URLCGICOM = http://TUWEB/cgi-bin/tbk_bp_resultado.cgi
SERVERCOM = TUIP
PORTCOM = 80
WHITELISTCOM = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789./:=&?_-
HOST = TUIP
WPORT = 80
URLCGITRA = /cgi-bin/bp_revision.cgi
URLCGIMEDTRA = /cgi-bin/bp_validacion.cgi
SERVERTRA = https://webpay.transbank.cl
PORTTRA = 443
PREFIJO_CONF_TR = HTML_
HTML_TR_NORMAL = http://TUWEB/?wc-api=WC_Gateway_Webpayplus&xt_compra

```
 

#CHANGELOG
* V3.5.9.1 : Se arregla problema con las fechas por nueva solicitud de transbank.
* V3.5.7.1 : Se arregla bug con el logo.
* V3.5.7.0 : Se agregan más validaciones al monto de la transacción.
* V3.5.4.1 : Se cambia la palabra Fracasada por Rechazada en la página de fracaso.
* V3.5.4.0 : Se cambia el formato de versiones. Se arregla pantalla blanca al actualizar woocommerce.
* V3.0.5 : Se arregla problema con los permalinks.
* V3.0.4 : Se agrega la palabra débito al mensaje de error. Se agrega el nombre del cliente a la tabla de información extra de la transacción.
* V3.0.3 : Se elimina mensaje de contacto al banco en caso de error, Se elimina la información extra en caso de failure.
* V3.0.2 : Se agregan las políticas de devoluciones, Se elimina frase repetida en fracaso
* V3.0.1 : Se agrega al mail de administrador y cliente el método de pago cuando es WebPayPlus.
* V3.0.0 : Remake del plugin para compatibilidad con WooCommerce 2.1.*
* V2.4.1 : Arreglada la redirección con algunas versiones de php, en especial para hostgator.
* V2.4 : Versión Certificada. Ahora no se deberían requerir modificaciones para pasar las certificaciones de transbank.
* V2.3 : Se agregan los templates para los pagos con webpay.
* V2.2 : Se establece el short-code [webpay-thankyou] para realizar las validaciones necesarias por parte de transbank. Es necesario cambiar en la página de recepción del pedido por [woocommerce-thankyou]. 
* V2.1.9 : Se usa el estandar definido por woocommerce para los códigos de estado.
* V2.1.8 : Arreglada posible duplicidad cuando la orden pasa a on-hold.
* V2.1.7 : 
* V2.1.6 : Modificado para que funcionara con versiones más antiguas de php.
* V2.1.5 : Se cambian los permisos por defecto de la carpeta común. Con esto se deben asegurar que el usuario que ejecuta los CGI sea el mismo que crea los archivos.
* V2.1.2 : Se externaliza la carpeta común al directorio de uploads. De esta manera no se borra la información al actualizar el plugin.
* V2.1 : Se agregan las variables de la tienda en la configuración del plugin.

Y eso debería ser todo por ahora.


Have fun!

# CopyRight #

  Copyright 2011-2014 Cristian Tala Sánchez
  Si estás leyendo esta parte existe la posibilidad de que quieras modificar
  incluso vender este codigo. Solo quiero aclarar que estás en todo el derecho
  de hacerlo, sin embargo, no incluir el autor original del codigo es una 
  infracción a la licencia GPLv3 y se pueden realizar acciones legales para 
  quienes recurran en este acto.
  Por mi parte llevo años trabajando en este codigo no para hacerme millonario,
  si no, para ayudar a la comunidad y un poco de reconocimiento no le hace mal a 
  nadie. En resumen no seas cagado y copies, pegues un codigo que no te pertenece
  sin dar las referencias necesarias.

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License or any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.