网站集成微信扫码登录

发布时间:2020-12-21 18:36:36 阅读:1087次

经常看到网站有集成微信扫码登录的功能,觉得非常方便

不过此功能只对企业开放

肯定是先要申请了,默默等待审核通过即可

首先生成二维码

[root@web_test public]# cat wxlogin.html 
<span id="login_container"></span>
<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
<script> 
var obj = new WxLogin(
{
    id: "login_container",
    appid: "wxe1***57967371ca5",
    scope: "snsapi_login",
    redirect_uri: encodeURIComponent("http://www.test.com/login.php"), state: Math.ceil(Math.random()*1000),
    style: "black",
    href: ""
}
);
</script>

扫码后调用以下代码

[root@web_test public]# cat login.php 
<?php
login();
function login(){
    $code = $_GET['code'];
    $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxe1***57967371ca5&secret=820515d51c5d***ec5242516206f2ece&code=".$code."&grant_type=authorization_code";
    $access_token = curl_get($url);
    if (!$access_token || isset($access_token['errcode'])){
        return json(['code'=>0,'message'=>'登录失败']);
    }
    $url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token['access_token']."&openid=".$access_token['openid'];
    $user = curl_get($url);
    if (!$user){
        return json(['code'=>0,'message'=>'登录失败']);
    }
    echo "<pre>";
    echo "<img src=".$user['headimgurl'].">";
    print_r($user);
}        
function curl_get($url){
    $header = array(
        'Accept: application/json',
    );
    $curl = curl_init();
    //设置抓取的url
    curl_setopt($curl, CURLOPT_URL, $url);
    //设置头文件的信息作为数据流输出
    curl_setopt($curl, CURLOPT_HEADER, 0);
    // 超时设置,以秒为单位
    curl_setopt($curl, CURLOPT_TIMEOUT, 1);
    // 超时设置,以毫秒为单位
    // curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500);
    // 设置请求头
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    //设置获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    //执行命令
    $data = curl_exec($curl);
    // 显示错误信息
    if (curl_error($curl)) {
        return false;
    } else {
        // 打印返回的内容
        return json_decode($data,true);
    }
}
?>

这里扫码成功后会显示当前网友的信息及显示一个大头贴

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:网站集成微信扫码登录 出自老鄢博客 | 欢迎分享