在公众号的配置过程中,许多开发者会在菜单中加入HTML5页面,有时在页面内需要访问页面的用户信息,此时就需要网页授权获取用户基本信息
提醒大家:本文介绍讲述的内容是基于yii2.0框架
1、设置授权回调域名:开发 ---> 接口权限
找到“网页授权获取用户基本信息”,点击后面对应的“修改”,在弹框响应位置填写授权回调域名即可,此处的域名不需要加http:// (关于网页授权回调域名的说明详情可参考公众平台开发者文档)
2、获取授权
关于OAuth2.0博主参考的是方倍工作室的博文http://www.cnblogs.com/txw1958/p/weixin71-oauth20.html(PS:方倍是一个微信开发大神,其中的微信开发内容还是比较详细的,推荐参考),其中详细剖析了微信官方文档的相关内容,也提供了获取授权的更详细思路和方案。
实际上,获取用户信息的关键在于获取用户的openid。博主想要实现用户点击公众号菜单打开页面即可自动授权,从而针对该用户进行数据库操作,于是有下面两种方式:
(1)利用自定义菜单请求授权页面
自定义菜单后面会单独写一篇博文,在这里先简述一下通过自定义菜单进行授权,该方法需要高级接口权限,且局限于关注公众号的用户直接从菜单进入页面。
$menu = '{ "button":[ { "type": "view", "name": "商城", "url": "https://open.weixin.qq.com/connect/oauth/authorize" }, { "name":"快递服务", "sub_button":[ { "type":"click", "name":"发快递", "key":"express" }, { "type":"click", "name":"快递查询", "key":"ww" } ] }, ] }';
需要授权的view直接在url处填写微信提供的授权请求地址,其中:
"htmlcode">
<"htmlcode"><"htmlcode"><"htmlcode"><"Content-type: text/html; charset=gbk"); //获取用户信息 if(count($token) != ) { $response = $re->userinfo($token['access_token'], $token['openid']); $user = json_decode($response,true); //用户昵称转换 //$user['nickname'] = EmojiTool::emoji_trans($user['nickname']); if($model = User::findOne(['openid' => $user['openid'] ])) { //用户已存在更新数据 $model->attributes = $user; $model->modify_time = time(); $model->save(false); }else{ //用户不存在写入 $model = new User; $model->attributes = $user; $model->create_time = time(); $model->save(false); } } return isset($model->id) "htmlcode">/** * 产品列表 * @return object 所有可用产品信息 */ public function actionIndex(){ //判断页面是否自动刷新 if(isset($_GET['state'])) { $refresh = ; }else{ $refresh = ; } //获取用户code $user = new UserinfoClass; $request = $user->getCode('r=store/index', ); //该用户userid $userid = $user->info($request[]); $model = new Product; $list = $model->find()->where(['status' => ])->all(); return $this->render('index',['list' => $list, 'refresh' => $refresh, 'userid' => $userid, 'request' => $request]); }程序要求用户打开产品列表即获取用户信息并存入数据库,其中设计了几个变量作用如下:
$refresh:判断页面是否刷新,由于首次打开页面未进行oauth验证时才自动请求验证,避免反复刷新,这里用回调的state参数作为判断依据且设state=1(若有特定参数需要可将state赋值为所需值);
$request:即为验证请求地址
f. 视图自动刷新
只需要在视图中添加以下js代码即可
<script type="text/javascript"> //自动请求获取code $(function(){ var refresh = <?= $refresh; ?>; var request = '<?= $request[]; ?>'; if(refresh == ){ console.log(); location = request; } }); </script>以上内容给大家介绍了微信开发之网页授权获取用户信息(二)的全部叙述,希望本文分享能够给大家带来帮助。
DDR爱好者之家 Design By 杰米
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]