前言

企微创建一个新应用,用户点击静默授权登录
​​​企业微信API​

操作

这边不按部就班,使用一次性访问
创建一个链接
标准链接

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

赋值

https://open.weixin.qq.com/connect/oauth2/authorize?appid=A&redirect_uri=B&response_type=code&scope=snsapi_base&agentid=C&state=D
  • A appid 填写对应参数
  • B 回调链接 获取code 需要URLEncoder转码 下文有
  • C agentid 填写对应参数
  • D 微信重定向后携带的参数(建议写前端地址或者其他)

注意:拼接完成的链接需要配置在企微对应主页地址

注意:B位置的重定向链接需要在企微应用中配置可信任域名,未配置会在code获取时报50001

​错误码:50001​

企业微信应用授权/静默登录_微信

重定向链接

上述链接配置好后回调地址,code置换微信用户

/**
* 微信用户登录获取用户
*
* @param code 回调
* @param state
* @param request
* @return
* @throws IOException
*/
@GetMapping("oauth2me.do")
@ApiOperation(value = "回调方法")
public RedirectView getuserinfo(@RequestParam String code, @RequestParam String state, HttpServletRequest request) throws IOException {

System.out.println("回调方法code: " + code + "state: " + state);
BaseResult getuserinfo = weChatServicel.getuserinfo(code, request);
String redirectUrl = "";

if (getuserinfo.getErrno() == 200) {
Object o = JSONArray.toJSON(data);
String s = Base64Util.encryptBASE64(o.toString());
String encode = URLEncoder.encode(s, "UTF-8");
redirectUrl = state + "?" + encode;
} else {
redirectUrl = state;
}
System.out.println("重定向URL: " + redirectUrl);
return new RedirectView(redirectUrl);
}

获取访问用户身份

方法体内部调用这个请求就行
请求方式:GET(HTTPS)
请求地址:​​​https://qyapi.weixin.qq.com/cgi-bin/service/getuserinfo3rd?suite_access_token=SUITE_ACCESS_TOKEN&code=CODE​

企业微信应用授权/静默登录_回调方法_02


返回值

{
"errcode": 0,
"errmsg": "ok",
"CorpId":"CORPID",
"UserId":"USERID",
"DeviceId":"DEVICEID",
"user_ticket": "USER_TICKET",
"expires_in":7200,
"open_userid":"wwxxxx"
}

​参考链接:获取访问用户身份​

企业微信应用授权/静默登录_企微_03