2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 微信公众号关注后直接登录网站

微信公众号关注后直接登录网站

时间:2021-08-21 13:05:23

相关推荐

微信公众号关注后直接登录网站

1,获取code

在要实现的地方调用最后的网址,这里需要两项,appid和返回的网址

var appid="{:C('WX_APPID')}";

var back_url="{:U('wx_signback')}";

window.location.href="https://open./connect/oauth2/authorize?appid="+appid+"&redirect_uri="+back_url+"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";

2,在返回的网址里获取登录者的信息写到数据,

//微信一键登录

public function wx_signback(){

//获得code

$code=$_GET['code'];//获取code

$access_token_url="https://api./sns/oauth2/access_token?appid=".C('WX_APPID')."&secret=".C('WX_APPSECRET')."&code=".$code."&grant_type=authorization_code";

$access_token=$this->curl_data($access_token_url);//获取access_token和openid

$user_url="https://api./sns/userinfo?access_token=".$access_token['access_token']."&openid=".$access_token['openid']."&lang=zh_CN";

$user_info=$this->curl_data($user_url);//获取微信的客户信息

$db_user=M("user");

$user_openid=$user_info['openid'];//openid

$user_title=$user_info['nickname'];//昵称

$user_sex=$user_info['sex'];//性别

$user_city=$user_info['city'];//市

$user_province=$user_info['province'];//省份

$user_country=$user_info['country'];//国家

$user_image=$user_info['headimgurl'];//头像

$data_user=array(

'username'=>$user_openid,

'nickname'=>$user_title,

'user_sex'=>$user_sex,

'user_picture'=>$user_image

);

$db_user->where("id=".$this->UID)->save($data_user);

redirect(U("reg_step"));

}

//curl方法

public function curl_data($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);

$info_result=json_decode($output,true);

return $info_result;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。