- [ ]具体代码流程如下

这里主要是放的代码实现,具体的思路流程在这篇文章
关于微信开发者工具无法调试的问题解决方案在篇文章
我这里是这样做的,前端拦截登录页面,当用户访问登录页面的时候,前端拦截拦截登录界面。访问我的接口 我返回一个获取code的链接
现在更新一下,有一个新的方法,就是省略前端拦截的那个方法,在企业微信里边直接设置好获取code的那个链接地址,然后让前端拿着code去请求你后台login接口就可以实现授权登录了,这种方法比较快一点,相当于是之拦截了一次页面就跳转了

// 字符串拼接好网址返回给前端@RequestMapping(value = "/qywxauth", method = RequestMethod.GET)public Result<String> qywxauth(HttpServletResponse response) throws Exception {//回调网址是你在企业微信应用配置的回调地址保持一致String reUrl = "http://oa.123.com";//获取方式静默授权,可选String scopetype = "snsapi_privateinfo";//请求code 路径String sUrl = qywxService.GET_CODE_URL;String wxurl = sUrl.replace("CORPID", corpId).replace("REDIRECT_URI", reUrl).replace("SCOPE", scopetype).replace("AGENTID", agentid);System.out.println(wxurl);return new Result<String>("v", "即将前往微信授权",wxurl);}

这里是获取access_token 的代码

public static Map<String, String> getAccessToken(String appid,String appsecret, String type) {Map<String, String> accessToken = null;String requestUrl = ACCESS_TOKEN_URL.replace("ID", appid).replace("SECRET", appsecret);//这里http请求代码区域我一会贴出来       String Obj = HttpClientUtil.httpGet(requestUrl, "UTF-8");JSONObject jsonObject = JSONObject.parseObject(Obj);// 如果请求成功if (null != jsonObject) {try {accessToken = new HashMap<String, String>();accessToken.put("token", jsonObject.getString("access_token"));accessToken.put("expiresin", jsonObject.getString("expires_in"));} catch (Exception e) {accessToken = null;// 获取token失败System.out.println("获取token失败 errcode:{"+ jsonObject.getIntValue("errcode") + "} errmsg:{"+ jsonObject.getString("errmsg") + "}");}}return accessToken;}

这里是获取用户userid 也就是用户信息的代码块

public String getUserInfo(String code) {String accessToken = getAccessToken(corpId, agentSecret, "app").get("token");// 1.获取请求的url,这里的网址我一会也都贴出来String get_userInfo_url = GET_USERINFO_URL.replace("ACCESS_TOKEN",accessToken).replace("CODE", code);// 2.调用接口,发送请求,获取成员信息String Obj = HttpClientUtil.httpGet(get_userInfo_url, "UTF-8");JSONObject jsonObject = JSONObject.parseObject(Obj);System.out.println("jsonObject:" + jsonObject.toString());// 3.错误消息处理if (null != jsonObject) {if (0 != jsonObject.getIntValue("errcode")) {return null;}}//jsonObject不为空这里获取userid,json是fastjson;return jsonObject.getString("UserId");}

到这里基本上就是这三个步骤,接下来我吧utils 的代码块贴出来,还有几个请求网址的代码

//上面获取userinfo的指向代码,官网api上都有
public static final String GET_USERINFO_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE";
//获取token的代码
public static final String ACCESS_TOKEN_URL = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET";
//获取code的代码public static final String GET_CODE_URL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&agentid=AGENTID&state=STATE#wechat_redirect";

这里是工具类的代码

//url 是路径,code是编码格式
public static String httpGet(String url,String code) {System.out.println("GetPage:"+url);String content = null;HttpClient httpClient = new HttpClient();//设置headerhttpClient.getParams().setParameter(HttpMethodParams.USER_AGENT,"Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.2) Gecko/20090803 Fedora/3.5.2-2.fc11 Firefox/3.5.2");GetMethod method = new GetMethod(url);try {int statusCode = httpClient.executeMethod(method);System.out.println("httpClientUtils::statusCode="+statusCode);System.out.println(method.getStatusLine());content = new String(method.getResponseBody(), code);} catch (Exception e) {System.out.println("time out");e.printStackTrace();} finally {if(method!=null)method.releaseConnection();method = null;httpClient = null;}return content;}

企业微信授权登录实例代码(仅仅获取过程)相关推荐

  1. php的微信登录示例代码,关于微信用户注册登录实例代码汇总

    这篇文章主要介绍了.NET微信开发之PC 端微信扫码注册和登录功能实现的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下一.前言先声明一下,本文所注重点为实现思路,代码及数据库设计主要为了展 ...

  2. [小黄书小程序]微信授权登录

    在上一篇文章中,我们在后台实现了会员管理以及会员注册登录的逻辑.其中登录方式包括: 通过手机号码和验证码登录 通过微信授权登录 在小黄书小程序上,我们支持第二种登录方式.第一种方式,今后看情况再酌情进 ...

  3. uni-app 对FastAdmin微信公众号授权登录实例

    uni-app 对FastAdmin微信公众号授权登录实例 uniapp 微信公众号授权登录代码 跳转获取code 提交fastadmin 第三方登录插件 进行登录验证 存储token onLoad( ...

  4. 从前后端交互逻辑出发、基于企业开发标准,Web微信授权登录系统开发项目分享

    背景 首先,在网页中开发第三方登录系统的案例越来越多,用户的操作习惯也逐渐被引导改变,更加简洁有效的登录交互系统将会成为网页开发中必要的一环.从项目的用户使用背景.微信公众号的开发模式.企业代码的标准 ...

  5. uniapp - 编译微信小程序项目的微信授权登录、获取微信手机号登录、最新版微信直接登录、手机与验证码登录的示例源码(适用于 uniapp 微信小程序项目,源代码直接开箱即用)超级详细的代码及注释

    效果图 uniapp 项目编译微信小程序,一些常见的登录方式及源代码,示例代码干净整洁无BUG拿来即用. 本文示例实现了 uniapp 微信小程序项目的登录功能,包含微信授权登录.获取微信手机号登录. ...

  6. uniapp - 超详细的 H5 公众号网页微信登录示例代码,提供从 0-1 公众号配置及详细注释代码(站在新手小白的角度)第三方微信授权登录的实现!!

    介绍 目前示例是 "点击按钮登录",你也可以改为 "一进页面就登录" ,可随意改造. 百度的教程都太乱了,而且功能都有一定问题.本文主要讲解 uniapp H5 ...

  7. 五行代码搞定微信授权登录

    Authing 通过 SDK 为开发者提供了一种快速在微信网页中获取用户信息并完成登录的方法.如果用户在微信客户端中访问第三方网页.公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑 ...

  8. uni app和php开发微信登录代码,uniapp如何实现微信授权登录

    uniapp实现微信授权登录的方法:首先获取对应的appid和appsecret:然后在uniapp项目的manifest.json中进行APP SDK配置和模块权限配置.最后实现编码. 本教程操作环 ...

  9. 慕课网_《微信授权登录》学习总结

    时间:2017年08月12日星期六 说明:本文部分内容均来自慕课网.@慕课网:http://www.imooc.com 教学源码:无 学习源码:https://github.com/zccodere/ ...

  10. html5+ mui框架 微信授权登录后跳回app无任何回调事件

    2019独角兽企业重金招聘Python工程师标准>>> 微信授权登录可以调起微信,但是在微信上点击确认登陆后跳回app,但是之后无任何回掉事件. 问题原因: 1 因为我在集成Face ...

最新文章

  1. python字典如何删除数据库_Python 字典删除元素clear、pop、popitem
  2. Java项目-基于SSM实现律师事务所管理平台
  3. 编译时和运行时、OC中对象的动态编译机制
  4. Spring boot中使用Swagger2
  5. c++界面开发_QT开发(三)——GUI原理分析
  6. qt使用自带的日志输出实例输出日志时,在日志中显示行数
  7. 对一道SQL语句题目的再思考
  8. 基于Redis实现的抢购代码示例
  9. sublime运行node.js报[Decode error - output not cp936]错误
  10. 大数据项目实训教学解决方案
  11. vue php跨域,Vue+php处理跨域问题
  12. 天气预报查询数据接口、实时天气、未来24小时、7天/15天预报
  13. 一个指导人机系统评估的框架
  14. mac快速切换大小写_快速模式匹配–如果是大小写,请切换为大小写
  15. Unity使用BMFont制作字体
  16. 追光的人 团队团队展示
  17. 我有一个梦,叫“禾下乘凉梦“!
  18. 万字干货:当了5次韭菜总结出来的抖音运营指南
  19. 数字IC手撕代码--交通灯
  20. 福州大学计算机网络技术实验室,实验室提升福州大学网络实践教学能力

热门文章

  1. 5G时代的到来会对UI交互设计产生什么影响?
  2. 计算机声卡原理,什么是电脑声卡 电脑声卡的工作原理
  3. PC微信多开,超简单
  4. 【lzy学习笔记-dive into deep learning】数学预备 2.1-2.4
  5. Tinkpad笔记本双击开发Q盘不再提示创建恢复介质的对话框了,而且进入磁盘后文件夹是空的!
  6. Simpson自适应Simpson
  7. 谷歌浏览器 Cookie 设置
  8. python 类的执行中保部存值_python 生成有效的四要素
  9. Altium Designer15安装破解教程
  10. 18种最实用的网站推广方法大全