您的位置:首页 > 移动开发 > 微信开发

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

2019-07-02 11:27 225 查看

public class WechatUtil {
    public final static Logger log = LoggerFactory.getLogger(WechatUtil.class);
    
    /**
     * 发送微信统一消息api接口
     */
    public static final String WechatUniformMessagePostUrl = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=";
    /**
     * 获取access_token api接口
     */
    public static final String WechatAccessTokenPostUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
    /**
     * 获取openid api接口
     */
    public static final String WechatGetOpenIdPostUrl = "https://api.weixin.qq.com/sns/jscode2session?grant_type=authorization_code";
    /**
     * 获取微信access_token
     * @param appId
     * @param appSecret
     * @return
     */
    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;
    }
    
    /**
     * 请求方法
     * @param requestUrl
     * @param requestMethod
     * @param outputStr
     * @return
     */
    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;
    }
    
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐