/** * 得到服务器返回的包含access token等的回应包后,解析存储到OAuth类中 * * @param responseData 格式:access_token=ACCESS_TOKEN&expires_in=60&name=NAME * @param oAuth * @return */ public static boolean parseAccessToken(String responseData, OAuthV2 oAuth) { if (!QStrOperate.hasValue(responseData)) { return false; } oAuth.setMsg(responseData); String[] tokenArray = responseData.split("&"); log.info("parseToken response=>> tokenArray.length = " + tokenArray.length); if (tokenArray.length < 2) { return false; } String tmpStr; for (int i = 0; i < tokenArray.length; i++) { if (tokenArray[i].startsWith("access_token=")) { tmpStr = tokenArray[i].substring(tokenArray[i].indexOf('=') + 1, tokenArray[i].length()); if (!QStrOperate.hasValue(tmpStr)) { return false; } oAuth.setAccessToken(tmpStr); } if (tokenArray[i].startsWith("expires_in=")) { tmpStr = tokenArray[i].substring(tokenArray[i].indexOf('=') + 1, tokenArray[i].length()); if (!QStrOperate.hasValue(tmpStr)) { return false; } oAuth.setExpiresIn(tmpStr); } } return true; }
/** * 使用Authorization code方式鉴权时,直接将授权码的参数记录到OAuth类中 * * @param authorizeCode * @param openid * @param openkey * @param oAuth * @return */ public static boolean setAuthorization( String authorizeCode, String openid, String openkey, OAuthV2 oAuth) { if ((!QStrOperate.hasValue(authorizeCode)) || (!QStrOperate.hasValue(openid)) || (!QStrOperate.hasValue(openkey))) { return false; } oAuth.setAuthorizeCode(authorizeCode); oAuth.setOpenid(openid); oAuth.setOpenkey(openkey); return true; }
/** * 使用Authorization code方式鉴权时,请求用户授权后,解析开放平台返回的参数是否包含授权码等信息 * * @param responseData 格式:code=CODE&openid=OPENID&openkey=OPENKEY * @param oAuth * @return */ public static boolean parseAuthorization(String responseData, OAuthV2 oAuth) { oAuth.setStatus(2); // 假设出错 if (!QStrOperate.hasValue(responseData)) { return false; } oAuth.setMsg(responseData); String[] tokenArray = responseData.split("&"); log.info("parseToken response=>> tokenArray.length = " + tokenArray.length); if (tokenArray.length < 3) { return false; } for (int i = 0; i < tokenArray.length; i++) { if (tokenArray[i].startsWith("code=")) { oAuth.setAuthorizeCode( tokenArray[i].substring(tokenArray[i].indexOf('=') + 1, tokenArray[i].length())); } if (tokenArray[i].startsWith("openid=")) { oAuth.setOpenid( tokenArray[i].substring(tokenArray[i].indexOf('=') + 1, tokenArray[i].length())); } if (tokenArray[i].startsWith("openkey=")) { oAuth.setOpenkey( tokenArray[i].substring(tokenArray[i].indexOf('=') + 1, tokenArray[i].length())); } } // 检查是否取得code if (!QStrOperate.hasValue(oAuth.getAuthorizeCode())) { return false; } oAuth.setStatus(0); // 没有出错 return true; }