您的位置:首页 > 移动开发 > 微信开发

微信开发总结 六

2015-08-03 13:47 363 查看
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: