首页 / PHP / PHP 调用webService方式
PHP 调用webService方式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP 调用webService方式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3432字,纯文字阅读大概需要5分钟。
内容图文
方法如下:
<?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); }
原文:http://www.cnblogs.com/yifenghong/p/3954628.html
内容总结
以上是互联网集市为您收集整理的PHP 调用webService方式全部内容,希望文章能够帮你解决PHP 调用webService方式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。