| | |
| | | import com.stylefeng.guns.modular.system.util.UUIDUtil; |
| | | import com.stylefeng.guns.modular.system.util.httpClinet.HttpClientUtil; |
| | | import com.stylefeng.guns.modular.system.util.httpClinet.HttpResult; |
| | | import okhttp3.OkHttpClient; |
| | | import okhttp3.Request; |
| | | import okhttp3.Response; |
| | | import org.apache.commons.codec.digest.DigestUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | |
| | | @Autowired |
| | | private RedisUtil redisUtil; |
| | | |
| | | |
| | | |
| | | // 获取微信用户access_token的接口地址 |
| | | private static final String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/access_token"; |
| | | // 获取微信用户信息的接口地址 |
| | | private static final String USER_INFO_URL = "https://api.weixin.qq.com/sns/userinfo"; |
| | | { |
| | | new Thread(new Runnable() { |
| | | @Override |
| | |
| | | * @return |
| | | */ |
| | | public Map<String, Object> code2Session(String jscode) throws Exception{ |
| | | System.err.println("看看调用奥"); |
| | | System.err.println("jsCode"+"========="+jscode); |
| | | String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret |
| | | + "&js_code=" + jscode + "&grant_type=authorization_code"; |
| | | // String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid="+wxAppletsAppid+"&secret="+wxAppletsAppSecret+"&code="+jscode+"&grant_type=authorization_code"; |
| | | HttpResult httpResult = httpClientUtil.pushHttpRequset("GET", url, null, null, "form"); |
| | | if(null == httpResult || httpResult.getCode() != 200){ |
| | | return null; |
| | | } |
| | | JSONObject jsonObject = JSON.parseObject(httpResult.getData()); |
| | | System.err.println("返回json串"+jsonObject); |
| | | int errcode = jsonObject.getIntValue("errcode"); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("errcode", errcode); |
| | | System.err.println("返回code"+errcode); |
| | | System.err.println("调用返回"+jsonObject); |
| | | System.err.println("响应结果"+httpResult); |
| | | if(errcode == 0){//成功 |
| | | Map<String, Object> userInfo = getUserInfo(jsonObject.getString("session_key"), jsonObject.getString("openid")); |
| | | System.err.println(userInfo); |
| | | // 用户名 |
| | | // String nickname = userInfo.get("nickname").toString(); |
| | | // // 用户头像 |
| | | // String headimgurl = userInfo.get("headimgurl").toString(); |
| | | // System.err.println("用户名:"+nickname); |
| | | // System.err.println("头像:"+headimgurl); |
| | | map.put("openid", jsonObject.getString("openid")); |
| | | map.put("sessionKey", jsonObject.getString("session_key")); |
| | | map.put("unionid", jsonObject.getString("unionid")); |
| | | String wxAppletsAccessToken = getWxAppletsAccessToken(); |
| | | System.err.println("看看accesstoken:"+wxAppletsAccessToken); |
| | | Map<String, Object> openid = getUserInfo(wxAppletsAccessToken, jsonObject.getString("openid")); |
| | | System.err.println("用户信息:"+ openid); |
| | | return map; |
| | | } |
| | | if(errcode == -1){//系统繁忙,此时请开发者稍候再试 |
| | |
| | | if(httpResult.getCode() != 200){ |
| | | return ""; |
| | | } |
| | | System.err.println("获取AAAAAAAAAAAAAAAAAAAAAAAAAA:"+httpResult); |
| | | JSONObject jsonObject = JSON.parseObject(httpResult.getData()); |
| | | return jsonObject.getString("access_token"); |
| | | } |
| | |
| | | map.put("signature", signature); |
| | | return map; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 网站应用登录 |
| | |
| | | return map; |
| | | } |
| | | |
| | | /** |
| | | * 获取微信用户的access_token |
| | | * |
| | | * @param code 微信小程序登录时获取的code |
| | | * @return 包含access_token和openid的Map |
| | | * @throws Exception |
| | | */ |
| | | public Map<String, String> getAccessToken(String code) throws Exception { |
| | | OkHttpClient client = new OkHttpClient(); |
| | | String url = ACCESS_TOKEN_URL + "?appid=" + wxAppletsAppid+ "&secret=" + wxAppletsAppSecret + "&code=" + code |
| | | + "&grant_type=authorization_code"; |
| | | Request request = new Request.Builder().url(url).get().build(); |
| | | Response response = client.newCall(request).execute(); |
| | | String responseStr = response.body().string(); |
| | | System.err.println("响应结果"+responseStr); |
| | | JSONObject jsonObject = JSON.parseObject(responseStr); |
| | | String accessToken = jsonObject.getString("access_token"); |
| | | String openid = jsonObject.getString("openid"); |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("access_token", accessToken); |
| | | map.put("openid", openid); |
| | | return map; |
| | | } |
| | | |
| | | /*** |
| | | * 获取acess_token (公众号) |