auth_url = Env::get('auth.auth_url'); } /** * GET 请求 * @param string $url */ private function http_get($url,$param,$arr_header=array(),$id=''){ $oCurl = curl_init(); if (is_string($param)) { $strPOST = $param; } else { $aPOST = array(); foreach ($param as $key => $val) { $aPOST[] = $key . "=" . $val; } $strPOST = join("&", $aPOST); } $url = $url."?".$strPOST; if (stripos($url, "https://") !== false) { curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1 } curl_setopt($oCurl, CURLOPT_URL, $url); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1); if(!empty($arr_header)){ $arr_header[] = "Content-Type: application/json; charset=utf-8"; } curl_setopt($oCurl, CURLOPT_HTTPHEADER, $arr_header); $sContent = curl_exec($oCurl); if (curl_errno($oCurl)){ throw new Exception(curl_error($oCurl),0); }else{ $httpStatusCode = curl_getinfo($oCurl, CURLINFO_HTTP_CODE); if (200 !== $httpStatusCode){ throw new Exception($arr_header[1],$httpStatusCode); } } curl_close($oCurl); return $sContent; } /** * POST 请求 * @param string $url * @param array $param * @param boolean $post_file 是否文件上传 * @param boolean $time 超时时间,单位秒 * @param boolean $id 爬虫日志表id * @param boolean $arr_header http请求头 * @return string content */ private function http_post($url, $param,$user_name,$password, $post_file = false, $time = 30,$id='',$arr_header=array()){ $oCurl = curl_init(); if (stripos($url, "https://") !== false) { curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1 if(stripos($url,"pycredit")!== false){ curl_setopt($oCurl, CURLOPT_SSLCERT, APP_PATH . 'extra' . DS . self::PYCERT_NAME); //pem curl_setopt($oCurl, CURLOPT_SSLCERTPASSWD, '123456'); curl_setopt($oCurl, CURLOPT_SSLKEY, APP_PATH . 'extra' . DS . self::PYCERT_NAME); //pem curl_setopt($oCurl, CURLOPT_SSLKEYPASSWD, '123456'); //pem } } if (is_string($param) || $post_file) { $strPOST = $param; } else { $aPOST = array(); foreach ($param as $key => $val) { $aPOST[] = $key . "=" . $val; } $strPOST = join("&", $aPOST); } curl_setopt($oCurl, CURLOPT_URL, $url); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($oCurl, CURLOPT_POST, true); curl_setopt($oCurl, CURLOPT_TIMEOUT, $time); //只需要设置一个秒的数量就可以,超时时间 curl_setopt($oCurl, CURLOPT_POSTFIELDS, $strPOST); // curl_setopt($oCurl, CURLOPT_HTTPHEADER, $arr_header); curl_setopt($oCurl, CURLOPT_USERPWD, "{$user_name}:{$password}"); $sContent = curl_exec($oCurl); $aStatus = curl_getinfo($oCurl); curl_close($oCurl); if (intval($aStatus["http_code"]) == 200) { return $sContent; } else { return false; } } /** * DELETE 请求 * @param string $url * @param array $param * @param boolean $user_name AUTH账号 * @param boolean $password AUTH密码 * @return string content */ function http_delete($url,$param,$user_name,$password) { $oCurl = curl_init(); if (is_string($param)) { $strPOST = $param; } else { $aPOST = array(); foreach ($param as $key => $val) { $aPOST[] = $key . "=" . $val; } $strPOST = join("&", $aPOST); } $url = $url."?".$strPOST; curl_setopt($oCurl, CURLOPT_URL, $url); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($oCurl, CURLOPT_CUSTOMREQUEST, 'DELETE'); //设置头 curl_setopt($oCurl, CURLOPT_USERPWD, "{$user_name}:{$password}"); curl_setopt($oCurl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36'); curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false);//SSL认证。 $sContent = curl_exec($oCurl); $aStatus = curl_getinfo($oCurl); curl_close($oCurl); if (intval($aStatus["http_code"]) == 200) { return $sContent; } else { return false; } } /** * PUT 请求 * @param string $url * @param array $param * @param boolean $user_name AUTH账号 * @param boolean $password AUTH密码 * @return string content */ function http_put($url,$param,$user_name,$password, $arr_header) { $oCurl = curl_init(); if (is_string($param)) { $strPOST = $param; } else { $aPOST = array(); foreach ($param as $key => $val) { $aPOST[] = $key . "=" . $val; } $strPOST = join("&", $aPOST); } $url = $url."?".$strPOST; curl_setopt($oCurl, CURLOPT_URL, $url); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($oCurl, CURLOPT_CUSTOMREQUEST, 'PUT'); //设置头 curl_setopt($oCurl, CURLOPT_HTTPHEADER, $arr_header); // curl_setopt($oCurl, CURLOPT_USERPWD, "{$user_name}:{$password}"); curl_setopt($oCurl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36'); curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false);//SSL认证。 $sContent = curl_exec($oCurl); $aStatus = curl_getinfo($oCurl); curl_close($oCurl); if (intval($aStatus["http_code"]) == 200) { return $sContent; } else { return false; } } /** * getToken * @Author * @DateTime * @version 1.0 * @param data 查询条件json * @return string 查询结果json字符串 */ public function getToken($data){ if (empty($data)) { return ReturnCode::AUTH_PARAMETER; } $apiFrom = self::API_TOKEN; $url = $this->auth_url . $apiFrom; $user_name = self::USERNAME; $password = self::PASSWORD; $res = $this->http_post($url, $data,$user_name,$password, false, 120); if ($res) { return $res; } else { return ReturnCode::AUTH_TOKEN; } } public function getQrCodeToken($data){ if (empty($data)) { return ReturnCode::AUTH_PARAMETER; } $apiFrom = self::API_QR_CODE; $url = $this->auth_url . $apiFrom; $user_name = self::USERNAME; $password = self::PASSWORD; $res = $this->http_post($url, $data,$user_name,$password, false, 120); if ($res) { return $res; } else { return ReturnCode::AUTH_TOKEN; } } /** * userinfo * @Author * @DateTime * @version 1.0 * @param data 查询条件 * @return string 查询结果json字符串 */ public function userinfo($data,$arr_header) { if (empty($data)) { return ReturnCode::AUTH_USER_TOKEN; } $apiFrom = self::API_USER_AUTH; $url = $this->auth_url . $apiFrom; $res = $this->http_get($url,$data,$arr_header); if ($res) { return $res; } else { return ReturnCode::AUTH_USER; } } /** * Logout * @Author llz * @DateTime 2022-10-10 * @version 1.0 * @param * @return */ public function Logout($data) { if (empty($data)) { return ReturnCode::AUTH_USER_TOKEN; } $apiFrom = self::API_DEL_TOKEN; $url = $this->auth_url . $apiFrom; $user_name = self::USERNAME; $password = self::PASSWORD; $res = $this->http_delete($url,$data,$user_name,$password); if ($res) { return $res; } else { return ReturnCode::AUTH_USER; } } /** * userinfo * @Author * @DateTime * @version 1.0 * @param data 查询条件 * @return string 查询结果json字符串 */ public function RefreshgetToken($userid,$refresh_token) { if (empty($refresh_token)) { return ReturnCode::AUTH_PARAMETER; } $apiFrom = self::API_TOKEN; $userInfo = cache('userinfo'.$userid); $url = $this->auth_url . $apiFrom."?grant_type=".self::GRANT_TYPE."&refresh_token=".$refresh_token; $user_name = $userInfo['user_name']; $password = self::PASSWORD; $res = $this->http_post($url, array(),$user_name,$password, false, 120); if ($res) { return $res; } else { return ReturnCode::AUTH_TOKEN; } } public function getRole($data,$arr_header) { if (empty($data)) { return ReturnCode::AUTH_PARAMETER; } $apiFrom = self::API_USER_ROLE; $url = $this->auth_url . $apiFrom; $res = $this->http_get($url,$data); if ($res) { return $res; } else { return ReturnCode::AUTH_ROLE; } } /** * 根据部门id获取用户列表 * @param [type] $data [description] * @return [type] [description] */ public function getUsersListById($data) { if (empty($data)) { return ReturnCode::AUTH_PARAMETER; } $apiFrom = self::API_DEPART_ROLE; $url = $this->auth_url . $apiFrom; $res = $this->http_get($url,$data); if ($res) { return $res; } else { return ReturnCode::AUTH_ROLE; } } /** * 根据业务部id获取业务部下面所有部门信息 * @param $data * @return array|int */ public function getBusinessDepartment($data) { if (empty($data)) { return ReturnCode::AUTH_PARAMETER; } $apiFrom = self::API_BUSINESS_DEPARTMENT; $url = $this->auth_url . $apiFrom; $res = $this->http_get($url,$data); if ($res) { return $res; } else { return ReturnCode::AUTH_ROLE; } } /** * getUser * @Author * @DateTime * @version 1.0 * @param data 查询条件json * @return string 查询结果json字符串 */ public function getUser($data){ if (empty($data)) { return ReturnCode::AUTH_PARAMETER; } $apiFrom = self::API_MANY_USER_ROLE; $url = $this->auth_url . $apiFrom; $data['systemCode'] = 'NCE'; $res = $this->http_get($url,$data); if ($res) { return $res; } else { return ReturnCode::AUTH_TOKEN; } } /** * getUserList * @Author llz * @DateTime 2023-3-09 * @version 1.0 * @return string 查询结果json字符串 */ public function getUserList(){ $url = $this->auth_url . self::API_USER_LIST; $res = $this->http_get($url,[]); if ($res) { return $res; } else { return ReturnCode::DB_READ_ERROR; } } /** * updatePwd * @Author llz * @DateTime 2023-3-09 * @version 1.0 * @return string 查询结果json字符串 */ public function updatePwd(array $data, array $arr_header): string { if (empty($data)) { return ReturnCode::AUTH_PARAMETER; } $apiFrom = self::API_UPDATE_PWD; $url = $this->auth_url . $apiFrom; $res = $this->http_put($url, $data, self::USERNAME, self::PASSWORD, $arr_header); if ($res) { return $res; } else { return ReturnCode::AUTH_USER; } } }