微信,作为三方接口的处理逻辑。以下是个人项目处理的逻辑,欢迎大家吐槽!

这边展示项目部分代码

 /*** 微信 登录与注册* @param request  请求* @param code     要解析的code,或 已解析的 openid* @param nickName 昵称* @return*/public Map<String,Object> wxLogin(HttpServletRequest request,String code,String nickName){Map<String,Object> map=new HashMap<>();//判断是否存在请求头String key=CookieUtil.getKeyFromTokenCookie(request);User user=null;if (key ==""){ //请求头无值JsCodeDto jsCodeDto= WeChatUtil.getCode(code);//解析 codeThrowException.illegal(jsCodeDto.getOpenid()==null,"code解析失败");//判断openid是否存在(是否注册过)Third third = thirdMapper.queryThirdByOpenId(jsCodeDto.getOpenid());if (third==null){//不存在,做注册注册操作user=new User();user.setOrg(0);user.setIsValid(0);//时间处理Date date=new Date();Calendar rightNow = Calendar.getInstance();rightNow.setTime(date);rightNow.add(Calendar.DAY_OF_YEAR,30);//日期加30天Date addDate=rightNow.getTime();//写入时间user.setExpireDate(addDate);user.setCreateDate(date);user.setUpdateDate(date);ThrowException.illegal(userMapper.insertSelective(user)<1,"添加用户表失败!");//写入thirdthird=new Third();third.setUserId(user.getId());third.setNickname(nickName);third.setOpenid(jsCodeDto.getOpenid());third.setSessionKey(jsCodeDto.getSession_key());int row= thirdMapper.insertSelective(third);if (row<1){userMapper.deleteByPrimaryKey(user.getId());new ParamsException("添加三方表失败");}map.put("uuid",setRedis(user,nickName));//写入redismap.put("openid",jsCodeDto.getOpenid());}else{//存在,做查询操作user=userMapper.selectByPrimaryKey(third.getUserId());map.put("uuid",setRedis(user,nickName));map.put("openid",third.getOpenid());}}else{//有请求头,表明之前注册过Long expire=redisUtil.getExpire(key);//判断是发存在redisif (expire<=0){//时间已经过期Third third = thirdMapper.queryThirdByOpenId(code);//code就是openiduser=userMapper.selectByPrimaryKey(third.getUserId());map.put("uuid",setRedis(user,nickName));map.put("openid",code);}else{//存在map.put("uuid",key);map.put("openid",code);}}return map;}

微信三方登录与注册逻辑处理相关推荐

  1. 企业微信三方开发:注册企业微信服务商

    其他链接 初识微信开发 企业微信三方开发:注册企业微信服务商 企业微信三方开发(一):回调验证及重要参数获取 企业微信三方开发(二):获取access_token 企业微信三方开发(三):网页授权登录 ...

  2. 兄弟们,就是干 微信三方登录绝对干货

    微信第三方登录绝对干货 课程介绍 1. 用户登录-账号登录;(掌握) 2. 三方登录概述;(理解) 3. 三方登录协议-Oauth2.0;(了解) 4. 三方登录选择-微信三方登录;(掌握) ...

  3. 微信php第三方登录接口,ThinkPHP实现微信三方登录

    小插曲就是app做微信三方登录是很久之前,后面又添加了PC的微信三方登陆,而文档上说unionid是同一个账号下不同应用统一的,但是app拿的是uid,导致pc拿的unionid始终对不上,导致浪费了 ...

  4. 拉起微信三方登录,详细实现步骤

    概述:本篇文章详细记录网页做微信登录的功能 用户一次扫微信登录,直接拉取回调页面,绑定手机号,后端处理数据,为用户生成密码,短信告知用户. 用户第二次扫码.直接登录成功. 这次三方登录利用的Sprin ...

  5. 微信三方登录相关(Swift)

    微信登录条件 1.微信开放平台注册并认证成功(每年300RMB) 2.相关应用的微信的APPID和secret 3. 遵循微信代理WXApiDelegate 使用处编写相关登录代码 WXApi.reg ...

  6. 企业微信三方开发(三):网页授权登录

    其他链接 初识微信开发 企业微信三方开发:注册企业微信服务商 企业微信三方开发(一):回调验证及重要参数获取 企业微信三方开发(二):获取access_token 企业微信三方开发(三):网页授权登录 ...

  7. 企业微信三方开发(五):扫码登录

    其他链接 初识微信开发 企业微信三方开发:注册企业微信服务商 企业微信三方开发(一):回调验证及重要参数获取 企业微信三方开发(二):获取access_token 企业微信三方开发(三):网页授权登录 ...

  8. 企业微信三方开发(四):发送消息

    其他链接 初识微信开发 企业微信三方开发:注册企业微信服务商 企业微信三方开发(一):回调验证及重要参数获取 企业微信三方开发(二):获取access_token 企业微信三方开发(三):网页授权登录 ...

  9. 微信授权登录mock(在没有真实微信账号的情况下测试大量微信账户授权登录的情况)...

    场景介绍 对于构建在微信公众号的系统,帐号体系往往使用微信授权登录(如各类微信商城应用系统). 这样操作不仅可以实现静默注册,对用户几乎是无感的,同时也达到了区分用户,获取用户基本信息(头像,昵称等) ...

最新文章

  1. 轻松应对Java试题,这是一份大数据分析工程师面试指南
  2. id jquery 拼接_jquery拼接ajax的json和字符串的方法
  3. webpack中loader加载器配置postCss自动添加CSS兼容前缀
  4. 【Linux 内核 内存管理】优化内存屏障 ① ( barrier 优化屏障 | 编译器优化 | CPU 执行优化 | 优化屏障源码 barrier 宏 )
  5. 华为鸿蒙编程:如何显示网络图片
  6. 机器学习基础——实现基本的决策树
  7. MIPS衰落 LoongArch崛起
  8. 学习OpenStack之 (4): Linux 磁盘、分区、挂载、逻辑卷管理 (Logical Volume Manager)
  9. Python 字符串与二进制串的相互转换
  10. Python 高级--面向对象
  11. python图书馆系统借书验证登陆功能
  12. VS 配置Directx
  13. 计算机网络分开哪些阶段,物联网的发展可以分为哪四个阶段?
  14. EXCEL中所有函数的使用
  15. Redis文档--详解redis
  16. 典型概率分布(pdf公式和图示)
  17. 测试场景设计-测试方法论
  18. 纺织服装产业实现智能制造升级
  19. c语言sub函数是什么,用$Super$$和$Sub$$对函数进行重定义
  20. addon游戏_addon_game_mode游戏基本情况设置

热门文章

  1. python 3.4.3 下载安装与环境配置
  2. MySQL最常用数据引擎(InnoDB、MylSAM、MEMORY)详解及如何选择合适的存储引擎
  3. 骁龙865和麒麟990哪个好
  4. Http和Https的区别(面试题)
  5. js获取时间戳的几种方式、时间转时间戳
  6. 梨花姐姐又出新诗了!!!
  7. VUE路由去掉“#”
  8. keil c51问答
  9. 为什么买苹果手机盒子里都会附有苹果logo贴纸?干嘛用的?
  10. 电竞显示器什么牌子好?这三款才是我的菜!