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

1,获取code

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

var appid="{:C('WX_APPID')}";
var back_url="{:U('wx_signback')}";
window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appid+"&redirect_uri=http://www.baidu.cn"+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.weixin.qq.com/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.weixin.qq.com/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;
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值