123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package cn.efunbox.base.util;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringUtils;
- @Slf4j
- public class WxApiUtil {
- private static String appId = "wxf05800eea975a68b";
- private static String appSecret = "f0b98db85fab75286aba3971270985db";
- private static String accessTokenUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={APPID}&secret={SECRET}&code={CODE}&grant_type=authorization_code";
- private static String userInfoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token={ACCESS_TOKEN}&openid={OPENID}&lang=zh_CN";
- /**
- * 请求微信时的错误标志字段
- */
- public static final String WEIXIN_ERROR_CODE_FIELD = "errcode";
- /**
- * 请求微信时,成功标志字段
- */
- public static final int WEIXIN_SUCCESS_CODE = 0;
- public static boolean isWeixinRequestSuccess(JSONObject jsonObj) {
- if (jsonObj == null || (jsonObj.containsKey(WEIXIN_ERROR_CODE_FIELD)
- && jsonObj.getIntValue(WEIXIN_ERROR_CODE_FIELD) != WEIXIN_SUCCESS_CODE)) {
- return false;
- }
- return true;
- }
- public static JSONObject getWXAccessInfo(String code) {
- String requestUrl = accessTokenUrl.replace("{APPID}", appId).replace("{SECRET}", appSecret).replace("{CODE}", code);
- log.info("find wx access token requestUrl=="+requestUrl);
- String resp = HttpUtils.doRequest(requestUrl, "GET");
- JSONObject jsonObject = JSONObject.parseObject(resp);
- log.info("find wx access token resp:"+jsonObject.toString());
- if (WxApiUtil.isWeixinRequestSuccess(jsonObject)) {
- return jsonObject;
- }
- return null;
- }
- public static JSONObject getWxUserInfo(JSONObject accessObject) {
- String openid = accessObject.getString("openid");
- String access_token = accessObject.getString("access_token");
- if (StringUtils.isEmpty(openid) || StringUtils.isEmpty(access_token)) {
- return null;
- }
- JSONObject jsonObject = requestWxUserInfo(openid, access_token);
- log.info("requestWxUserInfo: {}", JSON.toJSONString(jsonObject));
- if (!WxApiUtil.isWeixinRequestSuccess(jsonObject)) {
- return null;
- }
- return jsonObject;
- }
- public static JSONObject requestWxUserInfo(String openid, String accessToken) {
- String requestUrl = userInfoUrl.replace("{ACCESS_TOKEN}", accessToken).replace("{OPENID}", openid);
- String resp = HttpUtils.doRequest(requestUrl, "GET");
- JSONObject jsonObject = JSONObject.parseObject(resp);
- return jsonObject;
- }
-
- }
|