利用thinkphp企業微信,發送消息

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方法
}
相關文章
相關標籤/搜索