扫码登录/微信游览器授权登录
if (isMobile()){
//微信内
<a href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=地址&response_type=code&scope=snsapi_userinfo&state=a-zA-Z0-9&connect_redirect=1#wechat_redirect" class="fa fa-weixin" title="微信登录"></a>
header('Content-Type: text/html; charset=utf-8');
$code = input('code');
$state = input('state');
$appid='';
$appsecret='';
$token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&grant_type=authorization_code';
$token = getJson($token_url);
$access_token_url = 'https://api.weixin.qq.com/sns/oauth2/refresh_token?appid='.$appid.'&grant_type=refresh_token&refresh_token='.$token['refresh_token'];
//转成对象
$access_token = getJson($access_token_url);
$user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token['access_token'].'&openid='.$access_token['openid'].'&lang=zh_CN';
$user_info_url=iconv('ISO-8859-1','UTF-8',$user_info_url);
$user_info = getJson($user_info_url);
$rs = json_decode(json_encode($user_info),true);//返回的json数组转换成array数组
session('openids',$rs['openid']);
$data=array(
'openid'=> $rs['openid'],
'wx_username'=>$rs['nickname'],
'wx_img'=>$rs['headimgurl'],
'wx_dz'=>$rs['country'].$rs['province'].$rs['city'],
'unionid'=>$rs['unionid'],
);
$b=db('wx_users')->where('unionid',$data['unionid'])->find();
if ($data['unionid']!=$b['unionid']) {
$a = db('wx_users')->insert($data);
}
$c=db('wx_users')->where('unionid',$data['unionid'])->find();
session('wx',$c);
$this->redirect('home/index/index');
}else{
//pc扫码登录
<a href=" https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=地址&response_type=code&scope=snsapi_login&state=生成STATE#wechat_redirect" class="fa fa-weixin" title="微信登录"></a>
header('Content-Type: text/html; charset=utf-8');
ini_set('allow_url_fopen','On');
ini_set('allow_url_include','On');
$code = input('code');
$state = input('state');
//换成自己的接口信息
$appid='wxe0e445cbb8d16f05';
$appsecret='22b2b77103402134d5ccbaef8f5b06f5';
if (empty($code)) $this->error('授权失败');
$token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&grant_type=authorization_code';
$token = getJson($token_url);
if (isset($token['errcode'])) {
echo '<h1>错误:</h1>'.$token['errcode'];
echo '<br/><h2>错误信息:</h2>'.$token['errmsg'];
exit;
}
$access_token_url = 'https://api.weixin.qq.com/sns/oauth2/refresh_token?appid='.$appid.'&grant_type=refresh_token&refresh_token='.$token['refresh_token'];
//转成对象
$access_token = getJson($access_token_url);
if (isset($access_token->errcode)) {
echo '<h1>错误:</h1>'.$access_token->errcode;
echo '<br/><h2>错误信息:</h2>'.$access_token->errmsg;
exit;
}
$user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token['access_token'].'&openid='.$access_token['openid'].'&lang=zh_CN';
$user_info_url=iconv('ISO-8859-1','UTF-8',$user_info_url);
//转成对象
$user_info = getJson($user_info_url);
if (isset($user_info->errcode)) {
echo '<h1>错误:</h1>'.$user_info->errcode;
echo '<br/><h2>错误信息:</h2>'.$user_info->errmsg;
exit;
}
$rs = json_decode(json_encode($user_info),true);//返回的json数组转换成array数组
//打印用户信息
$data=array(
'openid'=> $rs['openid'],
'wx_username'=>$rs['nickname'],
'wx_img'=>$rs['headimgurl'],
'wx_dz'=>$rs['country'].$rs['province'].$rs['city'],
'unionid'=>$rs['unionid'],
);
$b=db('wx_users')->where('unionid',$data['unionid'])->find();
if ($data['unionid']!=$b['unionid']) {
$a = db('wx_users')->insert($data);
}
$c=db('wx_users')->where('unionid',$data['unionid'])->find();
session('wx',$c);
$this->redirect('home/index/index');
}
// curl转数组
function getJson($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output, true);
}
最后更新于 2018-07-06 16:35:21 并被添加「」标签,已有 817 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
此处评论已关闭