微信开发总结 六
2015-08-03 13:47
363 查看
1.网页授权获取的token
2.常量
3.工具类
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; } }
相关文章推荐
- 微信开发总结 五
- 微信开发总结 四
- 每天一个小程序——选择排序时的一个小问题!
- 微信开发总结 三
- 微信开发总结 二
- 微信开发总结 一
- 微信开发总结
- 人人,金山西山居,腾讯互娱,微信,网易游戏offer及面经(转)
- Android 微信下拉眼睛
- android 微信支付直接跳转结果
- Java微信公众号支付
- 如何利用事件营销一天获得35万微信粉丝
- 微信公众平台开发(十二) 发送客服消息
- 微信公众平台开发(73) 客服接口发送客服消息
- 关于微信分享、登录的一些注意事项
- 好消息: 《微信商城开发实战》 已经由电子工业出版社出版发行啦
- 使用AccessibilityService实现微信自动抢红包
- 用MVC结构写web小程序时出现“ Cannot forward after response has been committed”的错误
- 微信在召唤千万个“王尼玛”
- 判断闰年平年的小程序