微信企业号登录授权-----Java Struts2 实现 获取员工userid

为了方便测试 。debug 建议大家搞个花生壳或者其他的可以映射公网IP的软件。

貌似涨价了8元一个。鄙人捡了个便宜1元买的。还是个二级域名

1.设置一个菜单调用授权接口的URL (https://open.weixin.qq.com/和这个网站的是不一样的东西)获取code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECTURI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect

2.写一个方法接收上图中reurl 获取code 与 access_token

    
    public String execute() throws Exception {
        HttpServletRequest request = ServletActionContext.getRequest();
        HttpServletResponse response = ServletActionContext.getResponse();
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        String code = request.getParameter("code");
        if(!"authdeny".equals(code)){
            String access_token =  WeixinUtil.getAccessToken(您的企业号corpId,您的企业号secret).getToken();
            String UserID = oAuth2Service.getUserID(access_token, code, "2"); //第3步
            request.setAttribute("UserId", UserID);
        }
        request.getRequestDispatcher("/index.jsp").forward(request,response);
        return null;
    }

3.getUserID获取员工userid 这个id并不是用户openid 

/**
* 获取员工信息的接口地址
**/
public  String CODE_TO_USERINFO = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE&agentid=AGENTID";

/**
     * 根据code获取成员信息
     * @param access_token 调用接口凭证
     * @param code   通过员工授权获取到的code,每次员工授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期
     * @param agentid   跳转链接时所在的企业应用ID 管理员须拥有agent的使用权限;agentid必须和跳转链接时所在的企业应用ID相同
     * */
    public  String getUserID(String access_token, String code, String agentid) {
        String UserId = "";
        CODE_TO_USERINFO = CODE_TO_USERINFO.replace("ACCESS_TOKEN", access_token).replace("CODE", code).replace("AGENTID", agentid);
        JSONObject jsonobject = WeixinUtil.httpRequest(CODE_TO_USERINFO, "GET", null);
        if (null != jsonobject) {
            UserId = jsonobject.getString("UserId");
            if (!"".equals(UserId)) {
                System.out.println("获取信息成功,o(∩_∩)o ————UserID:" + UserId);
            } else {
                int errorrcode = jsonobject.getInt("errcode");
                String errmsg = jsonobject.getString("errmsg");
                String error = "错误码:" + errorrcode + "————" + "错误信息:" + errmsg;
                log.error(error);
            }
        } else {
            log.error("获取授权失败了");
        }
        return UserId;
    }

4.再根据第2步的转发 将获取的数据传递到页面 测试是否正确

4.1 首先点击微信企业号里面有授权菜单的应用 的菜单

4.2 走第2步的Action 获取code、 access_token 换取userid 并转发到指定页面


整个过程就是这样的简单

时间: 2024-11-10 07:24:47

微信企业号登录授权-----Java Struts2 实现 获取员工userid的相关文章

微信企业号登录授权Java实现获取员工userid根据userid换openid

微信企业号登录授权Java实现获取员工userid根据userid换openid 2016年1月8日 为了方便测试 .debug 建议大家搞个花生壳或者其他的可以映射公网IP的软件. 貌似涨价了8元一个.鄙人捡了个便宜1元买的.还是个二级域名 1.设置一个菜单调用授权接口的URL (https://open.weixin.qq.com/和这个网站的是不一样的东西)获取code https://open.weixin.qq.com/connect/oauth2/authorize?appid=CO

微信开发笔记——微信网页登录授权,获取用户信息

最近做了一个公司的微信的公众号,对微信的流程清楚了不少,这里记录下,算不上多高深的,只希望能帮助到一部分人吧. 我们公司的测试微信公众号:NPCgo 可以感受下,哈哈~~ 闲话少说,开始: 首先大家要看下微信的API文档. 微信网页授权,获取用户的微信官方API文档地址:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html 三次握手微信认证流程(我自己简称三次握手): 1.用户同意授权,获取code 2.通过c

微信第三方登录授权

首先第三方应用要跟微信帐号合作,然后按照下面的方法操作: 第一步:注册应用. 可以通过卫微信的开放平台去注册一个应用.之后你会得到一个App Key和一个App Secret.拥有它们,你才可以申请权限. 假设你的App Key是“1234567890”,App Secret是“abcdefghijklmnopqrstuvwxyz" 第二步:写代码. 将获取到的OAuth的php版本的SDK加入你的project中.将你申请到的Key和Secret做为两个变量定义并赋值. 对于OAuth来说,很

微信企业号支付授权目录

微信企业号回调模式验证与发送消息

最近放假闲着无聊,研究了一下微信企业号, 打算通过企业号做一个运维报警信息发送的功能,记录自己的操作 第一步 注册企业号,网上一搜一大把的教程,这里略过  微信企业号登录地址  https://qy.weixin.qq.com/ 第二步  登录后 点左侧 应用中心 -新建应用 第三步  在第二步第一图中的自建应用下面找到刚刚新建的应用 拉到最下面有一个模式选择,点击回调模式 会看到下图界面 Token 和EncodingAESKey 点击随机获取即可,上面的url需要你有自己的服务地址  你的服

微信企业号公测开启OA红海模式

之前就有传出消息说腾讯要出微信企业号,百度直达号的发布间接敦促了微信企业号的开发进度,这不,企业号开始公测了.以下是微信π的消息. 今日,微信正式开启微信企业号公测,目前公测版本面向所有用户,企业.政府及事业单位.社会化组织均可申请.企业进入http://qy.weixin.qq.com页面完成注册即可开通. 据微信企业号相关负责人介绍,微信企业号是微信为企业提供的移动应用入口,旨在帮助企业建立员工.上下游供应链与企业IT系统间的连接,从而快速.低成本实现高质量的移动轻应用,实现生产.管理.协作

创建微信企业号菜单栏

//创建微信企业号菜单栏 public static string CustomMenu() { //获取Token string AppUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?";string AppID = "wxc230dd116f51778d";string AppSecret = "s3O7Hzmo70kI69S-ghQ5KbF0-A9U0YuZm7IRvBLjwx7grbUJN18

微信企业号回调模式配置讲解 Java Servlet+Struts2版本 echostr校验失败解决

微信企业号回调模式配置讲解 Java Servlet+Struts2版本 echostr校验失败解决 echostr校验失败,请您检查是否正确解密并输出明文echostr 异常java.security.InvalidKeyException:illegal Key Size 也就是echostr校验失败,请您检查是否正确解密并输出明文echostr这个错误 企业微信登陆地址http://qy.weixin.qq.com/ 配置成功以后 Servlet public void doGet(Htt

微信企业号 获取用户信息

业务操作最基础的一个功能是获取访客的身份,传统的获取方式是提供一个登录页面用以访客登录. 在微信企业号中,用户在微信中访问页面时,可以根据相关API获取此用户的微信账号信息,以此来匹配业务服务器存储的相关用户信息. 目录 1.  介绍 2.  代码示例 1. 介绍 1.1 说明 企业号的网页开发,说白了就是移动端web开发,特殊点在于如何获取微信用户的身份信息. 在企业号中可以进行如下步骤获取微信用户信息: 访问一个业务页面时,可通过OAuth验证接口获取此用户信息 → 根据code获取user