PHP 調用webService方式

來源:互聯網
上載者:User

標籤:blog   http   os   io   ar   for   art   div   cti   

方法如下:

 

<?phpheader(‘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"]);//F38531ADE7D5221BE0438C92070AC392if($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); }

  

PHP 調用webService方式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.