发表日期:2019-08 文章编辑:小灯 浏览次数:879
需要把小程序放在 同一个微信开发者 下
1 先按照loginInfo信息查询有无有unionID
2 如果有,直接返回 ,程序结束
3 如果没有,将用于解密的session_key获取
4 根据userInfo拿取encryptedData等加密数据
5 对加密数据进行逆解密
6 拿到unionID 返回,程序结
userInfo 注意一下:通过user.getInfo获取的和通过button授权获取的格式不一样
/** * 根据logininfo 的code尝试获取unionID * @param request * @return */public staticMap<String, String> getUnionIDByLoginInfo(String resCode, HttpServletRequest request) {JSONObject loginRes = null;Map<String, String> loginResMap = new HashMap<>();try {// 网址看参数说明:https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html#wxloginobjectString url = SysConstants.WEICHAT_UNIONID_URL+"?appid="+SysConstants.WECHAT_APPID+ "&secret="+ SysConstants.WECHAT_SECRET + "&js_code=" + resCode + "&grant_type="+SysConstants.WECHAT_FRANT_TYPE;loginRes = HttpClientUtils.doGet(url);} catch (Exception e) {throw new RuntimeException(e);}String openid = (String) loginRes.get("openid");String session_key = (String) loginRes.get("session_key"); 【如果没有需要解密 】String unionid = (String) loginRes.get("unionid"); 【判断有没有】loginResMap.put("openid", openid);loginResMap.put("unionid", unionid);loginResMap.put("session_key", session_key);return loginResMap;}
session_key 解密encryptedData iv
/** * @param session_key * @return */public staticJSONObject decipherByUserInfo(String session_key,String encryptedData,String iv ) {LOG.info(">>>start 解密需要的数据为:encryptedData:{},iv:{},session_key:{}", encryptedData, iv, session_key);// 被加密的数据byte[] dataByte = Base64.decodeBase64( encryptedData.replaceAll(" ", "+") );// 加密秘钥byte[] aeskey = Base64.decodeBase64(session_key);// 偏移量byte[] ivByte = Base64.decodeBase64( iv.replaceAll(" ", "+") );String newuserInfo = "";try {AES aes = new AES();byte[] resultByte = aes.decrypt(dataByte, aeskey, ivByte);if (null != resultByte && resultByte.length > 0) {newuserInfo = new String(resultByte, "UTF-8");LOG.info(">>>end 解密完毕,解密结果为newuserInfo:{}", newuserInfo);return JSONObject.parseObject(newuserInfo);}} catch (Exception e) {LOG.info("解密异常!检查解密数据 {}", newuserInfo, e);e.printStackTrace();}return null;}
转载地址: https://blog.csdn.net/weixin_39214304/article/details/79158750
日期:2019-11 浏览次数:4775
日期:2019-11 浏览次数:11197
日期:2019-11 浏览次数:3636
日期:2019-11 浏览次数:4546
日期:2019-11 浏览次数:4648
日期:2019-11 浏览次数:6312
日期:2019-11 浏览次数:4569
日期:2019-11 浏览次数:15016
日期:2019-11 浏览次数:3918
日期:2019-11 浏览次数:5680
日期:2019-11 浏览次数:4514
日期:2019-11 浏览次数:3853
日期:2019-11 浏览次数:9609
日期:2019-11 浏览次数:7526
日期:2019-11 浏览次数:4215
日期:2019-11 浏览次数:3610
日期:2019-11 浏览次数:8145
日期:2019-11 浏览次数:3866
日期:2019-11 浏览次数:4038
日期:2019-11 浏览次数:4106
日期:2019-11 浏览次数:3664
日期:2019-11 浏览次数:4257
日期:2019-11 浏览次数:9440
日期:2019-11 浏览次数:4456
日期:2019-11 浏览次数:4443
日期:2019-11 浏览次数:4034
日期:2019-11 浏览次数:11354
日期:2019-11 浏览次数:6647
日期:2019-11 浏览次数:6905
日期:2019-11 浏览次数:4255
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.