WechatUtil.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package cn.iselab.mooctest.user.util;
  2. import cn.iselab.mooctest.rpc.user.data.WechatUserInfoDTO;
  3. import cn.iselab.mooctest.user.data.Token;
  4. import cn.iselab.mooctest.user.data.UserInfo;
  5. import com.google.gson.Gson;
  6. import org.json.JSONObject;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. /**
  10. * @Author ROKG
  11. * @Description
  12. * @Date: Created in 下午4:41 2018/4/2
  13. * @Modified By:
  14. */
  15. public class WechatUtil {
  16. protected final static Logger LOG = LoggerFactory.getLogger(WechatUtil.class);
  17. public final static String base_url="https://api.weixin.qq.com/sns/";
  18. public final static String token_url=base_url+"oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
  19. public final static String refresh_url=base_url+"oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN";
  20. public final static String user_info_url=base_url+"userinfo?access_token=ACCESS_TOKEN&openid=OPENID";
  21. public static Token getToken(String appId, String appSecret, String code) {
  22. Token token = new Token();
  23. LOG.info("to get the token");
  24. String result="";
  25. try {
  26. String url = token_url.replace("APPID", appId).replace("SECRET", appSecret).replace("CODE", code);
  27. result = HttpClientUtils.get(url.toString(), "UTF-8");
  28. }catch (Exception e){
  29. LOG.error("获取token失败:"+e.getMessage());
  30. }
  31. JSONObject object=new JSONObject(result);
  32. try {
  33. System.out.println(object);
  34. token.setAccessToken(object.getString("access_token"));
  35. token.setExpiresIn(object.getInt("expires_in"));
  36. token.setRefresh_token(object.getString("refresh_token"));
  37. token.setOpenId(object.getString("openid"));
  38. }catch (Exception e){
  39. LOG.error("获取token失败 errcode:" + object.getInt("errcode") + " errmsg:" + object.getString("errmsg"));
  40. }
  41. return token;
  42. }
  43. public static WechatUserInfoDTO getWxUser(String accessToken, String openid){
  44. Gson gson=new Gson();
  45. String result="";
  46. try {
  47. String url = user_info_url.replace("ACCESS_TOKEN", accessToken).replace("OPENID", openid);
  48. result = HttpClientUtils.get(url.toString(), "UTF-8");
  49. }catch (Exception e){
  50. LOG.error("获取token失败:"+e.getMessage());
  51. }
  52. WechatUserInfoDTO userInfo=gson.fromJson(result,WechatUserInfoDTO.class);
  53. System.out.println("openId:"+userInfo.getOpenid());
  54. System.out.println("unionId:"+userInfo.getUnionid());
  55. System.out.println("nickname:"+userInfo.getNickname());
  56. return userInfo;
  57. }
  58. }