企业微信实现扫码登录

企业微信实现扫码登录一:获取扫码登陆所需的参数:appid,secret,agentid登录企业微信:https://work.weixin.qq.com/扫码登录文档:https://work.weixin.qq.com/api/doc/90000/90135/909881:获取appid点击我的企业就可以看到企业ID信息,这就是appid2:获取secret和agentid(1):点击应用管理-》点击创建应用(2):应用创建完成之后我们就可以在应用中看到secret和agentid

一:获取扫码登陆所需的参数:appid,secret,agentid

登录企业微信:https://work.weixin.qq.com/

扫码登录文档:https://work.weixin.qq.com/api/doc/90000/90135/90988

1:获取appid

点击我的企业就可以看到企业ID信息,这就是appid

appid.jpg

2:获取secret和agentid

(1):点击应用管理-》点击创建应用

TIM截图20200617112401.jpg

(2):应用创建完成之后我们就可以在应用中看到secret和agentid

TIM截图20200617112433.jpg

二:上传企业微信二维码

(1):引入企业微信js

<script src="http://rescdn.qqmail.com/node/ww/wwopenmng/js/sso/wwLogin-1.0.0.js"></script>

(2):html

<div id="wx_login"></div>

(3):扫码js

window.WwLogin({
    "id" : "wx_login",
    "appid" : "XXX",//appid
    "agentid" : "XXX",//agentid
    "redirect_uri" :"XXX",//回调地址,注意回调地址需要进行urlencode
    "state" : "XXXX",//用于保持请求和回调的状态,授权请求后原样带回给企业。该参数可用于防止csrf攻击,参数非必填
    "href" : "XXXX",//自定义样式链接,企业可根据实际需求覆盖默认样式,参数非必填
});

根据如上就可以显示出企业微信的二维码

image.png

三:扫码回调接收

企业微信扫码显示后,手机使用企业微信进行扫码确认后,这时候我们的回调地址会接收到企业微信的回调信息,回调信息里有code参数,我们可以根据code获取扫码用户的一些基本信息,这里我使用php来实现,:

$state = $_GET['state'];
//判断显示扫码的state值和回调获取的state值是否相同
if ($state == 'XXX') {
//根据appid和secret获取access_token
$appid = 'XXX';
    $secret = 'XXX';
    $url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid='.$appid.'&corpsecret='.$secret;
    $token = $this->https_request($url);
    $accessToken = $token['access_token'];
    //根据code和access_token获取成员信息
    $code = $_GET['code'];
    $url = 'https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token='. $accessToken .'&code=' . $code;
    $usersinfo = $this->https_request($url);
    //判断获取成员信息是否成功
    if ($usersinfo['errcode'] == 0) {
    if (isset($usersinfo['UserId'])) {
    //企业用户
    //我们可以根据用户信息实现扫码登录,具体代码不进行叙述
    } else {
    //非企业用户
    }
    } else {
    echo '验证错误';
    }
} else {
echo '验证错误';
}

上面的代码使用了https_request方法,方法如下:

/**
 * curl
 */
public function https_request($url){
    $curl=curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data=json_decode(curl_exec($curl), true);
    // $data=curl_exec($curl);
    curl_close($curl);
    return $data;
}

根据如上我们就可以实现扫码登录功能了

今天的文章企业微信实现扫码登录分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/10137.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注