package com.casic.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.jczbo.rjxqykt.common.http.ReponseResult; import com.jczbo.rjxqykt.module.services.impl.YktAppServiceImpl; import lombok.Data; import org.springframework.stereotype.Component; import java.util.Map; @Component public class OAuthUtil { public static String Appkey = "hfjikjij"; private static String AppSecret = "a49489773b1ae7fe6b2302faf2ab3737"; private static String code = ""; private static String AccessToken = ""; private static YktAppServiceImpl yktAppServiceImpl = new YktAppServiceImpl(); //生成Code public static String getAccessToken() { String CodeResult = yktAppServiceImpl.appCode(Appkey, AppSecret); ReponseResult reponseResultCode = JSONObject.parseObject(CodeResult, ReponseResult.class); if (reponseResultCode.isSuccess()) { //从Data中解析code Map<String, String> map = null; try { // map = (HashMap<String,String>)reponseResultCode.getData(); Object obj = reponseResultCode.getData(); if (obj instanceof JSONObject) { map = JSONObject.toJavaObject((JSONObject) obj, Map.class); code = map.get("code"); } System.out.println("code:" + code); } catch (Exception e) { e.printStackTrace(); } } else { //获取code失败 System.out.println("获取code失败"); } //生成AccessToken // String AccessTokenResult= null; String AccessTokenResult = null; try { AccessTokenResult = yktAppServiceImpl.appAccessToken(Appkey, AppSecret, code); } catch (Exception e) { e.printStackTrace(); } ReponseResult reponseResultAccessToken = JSONObject.parseObject(AccessTokenResult, ReponseResult.class); if (reponseResultAccessToken.isSuccess()) { //从Data中解析AccessTokenResult Map<String, String> map = null; try { Object obj = reponseResultAccessToken.getData(); map = JSONObject.toJavaObject((JSONObject) obj, Map.class); if (obj instanceof JSONObject) { map = JSONObject.toJavaObject((JSONObject) obj, Map.class); AccessToken = map.get("AccessToken"); } } catch (Exception e) { e.printStackTrace(); } } else { //获取AccessToken失败 System.out.println("获取AccessToken失败"); } return AccessToken; } public static boolean checkAccessToken(String accessTokenSession) { //校验AccessToken String AccessToken = accessTokenSession; String VerigyTokenResult = yktAppServiceImpl.VerifyAccessToken(Appkey, AccessToken); ReponseResult reponseResultVerifyToken = JSONObject.parseObject(VerigyTokenResult, ReponseResult.class); if (reponseResultVerifyToken.isSuccess()) { reponseResultVerifyToken.getMessage(); //从Data中解析AccessTokenResult是否有效 return true; } else { //验证AccessToken失败 return false; } } public String getPhone(String accesstoken, String code) throws Exception { String param = ""; //封装参数 param = "https://yikatong.erongjiang.com/sto/yktApp/getUserPhoneNum/v2?" + "AppKey=" + OAuthUtil.Appkey + "&AccessToken=" + accesstoken + "&code=" + code; //向一卡通接口发送请求获取手机号 System.out.println(param); String getUserPhoneNum = HttpUtils.doPost(param, ""); if (getUserPhoneNum.isEmpty()) { return null; } JSONObject jsonObject = JSON.parseObject(getUserPhoneNum); System.out.println(jsonObject); System.out.println(jsonObject.get("success")); System.out.println(); Boolean result = (Boolean) jsonObject.get("success"); if (result) { System.out.println(jsonObject.get("data")); JSONObject json = (JSONObject) jsonObject.get("data"); System.out.println((String) json.get("userPhoneNum")); return (String) json.get("userPhoneNum"); } else { System.out.println("获取手机号失败"); return null; } } }