.wxml 中
<button bindtap="getUserProfile"> 获取头像昵称 </button>
.js中
getUserProfile(e) {
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
// 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
wx.getUserProfile({
desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
console.log(res);
let nick_name = res.userInfo.nickName;
let avatar_url = res.userInfo.avatarUrl;
wx.login({
//获取code 来与服务器交换 获取openid
success(ret){
console.log(ret)
let code = ret.code;
wx.request({
url: 'http://www.month.skill.com/api/login',
method:"POST",
data:{
code:code,
nick_name:nick_name,
avatar_url:avatar_url
},
success(e){
console.log(e)
//将用户信息保存到缓存里面
wx.setStorageSync('user', e.data.data)
},
fail(res){
wx.showToast({
title: '请求失败',
icon:'error'
})
}
})
}
})
},
fail(res){
wx.showToast({
title: '授权失败',
icon:"error"
})
}
})
}
php中
public function login()
{
//接收参数
$code = input('code');
$nickName = input('nick_name');
$avatarUrl = input('avatar_url');
//验证参数
if (empty($code) || empty($nickName) || empty($avatarUrl)){
return json(['status'=>500,'msg'=>'参数不能为空']);
}
//自己到微信公众平台获取
$appid = '自己到微信公众平台获取';
$secret = '自己到微信公众平台获取';
//获取openid
$url = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$secret}&js_code={$code}&grant_type=authorization_code";
$userInfo = json_decode(file_get_contents($url),true);
$userInfo['nick_name'] = $nickName;
$userInfo['avatar_url'] = $avatarUrl;
//根据获取的openid 来查看数据库 有的话更新 session_key 没有的话添加
$model = new Users();
$data = $model->where('openid',$userInfo['openid'])->find();
if ($data){
//存在数据 更新
$model->where('openid',$userInfo['openid'])->update(['session_key'=>$userInfo['session_key']]);
//获取用户id
$userInfo['user_id'] = $data['id'];
}else{
//不存在将用户信息添加入库 获取自增的id
$userInfo['user_id'] = $model->insertGetId($userInfo);
}
return json(['status'=>500,'msg'=>'success','data'=>$userInfo]);
}

1040

被折叠的 条评论
为什么被折叠?



