Aqua-Soft Forums: 302 E-commerce - Aqua-Soft Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

302 E-commerce Rate Topic: -----

#1 User is offline   Juliorush Icon

  • Group: Member
  • Posts: 1
  • Joined: 08-December 08

Posted 08 December 2008 - 10:00 PM

I have an e-commerce web (memoringo.com), i have a problem, when my clients try to pay with Visa/MasterCard an error comes: 302 Moved temporarily.

Here is the code i use to send information:

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=0;
$http->data_timeout=0;
$http->debug=1;
$http->html_debug=0;

$url="https://eps.banorte.com/recibo";
$error=$http->GetRequestArguments($url,$arguments);
$arguments["RequestMethod"]="POST";
$arguments["Protocol"]="https";
$arguments["PostValues"]=array(
"Name"=>"USER",
"Password"=>"PASS",
"ClientId"=>"ID",
"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 {
$header_name=Key($headers);
if(GetType($headers[$header_name])=="array")
{
for($header_value=0;$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();
}
?>


And here the one i use to recive information:

require_once("../common/common.php");
require_once("../common/class.template.php");
require_once("../common/class.user.php");
require_once("../common/dbinfo.php");
require_once("../common/class.pedido.php");
require_once("../common/class.productos.php");
require_once("../common/class.session_timer.php");

@session_name('portal');
session_start();
$timer = new SessionManger();
$timer->update_session($_SESSION);

function insert_cat_answer_payworks ($dbh,$data){
$SQL = "INSERT INTO respuestas_banco (id_pedido,id_user,Status,MaxSev,TimeIn,TimeOut,ProcReturnMsg,ProcReturnCode,Tex
t,CcReturnMsg,Total,E1,E2,E3,AuthCode,Cvv2Resp,CcErrCode,OrderId) VALUES
(".intval($_GET["OrderId"]).",".$_SESSION["id_user"].",'".$_GET["Status"]."','".$_GET["MaxSev"]."','".$_GET["TimeIn"]."','".$_GET["TimeOut"]."','".$_GET["ProcReturnMsg"]."','".$_GET["ProcReturnCode"]."','".$_GET["Text"]."','".$_GET["CcReturnMsg"]."','".$_GET["Total"]."','".$_GET["E1"]."','".$_GET["E2"]."','".$_GET["E3"]."','".$_GET["AuthCode"]."','".$_GET["Cvv2Resp"]."','".$_GET["CcErrCode"]."','".$_GET["OrderId"]."')";
mysql_query($SQL,$dbh);
}

function insert_pago($dbh,$id_pedido){
$SQL = "INSERT INTO pagos (id_paymentgw,fecha,confirmacion,monto) VALUES (1,".intval($_GET["OrderId"]).",'".$_GET["AuthCode"]."','".$_GET["Total"]."')";
mysql_query($SQL,$dbh);
$SQL = "SELECT LAST_INSERT_ID() AS id_pago";
$res = mysql_query($SQL);
$row = mysql_fetch_object($res);
$id_pago = $row->id_pago;
$SQL = "UPDATE pedidos SET id_pago=".$id_pago." WHERE id_pedido=".$id_pedido;
mysql_query($SQL);
return $id_pago;
}

$pedido = new pedido();
if ($pedido->check_sig($dbh,intval($_GET["OrderId"]),$_GET["E1"])){
insert_cat_answer_payworks($dbh,$_GET);
if ($_GET["CcErrCode"]=="1"){ //Cargo aprobado
insert_pago($dbh,intval($_GET["OrderId"]));
$params = base64_encode("id_pedido=".intval($_GET["OrderId"])."&auth_code=".$_GET["AuthCode"]);
$tail = md5("421dc46fdbbd5f12577e0cec24be3f");
$params .= $tail . "Me";
$params = str_replace("=","M",$params);
header("Location: confirm.php?sess=".$params);
}else{ //Cargo denegado
header("Location: denied.php?id_pedido=".$_GET["OrderId"]."&total=".$_GET["Total"]);
}
} else {
echo "Error en firma de validación electrónica";
}

?>
0

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic