1.网页授权获取的token
- public class AuthToken {
-
- //网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
- private String accessToken;
- //access_token接口调用凭证超时时间,单位(秒)
- private int expiresIn;
- //用户刷新access_token
- private String refreshToken;
- private String openid;
- private String scope;
-
- public class AuthUser {
-
- private String openid;
- //用户昵称
- private String nickname;
- //用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
- private String sex;
- private String province;
- private String city;
- private String country;
- //获取用户的头像
- private String headimgurl;
2.常量
- public class AuthConstant {
-
- /**默认拥有scope参数中的snsapi_base和snsapi_userinfo*/
- public static final String AUTH_SCOPE_BASE = "snsapi_base";
- public static final String AUTH_SCOPE_USERINFO = "snsapi_userinfo";
-
- /**获取网页授权的code*/
- public static final String AUTH_CODE_URL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect";
-
- /**通过code获取授权的access_token*/
- public static final String AUTH_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
-
- /**刷新授权的access_token*/
- public static final String AUTH_FRESH_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN";
-
- /**获取用户的微信信息 网页授权的ACCESS_TOKEN*/
- public static final String AUTH_USERINFO_URL = "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN";
- }
3.工具类
- public class AuthUtil {
- /**
- * 网页授权获取用户对象
- * @author wuyw
- * 2015-7-30下午3:25:58
- * @param authToken
- * @return
- */
- public static AuthUser getUserInfo(AuthToken authToken){
-
- AuthUser authUser = new AuthUser();
-
- String requestUrl = AuthConstant.AUTH_USERINFO_URL.replace("ACCESS_TOKEN", authToken.getAccessToken()).replace("OPENID", authToken.getOpenid());
- JSONObject jsonObject = TokenUtil.httpsRequest(requestUrl, BaseConstant.TOKEN_URL_GET, null);
-
- if (null != jsonObject) {
- authUser.setOpenid(jsonObject.getString("openid"));
- authUser.setNickname(jsonObject.getString("nickname"));
- authUser.setSex(jsonObject.getString("sex"));
- authUser.setProvince(jsonObject.getString("province"));
- authUser.setCity(jsonObject.getString("city"));
- authUser.setCountry(jsonObject.getString("country"));
- authUser.setHeadimgurl(jsonObject.getString("headimgurl"));
- }
-
- return authUser;
- }
-
-
- /**
- * 获取网页授权的Access_Token
- * @author wuyw
- * 2015-7-30下午2:54:58
- * @param appid
- * @param secret
- * @param code 网页授权的code
- * @return
- */
- public static AuthToken getToken (String appid, String secret, String code) {
-
- AuthToken token = new AuthToken();
-
- String requestUrl = AuthConstant.AUTH_ACCESS_TOKEN_URL.replace("APPID", appid).replace("SECRET", secret).replace("CODE", code);
- JSONObject jsonObject = TokenUtil.httpsRequest(requestUrl, BaseConstant.TOKEN_URL_GET, null);
-
- if (null != jsonObject) {
- token.setAccessToken(jsonObject.getString("access_token"));
- token.setExpiresIn(jsonObject.getInt("expires_in"));
- token.setOpenid(jsonObject.getString("openid"));
- token.setRefreshToken(jsonObject.getString("refresh_token"));
- token.setScope(jsonObject.getString("scope"));
- }
-
- return token;
- }
-
- }
|