一起艳学Springboot开发微信公众号(三)——登录授权和创建菜单
2017-12-31 14:49
363 查看
一起艳学Springboot开发微信公众号(三)——登录授权和创建菜单
获取日志
String type = ""; String url = request.getRequestURL().toString(); if(url.contains("index.html")){ type = "规则页面"; } String ip = _ipUtil.getRemoteHost(request); BaiduMap a = _mapUtil.getBaiduMapByIp(ip); WxLog wxLog = new WxLog(ip, a.getResult().getAd_info().getNation(), a.getResult().getAd_info().getProvince(), a.getResult().getAd_info().getCity(), a.getResult().getLocation().getLat()+"", a.getResult().getLocation().getLng()+"", url, request.getHeader("user-agent"), type, new Date(), ip, ""); if (wxLogService == null) {//解决service为null无法注入问题 BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext()); wxLogService = (WxLogService) factory.getBean("wxLogService"); } wxLogService.insert(wxLog);
登录授权
String code = request.getParameter("code"); String get_token_url = _wxApiUtil.WX_OAUTH2_TOKEN.replace("APPID", appId).replace("SECRET", appSecret).replace("CODE", code); String accJson = _httpUtil.doHttpGet(get_token_url); Map accMap = (Map) _jsonUtil.json2Bean(accJson, Map.class); String openid = (String) accMap.get("openid"); String access_token = (String) accMap.get("access_token"); WebApplicationContext webContext = ContextLoader.getCurrentWebApplicationContext(); WxUserService userService = (WxUserService) webContext.getBean("wxUserService"); user = userService.findByOpenId(openid); if(user == null){ String get_user_url = _wxApiUtil.WX_GET_USERINFO.replace("ACCESS_TOKEN", access_token).replace("OPENID", openid); String userJson = _httpUtil.doHttpGet(get_user_url); Map userMap = (Map) _jsonUtil.json2Bean(userJson,Map.class); //获取用户信息 String openId = (String) userMap.get("openid"); String nickname = (String) userMap.get("nickname"); Integer sex = (Integer) userMap.get("sex"); String province = (String) userMap.get("province"); String city = (String) userMap.get("city"); String country = (String) userMap.get("country"); String language = (String) userMap.get("language"); String headImgUrl = (String)userMap.get("headimgurl"); nickname = EmojiFilter.filterEmoji(nickname); user = new WxUser(null, openId, new Date(), nickname, sex, country, province, city, language, headImgUrl, Global.STATUS_1); userService.insert(user); }
创建菜单
String accessToken = (String) redisTokenHelper.getObject("global_token"); // Menu menu = MenuUtil.getMenu(); ViewButton cb_1 = new ViewButton(); cb_1.setName("艳辉网"); cb_1.setType("view"); String WX_URL = dicMapper.findByCode(Global.WX_NGROK_URL); cb_1.setUrl(WX_URL+"wx/index.html"); Menu menu=new Menu(); menu.setButton(new ViewButton[]{cb_1}); int status = _wxApiUtil.createMenu(menu,accessToken);
关注与取消关注事件
WxUser wxUser = wxUserMapper.findByOpenId(fromUserName); if(wxUser == null){ String accessToken = (String) redisTokenHelper.getObject("global_token"); wxUser = _wxApiUtil.getUserInfo(accessToken, fromUserName); wxUser.setAddTime(addTime); wxUser.setIsFocus(Global.STATUS_1); //设置昵称 String nickName = EmojiFilter.filterEmoji(wxUser.getNickname()); wxUser.setNickname(nickName); wxUserMapper.insert(wxUser); Integer userId = wxUser.getId(); WxUserFocus wxUserFocus = new WxUserFocus(null, userId, addTime, Global.STATUS_1); //关注 wxUserFocusMapper.insert(wxUserFocus); }else{ Integer userId = wxUser.getId(); WxUserFocus wxUserFocus = new WxUserFocus(null, userId, addTime, Global.STATUS_1); wxUserFocusMapper.insert(wxUserFocus); } newsMessage = getFirstArticle(newsMessage, articleList, WX_URL); respMessage = MessageUtil.messageToXml(newsMessage); type = "微信关注"; } // 取消关注 else if (eventType.equals(MessageUtil.EVENT_TYPE_UNSUBSCRIBE)) { WxUser wxUser = wxUserMapper.findByOpenId(fromUserName); wxUser.setIsFocus(Global.STATUS_0); wxUserMapper.update(wxUser); Integer userId = wxUser.getId(); WxUserFocus wxUserFocus = new WxUserFocus(null, userId, addTime, Global.STATUS_0); wxUserFocusMapper.insert(wxUserFocus); type = "取消关注"; }
注意:需要所有源代码,可加QQ490647751获取微信二维码,扫一扫关注并回复‘java福利一起艳学Springboot开发微信公众号(三)——登录授权和创建菜单’获取。
相关文章推荐
- 和小猪一起搞微信公众号开发—创建自定义菜单
- 和小猪一起搞微信公众号开发—二维码创建使用流程(需要授权)
- 微信公众号网页开发中,EasyWechat + laravel5.5 auth实现授权注册账号,自动登录
- 一起艳学Springboot开发微信公众号(二)
- 微信公众号开发之菜单的创建,删除和查询
- Django微信公众号开发(一)公众号内网页授权登录后微信获取用户信息
- 微信公众号开发--获取网页授权并自定义菜单点击获得openid跳转
- 微信开发第五篇手机端微信公众号自定义菜单及OAuth2.0授权页面
- java版微信公众号开发之自定义菜单的创建
- 微信公众号开发(五)创建自定义菜单
- [置顶] 基于springboot+mybatis的微信公众号开发第四篇-自定义菜单的查询、创建、删除及菜单事件响应
- 微信公众号开发之创建自定义菜单
- 关于Java开发微信公众号-菜单创建-1
- 微信公众号第三方开发之三创建一键登录页授权给第三方平台
- php之微信公众号开发(一)接入微信验证和创建自定义菜单
- 微信公众号开发 自定义菜单创建
- 微信公众号开发系列-发展模式,创建自己的自定义菜单
- 关于Java开发微信公众号-菜单创建-2
- 微信公众号Java开发4——创建菜单
- .NET微信公众号开发-2.0创建自定义菜单