时间资源网
首页 > 分享 > 详情

ThinkPHP base型授权

编辑时间:2018-10-31作者:水草浏览:625来源:[原创]
<?php
namespace Home\Controller;

use Think\Controller;

class Wx3Controller extends Controller{

    public function index(){
        //base型授权
        $appid="wx9fe94d34b07f546f";
        $appscret="cf9bda2646454a5ff212eb0dc685762d";
        $redirect_uri='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
        $redirect_uri=urlencode($redirect_uri);
        //获取code
        $snsapi_userinfo_url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=123&connect_redirect=1#wechat_redirect";

        if(!isset($_GET['code'])){
            header('location:'.$snsapi_userinfo_url);
        }
        $code=$_GET['code'];
        $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appscret&code=$code&grant_type=authorization_code";
        //获取用户openid以及access_token
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 500);
        // 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
        // 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_URL, $url);
        $res = curl_exec($ch);
        curl_close($ch);
        $result=json_decode($res,true);
        $access_token=$result['access_token'];
        $openid=$result['openid'];
        $userinfo_url="https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";

        //拉取用户信息
        $ch1 = curl_init();
        curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch1, CURLOPT_TIMEOUT, 500);
        // 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
        // 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。
        curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch1, CURLOPT_URL, $userinfo_url);
        $res1 = curl_exec($ch1);
        curl_close($ch1);
        $result1=json_decode($res1,true);
        return $result1;
        // var_dump($result1);

    }

    public function getinfo(){
        $info = $this->index();
        var_dump($info);
    }

}


赏一个 踩踩(0)
感谢你的评价!
请明天再来哦!
抱歉,请登录!

注:此网站为个人资源共享网站,资源为会员投递和管理员发布,大多来源于网络,并非本人原创,如侵犯到您的权益,请及时联系本站删除,本站不负任何法律责任!

本作品是由 时间资源网 资源共享网 管理员 的投递作品。

欢迎转载,但请务必注明来源地址:http://www.perfind.cn/content_1/101.html。

抱歉,您需要-登录-后方可进行评论!