java微信主动推送消息_利用java开发微信实现微信主动推送消息实例

利用java开发微信实现微信主动推送消息实例,接口,用户信息,主动,消息,信息

利用java开发微信实现微信主动推送消息实例

易采站长站,站长之家为您整理了利用java开发微信实现微信主动推送消息实例的相关内容。

这篇文章主要介绍了利用java开发微信实现微信主动推送消息实例,需要的朋友可以参考下

1.拉取access_token

2.拉取用户信息

3.主动推送消息

4.接口貌似要申请权限

5.依赖httpclient4.2.3 和jackson 2.2.1

代码如下:public class WeixinAPIHelper { /** * 获取token接口 */ private String getTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}"; /** * 拉微信用户信息接口 */ private String getUserInfoUrl = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}"; /** * 主动推送信息接口 */ private String sendMsgUrl = "https://api.weixin.qq.com/cgi-bin/message/send?access_token={0}"; private HttpClient webClient; private Log log = LogFactory.getLog(getClass()); public void initWebClient(String proxyHost, int proxyPort){ this.initWebClient(); if(webClient != null && !StringUtils.isEmpty(proxyHost)){ HttpHost proxy = new HttpHost(proxyHost, proxyPort); webClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); } } /** * @desc 初始化创建 WebClient */ public void initWebClient() { log.info("initWebClient start...."); try { PoolingClientConnectionManager tcm = new PoolingClientConnectionManager(); tcm.setMaxTotal(10); SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager tm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { } public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return null; } }; ctx.init(null, new X509TrustManager[] { tm }, null); SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); Scheme sch = new Scheme("https", 443, ssf); tcm.getSchemeRegistry().register(sch); webClient = new DefaultHttpClient(tcm); } catch (Exception ex) { log.error("initWebClient exception", ex); } finally { log.info("initWebClient end...."); } } /** * @desc 获取授权token * @param appid * @param secret * @return */ public String getAccessToken(String appid, String secret) { String accessToken = null; try { log.info("getAccessToken start.{appid=" + appid + ",secret:" + secret + "}"); String url = MessageFormat.format(this.getTokenUrl, appid, secret); String response = executeHttpGet(url); accessToken = JsonUtils.read(response, "access_token"); } catch (Exception e) { log.error("get access toekn exception", e); } return accessToken; } /** * @desc 推送信息 * @param token * @param msg * @return */ public String sendMessage(String token,String msg){ try{ log.info("sendMessage start.token:"+token+",msg:"+msg); String url = MessageFormat.format(this.sendMsgUrl, token); HttpPost post = new HttpPost(url); ResponseHandler> responseHandler = new BasicResponseHandler(); StringEntity entity = new StringEntity(msg); post.setEntity(entity); String response = (String) this.webClient.execute(post, responseHandler); log.info("return response=====start======"); log.info(response); log.info("return response=====end======"); return response; }catch (Exception e) { log.error("get user info exception", e); return null; } } /** * @desc 拉取用户信息 * @param token * @param openid * @return */ public WeixinOpenUser getUserInfo(String token, String openid) { try { log.info("getUserInfo start.{token:" + token + ",openid:" + openid + "}"); String url = MessageFormat.format(this.getUserInfoUrl, token, openid); String response = executeHttpGet(url); JsonNode json = JsonUtils.read(response); if (json.get("openid") != null) { WeixinOpenUser user = new WeixinOpenUser(); user.setOpenUserId(json.get("openid").asText()); user.setState(json.get("subscribe").asText()); if ("1".equals(user.getState())) { user.setUserName(json.get("nickname").asText()); user.setSex(json.get("sex").asText()); user.setCity(json.get("city").asText()); user.setLanguage(json.get("language").asText()); } return user; } } catch (Exception e) { log.error("get user info exception", e); } return null; } /** * @desc 发起HTTP GET请求返回数据 * @param url * @return * @throws IOException * @throws ClientProtocolException */ private String executeHttpGet(String url) throws IOException, ClientProtocolException { ResponseHandler> responseHandler = new BasicResponseHandler(); String response = (String) this.webClient.execute(new HttpGet(url), responseHandler); log.info("return response=====start======"); log.info(response); log.info("return response=====end======"); return response; }}以上就是关于对利用java开发微信实现微信主动推送消息实例的详细介绍。欢迎大家对利用java开发微信实现微信主动推送消息实例内容提出宝贵意见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值