天天看点

微信工具类(获取access_token、post请求方法)

public class WechatUtil {

    public final static Logger log = LoggerFactory.getLogger(WechatUtil.class);

    public static final String WechatUniformMessagePostUrl = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=";

    public static final String WechatAccessTokenPostUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";

    public static final String WechatGetOpenIdPostUrl = "https://api.weixin.qq.com/sns/jscode2session?grant_type=authorization_code";

    public static String getWechatAccessToken(String appId,String appSecret){

        if(!StringUtils.isBlank(appId)&&!StringUtils.isBlank(appSecret)){

            NameValuePair[] arr = new NameValuePair[]{new NameValuePair("appid",appId),new NameValuePair("secret",appSecret)};

            try {

                String result = HttpUtil.post(WechatAccessTokenPostUrl, arr);

                log.debug("请求微信接口获取access_token的回显:[{}]",result);

                if(!StringUtils.isBlank(result) && result.contains(SystemConstant.WECHAT_RESPONSE_ACCESS_TOKEN_EXPIRES_IN)){//7200

                    JSONObject jo = JSON.parseObject(result);

                    String successCode = jo.getString(SystemConstant.WECHAT_RESPONSE_ACCESS_TOKEN_EXPIRES_IN);

                    if(SystemConstant.WECHAT_RESPONSE_ACCESS_TOKEN_SUCCESS.equals(successCode)){

                        //success

                        String access_token = jo.getString(SystemConstant.WECHAT_RESPONSE_ACCESS_TOKEN);

                        log.debug("获取access_token:[{}]",access_token);

                        return access_token;

                    }

                }

            } catch (IOException e) {

                e.printStackTrace();

            }

        }

        return null;

    }

    public static String httpsRequest(String requestUrl, String requestMethod, String outputStr) {

        try {

            URL url = new URL(requestUrl);

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();

            conn.setDoOutput(true);

            conn.setDoInput(true);

            conn.setUseCaches(false);

            // 设置请求方式(GET/POST)

            conn.setRequestMethod(requestMethod);

            conn.setRequestProperty("content-type", "application/json");

            // 当outputStr不为null时向输出流写数据

            if (null != outputStr) {

                OutputStream outputStream = conn.getOutputStream();

                // 注意编码格式

                outputStream.write(outputStr.getBytes("UTF-8"));

                outputStream.close();

            }

            // 从输入流读取返回内容

            InputStream inputStream = conn.getInputStream();

            InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");

            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

            String str = null;

            StringBuffer buffer = new StringBuffer();

            while ((str = bufferedReader.readLine()) != null) {

                buffer.append(str);

            }

            // 释放资源

            bufferedReader.close();

            inputStreamReader.close();

            inputStream.close();

            inputStream = null;

            conn.disconnect();

            return buffer.toString();

        } catch (ConnectException ce) {

            ce.printStackTrace();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return null;

    }

}

继续阅读