1.獲取accesstokenphp
private $appId="wxcf....."; //微信企業號的appid public function getAccessToken() { //獲取AccessToken的方法 $data = json_decode(file_get_contents("AccessToken.json"));//獲取存在AccessToken.json //$access_token=$data->access_token; if ($data->expire_time < time()) { //若是AccessToken過時則從新獲取AccessToken // $config = C('WX_CONFIG'); $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wxcf.....&corpsecret=2ASy1p9hBT_AGhaSeJEHMbXiXY........";//獲取AccessToken的url及參數。 $res =$this->https_request($url);//調用https請求方法 $res = json_decode($res); //把$res設置爲對象 $access_token = $res->access_token; //獲取結果集中的access_token if ($access_token) { $data->expire_time = time() + 7000; //上一次獲取access_token的時間加上兩小時,access_token的有效時間爲兩小時,超過兩小時則從新獲取。也能夠每次使用時都從新獲取,可是有獲取次數限制。 $data->access_token = $access_token; $fp = fopen("AccessToken.json", "w"); //打開AccessToken.json文件,「W」表示寫入(Write) fwrite($fp, json_encode($data));//獲取到的結果寫入 fclose($fp);//關閉文件 } } else { $access_token = $data->access_token; //未過時狀況下直接讀取文件裏的access_token } return $access_token; }
2.https 請求方法json
//https請求(支持GET和POST) public function https_request($url, $data = null){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; }
3.發送消息api
//請假時發送消息給上級審批 public function sendMSG($superior,$name,$meet,$id){ $access_token=$this->getAccessToken();//調用getAccessToken方法獲取access_token $arr=array( 'touser'=>$superior, //消息接收者工號 "msgtype"=> "text", "agentid"=>8, "text"=> array( "content"=>'<a href="http://....../qyhdev/index.php?s=/weixin/Bublic/index/id/'.$id.'/name/'.$name.'/meet/'.$meet.'">收到'.$name.''.$meet.'請假申請,請點擊查看</a>' //發送的消息內容 ) ); $arr=json_encode($arr,JSON_UNESCAPED_UNICODE); //利用json_encode把$arr變爲json形式,「JSON_UNESCAPED_UNICODE」參數把中文變爲json形式。 $url="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=".$access_token; $res=$this->https_request($url, $arr); //調用https請求方法發送消息。 }
4.調用sendMSG方法微信
public function leave(){ $this->sendMSG($superior,$name,$meetname,$id); //調用sendMSG方法 }