微信授权登录(yii)

无需下载API
1.想用弹框显示需要引入以下js
<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
<script type="text/javascript">
var obj = new WxLogin({
id:"login_container", (放入二维码的容器)
appid: "wx4b742b1343288747",
scope: "snsapi_login",
redirect_uri: "http%3A%2F%2Fwww.zgduokong.com",(回调页面)
state: "1343288747",
style: "",
href: ""
});
 
$(function(){
html=$("#login_container").html();
$("#weixin").click(function(){
layer.open({
type: 1,
content:html,
title: ['微信扫码登录',' height:50px; line-height:50px; font-size:14px; color:#999; background:none;'],
area: ['449px','459px'],
});
})
})
</script>
2.html(<a href="javascript:;" id="weixin"></a>)
3.回调页面处理
if(yii::$app->request->get('state')=="1343288747" || Yii::$app->session['wxlogin']=="wx"){
Yii::$app->session['wxlogin']="wx";
$opeen="wx4b742b1343288747";
$appscreat="37e683507650a33bfc77a9fa0b13ee17";
$code=yii::$app->request->get('code');
$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=$opeen&secret=$appscreat&code=$code&grant_type=authorization_code";
$url=file_get_contents($url);
$tokenarr=json_decode($url,true);
if(Yii::$app->session['access_token']){
$access_token=Yii::$app->session['access_token'];
$openid=Yii::$app->session['openid'];
}
else{
$access_token=$tokenarr['access_token'];
$openid=$tokenarr['openid'];
Yii::$app->session['access_token']=$access_token;
Yii::$app->session['openid']=$openid;
}
$this->weixinlogin($access_token,$openid);
}
 
处理方法
public function weixinlogin($access_token,$openid){
$user="https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid";
$user=file_get_contents($user);
$user=json_decode($user,true);
$user_model=new AdminMember();
$userinfo=AdminMember::find()->where("openid='$openid'")->one();
if($userinfo){
$userinfo->logdates=time();
$userinfo->logip=CommonFun::getClientIp();
$userinfo->head_img=$user['headimgurl'];
$userinfo->nickname=$user['nickname'];
$userinfo->sex = $user['sex'];
if($userinfo->save()){
Yii::$app->session['islogin'] = 'true';
Yii::$app->session['userid'] = $userinfo->id;
Yii::$app->session['username'] = $userinfo->usersname;
Yii::$app->session['nickname'] = $userinfo->nickname;
}
else{
var_dump($userinfo->getErrors());
exit();
}
}
else{
$user_model->nickname=$user['nickname'];
$user_model->sex = $user['sex'];
$user_model->head_img=$user['headimgurl'];
$code = $user_model->Random_code();
$user_model->vatation_code=$code;
$user_model->dates=time();
$user_model->openid=$openid;
if($user_model->save()){
Yii::$app->session['islogin'] = 'true';
Yii::$app->session['userid'] = $user_model->id;
Yii::$app->session['username'] = $user_model->usersname;
Yii::$app->session['nickname'] = $user_model->nickname;
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值