php企业微信获取用户信息,thinkphp开发根据企业号开发者文档获取企业微信用户信息

新建企业,创建应用

第一步:新建企业

这里登录企业微信官网

企业微信

直接就可以注册一个企业微信了

第二步:创建应用

这里使用企业微信可能自己的公司会有一些定制化的功能,想把自己的功能放到企业微信里面,这时候就可以在企业微信里面创建应用,嵌入自己的功能了

配置应用

获取当前登录用户信息

流程步骤:

第一步:获取access_token

第二步:在应用上写回调接口,用来接受code

第三步:获取code

第四步:通过access_token和code获取用户信息(user_ticket)

第五步:通过通过access_token和user_ticket获取用户详情信息

需要看的接口文档:

开发前必读

开发前必读 - 接口文档 - 企业微信开发者中心

基本概念介绍

基本概念介绍 - 接口文档 - 企业微信开发者中心

获取access_token

获取access_token - 接口文档 - 企业微信开发者中心

其他的就自己看自己需要什么,再看对应的文档就可以了

代码:


//在企业微信应用里面调用的方法  获取个人信息
public function qyWxTest()
{

/* 参考接口
 https://developer.work.weixin.qq.com/document/path/91122*/


    $userResult = $this->authUser();
    $access_token = $this->getAccessToken();
    //$canshu =  $userid ;
    $param = array(
        "user_ticket" => $userResult['user_ticket'],
    );
    //$url = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=$access_token";
    $url = "https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail?access_token=$access_token";
    //$info = $this->https_request($url,$canshu);
    $info = Dhttp::curlJson($param,$url,'POST');  //这里是调用的post传json
    $this->render("Test:qyWxDkTest",array(
          'info' => $info,
     ));
}

//获取accessToken
public function getAccessToken() { //获取AccessToken的方法
 /*参考接口
https://developer.work.weixin.qq.com/document/path/91039*/


    $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=******************&corpsecret=************************";//获取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
    }
    //dump($access_token);
    return $access_token;
}

 //获取用户信息 获取code
    //构造网页授权链接
    public function authUser() {
/*  参考接口
  获取访问用户身份 - 接口文档 - 企业微信开发者中心

https://developer.work.weixin.qq.com/document/path/91022*/


        $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
        $redirecturl = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";//回调地址
        $redirecturl=urlencode($redirecturl);//对地址进行编码;
        if($_GET['code']){ //判断code是否获取到,如果以获取则获取userid,否则获取code。
            $accesstoken=$this->getAccessToken(); //调用上面获取access-token的方法
            $code=$_GET['code'];
            //$getuser="https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=".$accesstoken."&code=".$code;//获取userid的url。
            $getuser="https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=".$accesstoken."&code=".$code;//获取userid的url。
            $data=$this->https_request($getuser); //调用https_request方法请求得到userid。
            $data=json_decode($data,true); //将获取到的json格式的数据进行转化。(json_decode()方法不写后面参数true得到的是对象,写了参数true值得到的是数组)
            return $data;
        }else{ //获取code值
            $appid="********************";
            //$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirecturl."&response_type=code&scope=snsapi_base&state=12#wechat_redirect";
            $url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirecturl."&response_type=code&scope=snsapi_privateinfo&agentid=*********&state=12#wechat_redirect";
        header('Location:'.$url);
        }
}
    //curl方法
    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;

    }

​

这样就可以了   遇到问题可以到社区里面提问

https://developer.work.weixin.qq.com/community/question

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunsijia21983

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值