zoukankan      html  css  js  c++  java
  • PHP 调用webService方式

    方法如下:

    <?php
    header('Content-Type: text/html; charset=UTF-8');
    define('APP_ROOT', dirname(__FILE__) . DIRECTORY_SEPARATOR);
    $wsdlurl = "http://uniplatform.essence.com.cn/UniIdentity.asmx?wsdl";
    $domain = "http://tgfx.essence.com.cn";
    $qydomain = "http://ep.essence.com.cn";
    $scharset = "utf-8";
    $qyuser = null;
    session_start();
    $logincert =(empty($_GET["logincert"])) ? false:trim( $_GET["logincert"]);
    $loginsso =(empty($_GET["ssocert"])) ? false:trim( $_GET["ssocert"]);//F38531ADE7D5221BE0438C92070AC392
    
    if($logincert){
    	//是否已经在本平台登录过
    	$qyuser  = $_SESSION['loginQiYeUserInfo'];
    	if(isset($qyuser) && !empty($qyuser)){
    		if( $qyuser['loginCert'] &&  $qyuser['loginCert'] == $logincert ){			
    			//已经登录 直接进入 系统
    			echo '<script>window.location.href="'. $domain .'"</script>';exit;
    		}else{
    			//清空session 
    			 $_SESSION['loginQiYeUserInfo'] = null; //可能是另一个用户进来
    		}
    	}else{
    		//取下COOKIE中是否有
    		/*if (isset($_COOKIE["loginQissocert"]))
      		 	$loginsso = trim($_COOKIE["loginQissocert"]);*/
    	}
    	$rest = checkIntoSystem ($wsdlurl ,$logincert,$loginsso , $scharset , $qyuser); //认证	
    	if($rest) {
    		//把$loginsso 保存到Cookie
    		//setcookie("loginQissocert", $loginsso,time()+3600);
    		//去拿到 员工的ID 以及其它信息保存在Session中	
    		echo '<script>window.location.href="'. $domain .'"</script>';exit;
    	}else{
    		echo '<script>window.location.href="'. $domain .'/fail.html"</script>';exit;
    	}
    }	
    
    /**
     * 认证 登录人员
     */
    function checkIntoSystem( $wsdlurl ,$logincert,$loginsso ="" ,$scharset="utf-8",& $qyuser =null ){	
    	if(empty($logincert)) return false;
    	
    	$scoptions = array (
    		'trace' => true,	'soap_version' => SOAP_1_2,
    		'exceptions' => false,	'encoding' => $scharset
    	);
    	$checkparam = array (
    		'userIP' => getClientIP(), //IP地址
    		'loginCert' => @ $logincert ,'SSOCert' => $loginsso, //登录的信息
    		'target' => "1045"//机器编号
    	);
    	//print_r($checkparam);	
    	//调用门户接口测试
    	try {	
    		$client = new SoapClient($wsdlurl, $scoptions); //print_r($client->__getFunctions()); //print_r($client->__getTypes());	
    		/**
    		 * 验证用用户是否能够进入系统性
    		 */
    		$resultdata=null ;
    		$check_rt = $client->__soapCall("SSOAuthenticat",  array($checkparam) );
    		if ( $check_rt ) { //SSOAuthenticatResult是认证返回值变量
    			$returnstr = $check_rt->SSOAuthenticatResult;
    			if ($returnstr) {
    				$resultdata = explode('|', $returnstr);
    			}
    			//print_r($resultdata);
    			$rcode = trim($resultdata[0]);
    			switch ($rcode){
    				case "100": 
    							$logusername = @ trim($resultdata[1]);   
    							$qyuser['loginCert'] = $_GET["logincert"];
    							$qyuser['ltype'] = "QAN";
    							$qyuser['loginuname'] = $logusername;
    							$_SESSION['loginQiYeUserInfo'] = $qyuser;	return true;//认证通过 可以登录 						
    							break;				
    				case "201":	echo "认证结果:验证失败"; break; 
    				case "101":	echo "认证结果:没有权限"; break; 
    				default:echo "未知错误"; break;
    			}
    			 
    		} else {
    			echo "认证返回结果为NULL,请检查再试。";
    		} 
    	} catch (SoapFault $soapFault) {
    		//echo $soapFault;
    		echo "<===>" . $soapFault->faultstring;
    		$file = APP_ROOT."logs/error/".date("Ymd_His").time()."log";
    		file_put_contents($file,$soapFault);//记录异常信息		
    	}	
    	return false;
    }
    
     
    
    // 定义一个函数getIP()
    function getClientIP(){	
    	$ip = "";
    	if (getenv("HTTP_CLIENT_IP"))
    		$ip = getenv("HTTP_CLIENT_IP");
    	else if(getenv("HTTP_X_FORWARDED_FOR"))
    		$ip = getenv("HTTP_X_FORWARDED_FOR");
    	else if(getenv("REMOTE_ADDR"))
    		$ip = getenv("REMOTE_ADDR");
    	else $ip = "Unknow";
    	
    	return $ip;
    }
     
     
    //获取所有部门
    function SoapAllDepar($wdsl, $options) {	 
    	$mms = $client->GetAllDepartment(NULL);	 
    	//$xmlstring  = base64_decode($mms->GetAllDepartmentResult); 
    }
    

      

  • 相关阅读:
    SparkStructuredStreaming 下的checkpointLocation分析以及对接 Grafana 监控和提交Kafka Lag 监控
    spark structuredstreaming 最全的使用总结
    java获取kafka consumer lag、endOffsets、beginningOffsets以及 KafkaConsumer总结
    spark conf、config配置项总结
    spark读取和处理zip、gzip、excel、等各种文件最全的技巧总结
    有赞Vant组件库使用自定义图片作为icon属性,生产环境找不到图片的问题解决
    VUE页面中使用相对路径,图标图片(icon)不展示问题
    CDP7.1.7安装hive on tez 报错Can't create directory /mnt/ssd/yarn/nm/usercache/urika/appcache/application_1424508393097_0004 Permission denied
    MRS开启Kerberos认证的集群,客户端使用中报Message stream modified (41)错误
    CDP7.1.7部署hive on tez 后,因为hive和hive on tez端口一致导致hive on tez不稳定
  • 原文地址:https://www.cnblogs.com/yifenghong/p/3954628.html
Copyright © 2011-2022 走看看