Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2012, 13:37
Avatar de rebocano
rebocano
 
Fecha de Ingreso: enero-2007
Ubicación: Me encuentro ubicado en C
Mensajes: 37
Antigüedad: 17 años, 3 meses
Puntos: 2
Exclamación Quien me puede ayudar a integrar Webpay (Transbank) con PHP de Chile !

Hola amigos

Estoy haciendo la integración del KCC de WebPay bajo un servidor Linux. Y la verdad es que el "Manual de Integración" es una basura. Alguien me puede ayudar a su configuración.

Me encuentro en la etapa de Integración. Saqué un ejemplo del manual para el formulario que envía los valores, Orden de Compra y ID de la sesión.

"Configuré los CGI-BIN correctamente" (Lo pongo en cremillas por que creo que está bien configurada, el soporte técnico no sirve para nada), pero no he podido configurar la Página de las validaciones obligatorias (Ni siquiera tengo idea de qué se trata).

Para la página cierre.php tengo lo siguiente:

Código:
<?php 
//include("conexion.php");
$trs_transaccion = $_POST['TBK_TIPO_TRANSACCION'];
$trs_respuesta = $_POST['TBK_RESPUESTA'];
$trs_orden_compra = $_POST['TBK_ORDEN_COMPRA'];
$trs_id_session = $_POST['TBK_ID_SESION'];
$trs_cod_autorizacion = $_POST['TBK_CODIGO_AUTORIZACION'];
$trs_monto = substr($_POST['TBK_MONTO'],0,-2).".00";
$trs_nro_final_tarjeta = $_POST['TBK_FINAL_NUMERO_TARJETA'];
$trs_fecha_expiracion = $_POST['TBK_FECHA_EXPIRACION'];
$trs_fecha_contable = $_POST['TBK_FECHA_CONTABLE'];
$trs_fecha_transaccion = $_POST['TBK_FECHA_TRANSACCION'];
$trs_hora_transaccion = $_POST['TBK_HORA_TRANSACCION'];
$trs_id_transaccion = $_POST['TBK_ID_TRANSACCION'];
$trs_tipo_pago = $_POST['TBK_TIPO_PAGO'];
$trs_nro_cuotas = $_POST['TBK_NUMERO_CUOTAS'];
$trs_mac = $_POST['TBK_MAC'];
//$trs_monto_cuota = $_POST['TBK_MONTO_CUOTA'];
$trs_tasa_interes_max = $_POST['TBK_TASA_INTERES_MAX'];


/* Graba en base de datos */
 /* $sql="insert into webpay (Tbk_tipo_transaccion, Tbk_respuesta, Tbk_orden_compra, Tbk_id_sesion, Tbk_codigo_autorizacion, Tbk_monto,";
			$sql.=" Tbk_Final_numero_Tarjeta, Tbk_fecha_expiracion, Tbk_fecha_contable, Tbk_fecha_transaccion, Tbk_hora_transaccion,";
			$sql.=" Tbk_id_transaccion, Tbk_tipo_pago, Tbk_numero_cuotas, Tbk_mac,  Tbk_tasa_interes_max) Values";
			$sql.=" ('".$trs_transaccion."','".$trs_respuesta."','".$trs_orden_compra."','".$trs_id_session."','".$trs_cod_autorizacion."','".$trs_monto."',";
			$sql.=" '".$trs_nro_final_tarjeta."','".$trs_fecha_expiracion."','".$trs_fecha_contable."','".$trs_fecha_transaccion."',";
			$sql.=" '".$trs_hora_transaccion."','".$trs_id_transaccion."','".$trs_tipo_pago."','".$trs_nro_cuotas."','".$trs_mac."',";
			$sql.=" '".$trs_tasa_interes_max."')";
            $RS_Ingresa = mysql_query($sql, $conexion) or die(mysql_error());  
*/


/* finde grabar en base */


/**** inicio de pagina de cierre xt_compra.php***/ 

 if($trs_respuesta==0)
{ 
//**** validacion de mac ****/***cambiar aquí por su dirección en el servidor
  
    $temporal = "/cgi-bin/log/temporal.txt";
    if($fp = fopen($temporal, "w"))
     {
      fwrite($fp, $trs_cod_autorizacion);
      fclose($fp);
      } 
    /*1.- Abrir archivo y guardar variables POST recibidas */ 
     
    $filename = "/cgi-bin/log/log".$trs_id_transaccion.".txt";
    $fp=fopen($filename,"w");
    reset($_POST);
    while (list($key,$val) = each($_POST))
      {
       fwrite($fp,"$key=$val&");
      }
	 fclose($fp); 
     /* 2.- Invocar a tbk_check_mac (Que en realidad no es una cgi) usando como parámetro el archivo generado */
    $cmdline = "/cgi-bin/tbk_check_mac.cgi $filename";
    exec($cmdline,$result,$retint); 
    /*Si $result[0]="CORRECTO" , entonces mac válido*/
    if($result[0]="CORRECTO")
     { 
	  echo "ACEPTADO";
      /**** Comprobacion de Orden de Compra ****/
      //$query_RS_Busca = "select * from pagos where TBK_ORDEN_COMPRA ='".$trs_orden_compra."' order by TBK_ORDEN_COMPRA DESC Limit 1";
      //$RS_Busca = mysql_query($query_RS_Busca, $conexion) or die(mysql_error());
      //$row_RS_Busca = mysql_fetch_assoc($RS_Busca);
      //$totalRows_RS_Busca = mysql_num_rows($RS_Busca);
      //$theValue = ($totalRows_RS_Busca>1) ? "RECHAZADO" : "ACEPTADO";
        
	  /*** fin Comprobacion de Orden de Compra ****/
       } 
     else
     { 
      echo "RECHAZADO";
     } 
 /****fin Validacion MAC ****/
 }
else
{ 
  echo "ACEPTADO";
 }
 
/**** Fin de pagina de Cierre ****/

 ?>
(Comenté todo lo que tiene que ver con consultas a SQL, ya que no es mi prioridad en este momento, el archivo lo saqué de un script de Webpay para Magento).

Al momento de enviar el formulario me arroja error. Esto tengo configurado en el TBK_CONFIG.DAT
Código:
MEDCOM         = 2
PARAMVERIFCOM  = 1
URLCGICOM      = http://congresoalopchile2012.cl/cgi-bin/tbk_bp_resultado.cgi
SERVERCOM      = 173.193.136.32
PORTCOM        = 80
WHITELISTCOM   = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789./:=&?_
HOST           = 173.193.136.32
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://congresoalopchile2012.cl/pagos.php

Por favor ! quién me puede orientar un poco !!!