分享

微信开发总结 六

 WindySky 2017-03-14

1.网页授权获取的token

  1. public class AuthToken {  
  2.       
  3.     //网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同  
  4.     private String accessToken;  
  5.     //access_token接口调用凭证超时时间,单位(秒)  
  6.     private int expiresIn;  
  7.     //用户刷新access_token  
  8.     private String refreshToken;  
  9.     private String openid;  
  10.     private String scope;  
  11.       

  1. public class AuthUser {  
  2.       
  3.     private String openid;  
  4.     //用户昵称  
  5.     private String nickname;  
  6.     //用户的性别,值为1时是男性,值为2时是女性,值为0时是未知  
  7.     private String sex;  
  8.     private String province;  
  9.     private String city;  
  10.     private String country;  
  11.     //获取用户的头像  
  12.     private String headimgurl;  

2.常量

  1. public class AuthConstant {  
  2.       
  3.     /**默认拥有scope参数中的snsapi_base和snsapi_userinfo*/  
  4.     public static final String AUTH_SCOPE_BASE = "snsapi_base";  
  5.     public static final String AUTH_SCOPE_USERINFO = "snsapi_userinfo";  
  6.       
  7.     /**获取网页授权的code*/  
  8.     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";  
  9.       
  10.     /**通过code获取授权的access_token*/  
  11.     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";  
  12.       
  13.     /**刷新授权的access_token*/  
  14.     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";  
  15.       
  16.     /**获取用户的微信信息    网页授权的ACCESS_TOKEN*/  
  17.     public static final String AUTH_USERINFO_URL = "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN";  
  18. }  

3.工具类

  1. public class AuthUtil {  
  2.     /** 
  3.      * 网页授权获取用户对象 
  4.      * @author wuyw 
  5.      * 2015-7-30下午3:25:58 
  6.      * @param authToken 
  7.      * @return 
  8.      */  
  9.     public static AuthUser getUserInfo(AuthToken authToken){  
  10.           
  11.         AuthUser authUser = new AuthUser();  
  12.           
  13.         String requestUrl = AuthConstant.AUTH_USERINFO_URL.replace("ACCESS_TOKEN", authToken.getAccessToken()).replace("OPENID", authToken.getOpenid());  
  14.         JSONObject jsonObject = TokenUtil.httpsRequest(requestUrl, BaseConstant.TOKEN_URL_GET, null);  
  15.           
  16.         if (null != jsonObject) {  
  17.             authUser.setOpenid(jsonObject.getString("openid"));  
  18.             authUser.setNickname(jsonObject.getString("nickname"));  
  19.             authUser.setSex(jsonObject.getString("sex"));  
  20.             authUser.setProvince(jsonObject.getString("province"));  
  21.             authUser.setCity(jsonObject.getString("city"));  
  22.             authUser.setCountry(jsonObject.getString("country"));  
  23.             authUser.setHeadimgurl(jsonObject.getString("headimgurl"));           
  24.         }  
  25.           
  26.         return authUser;  
  27.     }  
  28.       
  29.       
  30.     /** 
  31.      * 获取网页授权的Access_Token 
  32.      * @author wuyw 
  33.      * 2015-7-30下午2:54:58 
  34.      * @param appid 
  35.      * @param secret 
  36.      * @param code 网页授权的code 
  37.      * @return 
  38.      */  
  39.     public static AuthToken getToken (String appid, String secret, String code) {  
  40.           
  41.         AuthToken token = new AuthToken();  
  42.           
  43.         String requestUrl = AuthConstant.AUTH_ACCESS_TOKEN_URL.replace("APPID", appid).replace("SECRET", secret).replace("CODE", code);  
  44.         JSONObject jsonObject = TokenUtil.httpsRequest(requestUrl, BaseConstant.TOKEN_URL_GET, null);  
  45.           
  46.         if (null != jsonObject) {  
  47.             token.setAccessToken(jsonObject.getString("access_token"));  
  48.             token.setExpiresIn(jsonObject.getInt("expires_in"));  
  49.             token.setOpenid(jsonObject.getString("openid"));  
  50.             token.setRefreshToken(jsonObject.getString("refresh_token"));  
  51.             token.setScope(jsonObject.getString("scope"));  
  52.         }  
  53.           
  54.         return token;  
  55.     }  
  56.           
  57. }  


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多