actualizacion proyecto - modificacion msisdn

parent 70069cec
<?php
/**
* ###################
* 1-INICIO SESION PHP
* ###################
*
*/
if (session_id() == '' || !isset($_SESSION)) {
session_start();
}
/**
* ###################
* 2-INICIO VARIABLES PHP
* ###################
*
*/
$status_code = null;
$desc = '';
$xmlOutput = '';
$xmlDesc = '';
$output = '';
/**
* ###################
* 3-TRATAMIENTO URL Y XML PHP
* ###################
*
*/
$params = urldecode($_SERVER['QUERY_STRING']);
$url = "http://vpwproxy.vas.entelpcs.cl/vpw.php?#PARAMETROS";
$url = str_replace('#PARAMETROS', $params, $url);
$msisdn = $_POST["msisdn"];
$xml = "<?xml version='1.0' encoding='UTF-8'?><unsubscribe><entry>569" . $msisdn . "</entry></unsubscribe>";
/**
* ###################
* 4-LLAMADO A CURL
* ###################
*
*/
try {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$output = curl_exec($ch);
$xmlDesc = $output;
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$xmlOutput = simplexml_load_string($output);
if (isset($xmlOutput->error)) {
$desc = (string) $xmlOutput->error;
} else if (isset($xmlOutput->info)) {
$desc = (string) $xmlOutput->info;
}
if ($desc == "") {
switch ($status_code) {
case 300:
$desc = "No fue posible consultar plan.";
break;
case 403:
$desc = "IP no autorizada.";
break;
}
}
} catch (\Exception $e) {
$status_code = null;
$desc = null;
}
/**
* ###################
* 5-RESULTADO CURL
* ###################
*
*/
//echo '{"desc" : "'.$desc.'", "status_code" : '.$status_code.', "callbackUrl" : "'.$url.'"}';
echo "$desc|$status_code|$xmlDesc";
<?php
/**
* ###################
* 1-INICIO SESION PHP
* ###################
*
*/
if (session_id() == '' || !isset($_SESSION)) {
session_start();
}
/**
* #################################
* 2-OBTENCION DE URI Y PARAMETROS
* #################################
*/
$params = getParametersArray(urldecode($_SERVER['QUERY_STRING']));
write_log($_SERVER['QUERY_STRING'], "INFO");
/**
* ####################################################################################
* 6-CASO CUANDO ENTEL REDIIRECCIONA HACIA ESTA PAGINA CON EL MSISDN EN LA QUERY (GET)
* ####################################################################################
*/
$urlRetorno = "http://new.topsify.cl";
if(empty($params)){
//$urlRetorno = $_SESSION["urlRetorno"];
write_log("Retorno con msisdn vacio, por parametros vacio", "INFO");
write_log($urlRetorno, "INFO");
header("Location: http://new.topsify.cl?msisdn=&m=1");
die();
}else if($params[0] == "&error"){
//$urlRetorno = $_SESSION["urlRetorno"];
write_log("Retorno con msisdn vacio", "INFO");
write_log($urlRetorno, "INFO");
header("Location: http://new.topsify.cl?msisdn=&m=1");
die();
}else if ($params[0] == "&entelsid" && $params[1] == "") {
//$urlRetorno = $_SESSION["urlRetorno"];
write_log("Retorno con msisdn vacio", "INFO");
write_log($urlRetorno, "INFO");
header("Location: http://new.topsify.cl?msisdn=&m=1");
die();
} else if ($params[0] == "&entelsid" && $params[1] != "") {
//$urlRetorno = $_SESSION["urlRetorno"];
$json = obtenerMsisdnBySID($params[1]);
write_log($json["msisdn"],"INFO");
if ($json["msisdn"] == "") {
write_log("Retorno con msisdn vacio", "INFO");
write_log($urlRetorno, "INFO");
header("Location: http://new.topsify.cl?msisdn=&m=1");
die();
}
$msisdn = $json['msisdn'];
write_log("Retorno con msisdn", "INFO");
write_log($urlRetorno, "INFO");
write_log($msisdn, "INFO");
$msisdn = substr($msisdn, 3);
header("Location: http://new.topsify.cl?msisdn=$msisdn");
die();
}
/**
* #################################
* 3-DEFINICION DE DATOS A UTILIZAR
* #################################
*/
$urlRetorno = explode("=", $params[0])[1];
$_SESSION["urlRetorno"] = $urlRetorno;
$urlEntel = "http://smanager.vas.entelpcs.cl/get_content?stype=0";
/**
* #################################
* 4-CHEQUEO DE IP CLIENTE
* #################################
*/
$check = checkIP(getClientIp(null, false));
//Chequeo IP
if (!$check) {
write_log("IP no válida", "INFO");
header("Location: http://new.topsify.cl?msisdn=&m=1");
die();
}
/**
* #################################
* 4-CHEQUEO MSISDN DE COOKIE ENTEL
* #################################
*/
if (isset($_COOKIE['User-Identity-Forward-msisdn']) && $_COOKIE['User-Identity-Forward-msisdn'] != "") {
$msisdn = substr($_COOKIE['User-Identity-Forward-msisdn'], -11);
write_log("COOKIE identificada", "INFO");
write_log("$msisdn obtenido", "INFO");
header("Location: http://new.topsify.cl?msisdn=$msisdn");
die();
}
/**
* ################################################
* 5-LLAMADA A URL ENTEL PARA OBTENCION DE MSISDN
* ################################################
*/
$protocol = getProtocolOfSelfHost();
$selfHost = $protocol . $_SERVER['HTTP_HOST'];
$urlFinalEntel = "$urlEntel&content=$selfHost/script_topsify.php?";
write_log("Redireccionando a entel", "INFO");
write_log("$urlFinalEntel", "INFO");
header("Location: $urlFinalEntel");
die();
#######FUNCIONES####################
function getClientIp($ip = null, $deep_detect = TRUE) {
write_log("entrando a obtencion de IP...","INFO");
if (filter_var($ip, FILTER_VALIDATE_IP) === FALSE) {
$ip = $_SERVER["REMOTE_ADDR"];
if ($deep_detect) {
if (filter_var(@$_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP))
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
if (filter_var(@$_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP))
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
} else {
$ip = $_SERVER["REMOTE_ADDR"];
}
write_log($ip,"INFO");
return $ip;
}
function getParametersArray($uri) {
write_log("entrando a obtencion de parametros URI...","INFO");
$arr = explode("&", $uri);
if (!empty($arr)) {
$arr2 = explode("=", $uri);
write_log(json_encode($arr2),"INFO");
return $arr2;
}
write_log(json_encode($arr),"INFO");
return $arr;
}
function getProtocolOfSelfHost() {
write_log("entrando a obtencion de protocolo HOST...","INFO");
$protocol = "";
if (isset($_SERVER['HTTPS']) &&
($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
$protocol = 'https://';
} else {
$protocol = 'http://';
}
write_log(json_encode($protocol),"INFO");
return $protocol;
}
function checkIP($ip) {
write_log("entrando a chequeo de ip...","INFO");
$url = "http://soperator.gearlabs.cl/GetOperador?ip=$ip";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
write_log($output,"INFO");
write_log($httpcode, "INFO");
if ($httpcode == 200) {
if ($output !== "") {
$operador = json_decode($output, true)["operador"];
if ($operador == "entel") {
return true;
}
}
}
return false;
}
function obtenerMsisdnBySID($sId) {
write_log("entrando a obtencion de msisdn por sid...","INFO");
$params = array('sId' => $sId);
$url = 'http://54.221.214.144/smanager/smanager.php?' . http_build_query($params);
$retornoJson = null;
write_log("llamando url $url ....","INFO");
try {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$output = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
write_log($output,"INFO");
write_log($status_code, "INFO");
curl_close($ch);
if ($status_code == 200) {
$retornoJson = json_decode($output, true);
//$operador = $retornoJson['operador'];
}
} catch (\Exception $e) {
$retornoJson = array();
return $retornoJson;
}
return $retornoJson;
}
function write_log($cadena, $tipo) {
if (!file_exists("/tmp/logs")) {
mkdir("/tmp/logs", 0777, true);
}
$arch = fopen("/tmp/logs/proxy_" . date("Y-m-d") . ".txt", "a+");
fwrite($arch, "[" . date("Y-m-d H:i:s.u") . " " . $_SERVER['REMOTE_ADDR'] . " " .
" - $tipo ] " . $cadena . PHP_EOL);
fclose($arch);
}
########################
?>
......@@ -57,7 +57,7 @@ if(empty($params)){
write_log("Retorno con msisdn", "INFO");
write_log($urlRetorno, "INFO");
write_log($msisdn, "INFO");
$msisdn = substr($msisdn, 3);
$msisdn = substr($msisdn, 2);
header("Location: http://new.umusic.cl?msisdn=$msisdn");
die();
}
......@@ -93,7 +93,7 @@ if (!$check) {
*/
if (isset($_COOKIE['User-Identity-Forward-msisdn']) && $_COOKIE['User-Identity-Forward-msisdn'] != "") {
$msisdn = substr($_COOKIE['User-Identity-Forward-msisdn'], -11);
$msisdn = substr($_COOKIE['User-Identity-Forward-msisdn'], -9);
write_log("COOKIE identificada", "INFO");
write_log("$msisdn obtenido", "INFO");
header("Location: http://new.umusic.cl?msisdn=$msisdn");
......
<?php
/**
* ###################
* 1-INICIO SESION PHP
* ###################
*
*/
if (session_id() == '' || !isset($_SESSION)) {
session_start();
}
/**
* ###################
* 2-INICIO VARIABLES PHP
* ###################
*
*/
$status_code = null;
$desc = '';
$xmlOutput = '';
$xmlDesc = '';
$output = '';
/**
* ###################
* 3-TRATAMIENTO URL Y XML PHP
* ###################
*
*/
$params = urldecode($_SERVER['QUERY_STRING']);
$url = "http://vpwproxy.vas.entelpcs.cl/vpw.php?#PARAMETROS";
$url = str_replace('#PARAMETROS', $params, $url);
$msisdn = $_POST["msisdn"];
$xml = "<?xml version='1.0' encoding='UTF-8'?><subscribe><entry>569" . $msisdn . "</entry></subscribe>";
/**
* ###################
* 4-LLAMADO A CURL
* ###################
*
*/
try {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$output = curl_exec($ch);
$xmlDesc = $output;
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$xmlOutput = simplexml_load_string($output);
if (isset($xmlOutput->error)) {
$desc = (string) $xmlOutput->error;
} else if (isset($xmlOutput->info)) {
$desc = (string) $xmlOutput->info;
}
if ($desc = "") {
switch ($status_code) {
case 300:
$desc = "No fue posible consultar plan.";
break;
case 402:
$desc = "El movil no tiene saldo.";
break;
case 501:
$desc = "Fallo en la configuracioon de validacion.";
break;
case 302:
$desc = "El movil ya esta agendado.";
break;
case 415 :
$desc = "El movil no es compatible.";
break;
case 410:
$desc = "El movil no tiene perfil compatible";
break;
}
}
} catch (\Exception $e) {
$status_code = null;
$desc = null;
}
/**
* ###################
* 5-RESULTADO CURL
* ###################
*
*/
//echo '{"desc" : "'.$desc.'", "status_code" : '.$status_code.', "callbackUrl" : "'.$url.'"}';
echo "$desc|$status_code|$xmlDesc";
......@@ -45,7 +45,7 @@ class EntelVPW {
);
$xml = "<?xml version='1.0' encoding='UTF-8'?><subscribe><entry>569" . $msisdn . "</entry></subscribe>";
$xml = "<?xml version='1.0' encoding='UTF-8'?><subscribe><entry>56" . $msisdn . "</entry></subscribe>";
$url = self::URL_EXTERNAL_VPW_SUSCRIBIR;
$url = str_replace('#PARAMETROS', http_build_query($params), $url);
......@@ -68,9 +68,15 @@ class EntelVPW {
curl_close($ch);
$log->debug('Retorno status a suscribir externo:' . $status_code_suscribir . ' | desc:' . $output);
$data = explode("|", $output);
$status_code = $data[1];
$desc = $data[0];
$xmlDesc = $data[2];
if(count($data) > 1){
$status_code = $data[1];
$desc = $data[0];
$xmlDesc = $data[2];
}else{
$status_code = 0;
$desc = "";
$xmlDesc = "";
}
} catch (\Exception $e) {
$log->err(' Error al suscribir. url:' . $url . ' .Exception: ' . $e);
$status_code = null;
......@@ -119,7 +125,7 @@ class EntelVPW {
'code' => $lista->getLisCode()
);
$xml = "<?xml version='1.0' encoding='UTF-8'?><unsubscribe><entry>569" . $msisdn . "</entry></unsubscribe>";
$xml = "<?xml version='1.0' encoding='UTF-8'?><unsubscribe><entry>56" . $msisdn . "</entry></unsubscribe>";
$url = self::URL_EXTERNAL_VPW_DESUSCRIBIR;
$url = str_replace('#PARAMETROS', http_build_query($params), $url);
......@@ -141,9 +147,15 @@ class EntelVPW {
curl_close($ch);
$log->debug('Retorno status a suscribir externo:' . $status_code_desuscribir . ' | desc:' . $output);
$data = explode("|", $output);
$status_code = $data[1];
$desc = $data[0];
$xmlDesc = $data[2];
if(count($data) > 1){
$status_code = $data[1];
$desc = $data[0];
$xmlDesc = $data[2];
}else{
$status_code = 0;
$desc = "";
$xmlDesc = "";
}
} catch (\Exception $e) {
$log->err(' Error al desuscribir. url:' . $url . ' .Exception: ' . $e);
$status_code = null;
......
......@@ -31,7 +31,7 @@ class Utiles {
}
public static function isMsisdn($msisdn) {
if (strlen($msisdn) != 8 || !is_numeric($msisdn)) {
if (strlen($msisdn) != 9 || !is_numeric($msisdn)) {
return false;
} else {
return true;
......@@ -40,7 +40,7 @@ class Utiles {
public static function formatMsisdnSpecial($msisdn) {
if (preg_match("/^[0-9]+$/", $msisdn) && strlen($msisdn) == 8) {
if (preg_match("/^[0-9]+$/", $msisdn) && strlen($msisdn) == 9) {
// if(is_numeric($msisdn) && strlen($msisdn) == 8){
return $msisdn;
}
......
......@@ -16,7 +16,7 @@
<form class="form-horizontal" action="/" method="post">
<div class="form-group">
<div class="col-md-12">
<input class="form-control focused" id="msisdn" name="msisdn" pattern=".{8,8}" required title="Debe ingresar 8 números" type="text" placeholder="Ej:74867425">
<input class="form-control focused" id="msisdn" name="msisdn" pattern=".{9,9}" required title="Debe ingresar 9 números" type="text" placeholder="Ej:974867425">
</div>
</div>
</form>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment