Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/12/2008, 13:50
Juliorush
 
Fecha de Ingreso: diciembre-2008
Mensajes: 9
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Respuesta: Problema enviar/recibir formulario Banorte

Y este es la clase que envía los datos al banco y los debería regresar:

Código:
<?php
    require_once("../common/common.php");
    require_once("../common/dbinfo.php");
    require_once("../common/class.session_timer.php");
	require_once("../common/class.user.php");
    require_once("../common/class.pedido.php");
    require_once("http.php");
    
    @session_name('portal');
    session_start();
    $timer = new SessionManger();
    $timer->update_session($_SESSION);
    
    function elimina_acentos($cadena){
        $tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
        $replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
        return(strtr($cadena,$tofind,$replac));
    }
    
    function update_bank_unique_code($dbh,$id_pedido,$unique_code){
        $SQL = "UPDATE pedidos SET bank_unique_code='".$unique_code."' WHERE id_pedido=".intval($id_pedido);
        mysql_query($SQL,$dbh);
    }
    
    $unique_code = md5(uniqid(rand(), true));
    update_bank_unique_code($dbh,$_POST["OrderId"],$unique_code);
    
    $user = new usuarios();
    $pedido = new pedido();
    $billing_info = $user->get_billing_address($dbh,$_SESSION["job_id"]);
    $shipping_info = $user->get_shipping_address($dbh,$_SESSION["job_id"]);
    $userinfo = $user->get_user_info($dbh,$_SESSION["email"]);
    
	set_time_limit();
	$http=new http_class;
	$http->timeout=25;
	$http->data_timeout=25;
	$http->debug=25;
	$http->html_debug=1;

	$url="https://eps.banorte.com/recibo";
	$error=$http->GetRequestArguments($url,$arguments);
    $arguments["RequestMethod"]="POST";
	$arguments["Protocol"]="https";
	$arguments["PostValues"]=array(
        "Name"=>"USUARIOBANCO",
        "Password"=>"CONTRASEÑAUSUARIO",
        "ClientId"=>"NUMTIENDA",
        "Mode"=>"P",
        "TransType"=>"Auth",
        "BillToFirstName"=>elimina_acentos(substr($userinfo->nombre,0,30)),
        "BillToLastName"=>elimina_acentos(substr($userinfo->ap_paterno . " " . $userinfo->ap_materno,0,30)),
        "BillToCompany"=>elimina_acentos(substr($billing_info->razon_social,0,40)),
        "BillToTelVoice"=>elimina_acentos(substr($userinfo->lada.$userinfo->telefono,0,30)),
        "BillToStreet1"=>elimina_acentos(substr($billing_info->calle." ".$billing_info->n_ext." ".$billing_info->n_int,0,60)),
        "BillToStreet2"=>elimina_acentos(substr($billing_info->colona,0,60)),
        "BillToStreet3"=>"",
        "BillToCity"=>elimina_acentos(substr($billing_info->municipio,0,60)),
        "BillToState"=>elimina_acentos(substr($billing_info->estado,0,60)),
        "BillToCountry"=>"484",
        "BillToPostalCode"=>$billing_info->cp,
        "UserId"=>$_SESSION["id_user"],
        "BirthDate"=>date("d",$userinfo->birthday)."/".date("m",$userinfo->birthday)."/".date("Y",$userinfo->birthday),
        "Email"=>substr($userinfo->email,0,64),
        "FedTaxId"=>elimina_acentos(substr($billing_info->rfc,0,60)),
        "OrderId"=>str_pad($_POST["OrderId"],4,"0",STR_PAD_LEFT),
        "ChargeDesc1"=>"Memoringo",
        "ChargeDesc2"=>elimina_acentos(substr($pedido->get_product_var($dbh,$_SESSION["job_id"],'PRODUCTNAME'),0,40)),
        "ChargeDesc3"=>"",
        "ChargeDesc4"=>"",
        "Number"=>$_POST["Number"],
        "Expires"=>$_POST["expmonth"]."/".$_POST["expyear"],
        "Cvv2Indicator"=>"1",
        "Cvv2Val"=>$_POST["cvv2"],
        "ShipFromFirstName"=>elimina_acentos(substr("MONICA",0,30)),
        "ShipFromLastName"=>elimina_acentos(substr("VALDES RICARDEZ",0,30)),
        "ShipFromCompany"=>elimina_acentos(substr("PUBLICACIONES E IDEAS EDITORIALES SA DE CV",0,40)),
        "ShipFromTelVoice"=>"55-5652-0832",
        "ShipFromFax"=>"55-5652-2002",
        "ShipFromStreet1"=>elimina_acentos(substr("BRUNO TRAVEN NO 49",0,40)),
        "ShipFromStreet2"=>"GRAL ANAYA",
        "ShipFromStreet3"=>"",
        "ShipFromCity"=>"Benito Juarez",
        "ShipFromStateProv"=>"Distrito Federal",
        "ShipFromCountry"=>"484",
        "ShipFromPostalCode"=>"03340",
        "ShipToFirstName"=>elimina_acentos(substr($userinfo->nombre,0,30)),
        "ShipToLastName"=>elimina_acentos(substr($userinfo->ap_paterno . " " . $userinfo->ap_materno,0,30)),
        "ShipToCompany"=>elimina_acentos(substr($userinfo->razon_social,0,40)),
        "ShipTelVoice"=>elimina_acentos(substr($userinfo->lada.$userinfo->telefono,0,30)),
        "ShipToFax"=>"",
        "ShipToStreet1"=>elimina_acentos(substr($shipping_info->calle." ".$shipping_info->n_ext." ".$shipping_info->n_int,0,60)),
        "ShipToStreet2"=>elimina_acentos(substr($shipping_info->colona,0,60)),
        "ShipToStreet3"=>"",
        "ShipToCity"=>elimina_acentos(substr($shipping_info->municipio,0,60)),
        "ShipToStateProv"=>elimina_acentos(substr($shipping_info->estado,0,60)),
        "ShipToCountry"=>"484",
        "ShipToPostalCode"=>$shipping_info->cp,
        "PbOrderIndicator"=>"0",
        "Total"=>number_format($_POST["Total"],2,".",","),
        "E1"=>$unique_code,
        "E2"=>"",
        "E3"=>"",
        "ResponsePath"=>"https://www.memoringo.com/members/respuesta.php"
    ); //"Total"=>$_POST["Total"],
    //var_dump($arguments);
    
    //
	$arguments["Referer"]="https://www.memoringo.com/";
    mysql_close($dbh);
	//flush();
    
	$error=$http->Open($arguments);

	if($error=="")
	{
		$error=$http->SendRequest($arguments);
		if($error=="")
		{
			//flush();

			$headers=array();
			$error=$http->ReadReplyHeaders($headers);
			if($error=="")
			{
				for(Reset($headers),$header=0;$header<count($headers);Next($headers),$header++)
				{
					$header_name=Key($headers);
					if(GetType($headers[$header_name])=="array")
					{
						for($header_value=0;$header_value<count($headers[$header_name]);$header_value++)
							header($header_name.": ".$headers[$header_name][$header_value]);
					}
					else
						header($header_name.": ".$headers[$header_name]);
				}
				//flush();

				for(;;)
				{
					$error=$http->ReadReplyBody($body,1000);
					if($error!=""
					|| strlen($body)==0)
						break;
					echo ($body);
				}
				//flush();
			}
		}
		$http->Close();
	}    
?>