zoukankan      html  css  js  c++  java
  • 微信公众平台操作获取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;
            }
        }
    
  • 相关阅读:
    hiberate关系映射大全
    SpringMVC+RestFul详细示例实战教程
    [转]为什么大型网站前端使用 PHP 后台逻辑用 Java?
    offsetWidthoffsetleft 等图文解释
    理解jquery的$.extend()、$.fn和$.fn.extend()
    使用jquery获取url及url参数的方法
    构建高并发高可用的电商平台架构实践
    jquery实现多条件筛选特效代码分享
    【转载】“活在当下”是什么含义呢?
    UL LI 布局 TAB 切换条
  • 原文地址:https://www.cnblogs.com/yeshaoxiang/p/7814704.html
Copyright © 2011-2022 走看看