微信公众平台操作获取token类

/**
 * 微信公众平台操作类
 */
class WeChat {

    private $_appid;
    private $_appsecret;

    public function __construct($id,$secret){
        $this->_appid = $id;
        $this->_appsecret = $secret;
    }

    /**
     * 获取 access_tonken
     * @param  string $token_file,用来存在token的临时文件
     */
    public function getAccessToken($token_file="./access_tonken"){
        //考虑过期实际,获取的access_token存储到某个文件中
        $life_time = 7200;
         if(file_exists($token_file) && time()-filemtime($token_file)<$life_time){
             //存在有效的access_token
             $str = file_get_contents($token_file);
             return $str;
         }

        //目标url
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->_appid}&secret={$this->_appsecret}";
        //向url发送get请求
        $result = $this->_requestGet($url);
        if(!$result){
            return false;
        }
        //存在返回响应的结果
        $result_obj = json_decode($result,true);
        //写入
        file_put_contents($token_file, $result_obj['access_token']);
        return $result_obj['access_token'];
    }

    /**
     * 发送GET请求的方法
     * @param string $url URL
     * @param bool $ssl 是否为https协议
     * @return string 响应主体Content
     */
    public function _requestGet($url,$ssl=true){
        //curl完成
        $curl = curl_init();
        //设置curl选项
        curl_setopt($curl, CURLOPT_URL, $url);
        //请求代理信息
        $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "Mozilla/5.0 (Windows NT 6.1; WOW64)
 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36";
        curl_setopt($curl, CURLOPT_USERAGENT,$user_agent); 
        //referer头,请求来源
        curl_setopt($curl, CURLOPT_AUTOREFERER, true);
        //SSL相关的
        if($ssl){
            //禁用后curl将终止从服务端进行验证
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
            //检查服务器ssl证书中是否存在一个公用名(commont name)
            // curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
            //是否返回响应头
            curl_setopt($curl, CURLOPT_HEADER, false);
            //是否返回响应结果
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            //发送请求
            $response = curl_exec($curl);
            if (false == $response) {
                echo "<br />", curl_error($curl),"<br />";
                return false;
            }
            return $response;
        }
    }
原文地址:https://www.cnblogs.com/yeshaoxiang/p/7814704.html