争怎路由网:是一个主要分享无线路由器安装设置经验的网站,汇总WiFi常见问题的解决方法。

java完成微信小程序登录态维护

时间:2024/1/24作者:未知来源:争怎路由网人气:

"".equals(ret)) { logger.info("网络超时"); renderJson(new OutRoot().setCode("101").setMsg(SYS.CONTACT_FAIL)); } else { JSONObject obj = JSONObject.parseObject(ret); if (obj.containsKey("errcode")) { String errcode = obj.get("errcode").toString(); logger.info("微信返回的错误码{}", errcode); renderJson(new OutRoot().setCode("101").setMsg(SYS.CONTACT_FAIL)); } else if (obj.containsKey("session_key")) { logger.info("调微信成功"); // 开始处理userInfo String openId = obj.get("openid").toString(); Record tbMember = new Record(); tbMember.set("weixin_openid", openId); System.out.println("openId==" + openId); // 先查询openId存在不存在,存在不入库,不存在就入库 List<Record> memberList = tbMemberService.selectMember(tbMember); if (memberList != null && memberList.size() > 0) { logger.info("openId已经存在,不需要插入"); } else { JSONObject rawDataJson = reqJson.getJSONObject("userInfo"); String nickName = rawDataJson.getString("nickName"); String avatarUrl = rawDataJson.getString("avatarUrl"); String gender = rawDataJson.getString("gender"); String province = rawDataJson.getString("province"); String city = rawDataJson.getString("city"); String country = rawDataJson.getString("country"); tbMember.set("gender", gender); tbMember.set("nick_name", nickName); tbMember.set("avatar_url", avatarUrl); Long openId2 = tbMemberService.addMember(tbMember); logger.info("openId不存在,插入数据库"); } // (1) 获得sessionkey String sessionKey = obj.get("session_key").toString(); logger.info("sessionKey==" + sessionKey); logger.info("openId==" + openId); // (2) 得到sessionkey以后存到缓存,key值采用不会重复的uuid String rsession = UUID.randomUUID().toString(); Cache tokenCache = Redis.use("redis_00"); // (3) 首先根据openId,取出来之前存的openId对应的sessionKey的值。 String oldSeesionKey = tokenCache.getJedis().get(openId); if (oldSeesionKey != null && !"".equals(oldSeesionKey)) { logger.info("oldSeesionKey==" + oldSeesionKey); // (4) 删除之前openId对应的缓存 tokenCache.getJedis().del(oldSeesionKey); logger.info("老的openId删除以后==" + tokenCache.getJedis().get(oldSeesionKey)); } // (5) 开始缓存新的sessionKey: key --> uuid, value --> sessionObj JSONObject sessionObj = new JSONObject(); sessionObj.put("openId", openId); sessionObj.put("sessionKey", sessionKey); tokenCache.getJedis().set(rsession, sessionObj.toJSONString()); // (6) 开始缓存新的openId与session对应关系 : key --> openId , value --> rsession tokenCache.getJedis().set(openId, rsession); String newOpenId = tokenCache.getJedis().get(openId); String newrSession = tokenCache.getJedis().get(rsession); logger.info("新的openId==" + newOpenId); logger.info("新的newrSession==" + newrSession); // (7) 把新的sessionKey返回给小程序 JSONObject objret = new JSONObject(); objret.put("rdSessionKey", rsession); objret.put("errno", 0); renderJson(objret); } } } } }

项目框架是我比较喜欢Jfinal,java轻量级急速开发框架,非常高效,也推荐给大家。可能有哪些遗漏的地方欢迎大家积极提出意见和批评。

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

关于微信小程序的登陆流程

微信小程序之小豆瓣图书的介绍

以上就是java实现微信小程序登录态维护的详细内容,更多请关注php中文网其它相关文章!


小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。



关键词:java完成微信小程序登录态维护




Copyright © 2012-2018 争怎路由网(http://www.zhengzen.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版