微信小程序获取access_token(附源码)

2020-03-31  本文已影响0人  端木安玉

获取 access_token 与获取 openid 方式一样具体如下:


image.png
image.png
image.png

服务端实现

 /**
     *  2.1  获取调用凭据 access_token
     */
    private function get_access_token(){
        $url ='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxxxx&secret=xxxxx' ;
        // 调用curl接口 获取数据
        $access_token = $this->curl_request($url);
        $access_token = json_decode($access_token);
        return $access_token;
    }
 /**
     *  参数1:访问的URL,
     * 参数2:post数据(不填则为GET)
     * 参数3:提交的$cookies
     * 参数4:是否返回$cookies
     */
    private function curl_request($url,$post='',$cookie='', $returnCookie=0){
        header('Content-type:text/html; charset=utf-8'); //声明编码
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
        curl_setopt($curl, CURLOPT_REFERER, "http://XXX");
        if($post) {
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
        }
        if($cookie) {
            curl_setopt($curl, CURLOPT_COOKIE, $cookie);
        }
        curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
        curl_setopt($curl, CURLOPT_TIMEOUT, 10);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $data = curl_exec($curl);
        if (curl_errno($curl)) {
            return curl_error($curl);
        }
        curl_close($curl);
        if($returnCookie){
            list($header, $body) = explode("\r\n\r\n", $data, 2);
            preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);
            $info['cookie']  = substr($matches[1][0], 1);
            $info['content'] = $body;
            return $info;
        }else{
            return $data;
        }
    }

亲测结果

image.png

官方链接:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html

上一篇下一篇

猜你喜欢

热点阅读