您好,欢迎访问一九零五行业门户网

利用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开发微信实现微信主动推送消息实例的详细内容。
其它类似信息

推荐信息