JavaWeb发送信息到微信公众平台的企业号

标签: javaweb 信息 微信 | 发表时间:2015-11-01 22:42 | 作者:shihuan830619
出处:http://www.iteye.com
首先到微信公众平台申请微信企业号: https://qy.weixin.qq.com
申请后需要在管理平台做如下几个步骤:
1、在通讯录里添加一个成员并使这个成员关注这个微信企业号;
2、在应用中心里新建一个应用并记录appid;
3、在设置里的权限管理中新建管理组;


新建一个JavaWeb工程并导入如下几个jar文件:
commons-logging-1.1.1.jar,fastjson-1.2.7.jar,httpclient-4.5.1.jar,httpcore-4.4.3.jar,weixin-java-cp-1.3.1.jar

下载jquery-2.1.4.min.js文件并添加到JavaWeb工程中。

JavaWeb工程的代码如下:

AccessToken.java文件内容如下:
package com.shihuan.pojo;

import java.io.Serializable;

public class AccessToken implements Serializable {

	private String access_token;
	private String expires_in;
	
	public AccessToken() {
		
	}

	public String getAccess_token() {
		return access_token;
	}

	public void setAccess_token(String accessToken) {
		access_token = accessToken;
	}

	public String getExpires_in() {
		return expires_in;
	}

	public void setExpires_in(String expiresIn) {
		expires_in = expiresIn;
	}
	
}


Text.java文件内容如下:
package com.shihuan.pojo;

import java.io.Serializable;

public class Text implements Serializable {

	private String content;

	public Text() {
		
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}
	
}


MsgTypeAndDataFormat.java文件内容如下:
package com.shihuan.pojo;

import java.io.Serializable;

public class MsgTypeAndDataFormat implements Serializable {

	private String touser;
	private String toparty;
	private String totag;
	private String msgtype;
	private String agentid;
	private Text text;
	private String safe;
	
	public MsgTypeAndDataFormat() {
		
	}

	public String getTouser() {
		return touser;
	}

	public void setTouser(String touser) {
		this.touser = touser;
	}

	public String getToparty() {
		return toparty;
	}

	public void setToparty(String toparty) {
		this.toparty = toparty;
	}

	public String getTotag() {
		return totag;
	}

	public void setTotag(String totag) {
		this.totag = totag;
	}

	public String getMsgtype() {
		return msgtype;
	}

	public void setMsgtype(String msgtype) {
		this.msgtype = msgtype;
	}

	public String getAgentid() {
		return agentid;
	}

	public void setAgentid(String agentid) {
		this.agentid = agentid;
	}

	public Text getText() {
		return text;
	}

	public void setText(Text text) {
		this.text = text;
	}

	public String getSafe() {
		return safe;
	}

	public void setSafe(String safe) {
		this.safe = safe;
	}
	
}


WeixinCpServlet.java文件内容如下:
package com.shihuan.servlet;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import com.alibaba.fastjson.JSON;
import com.shihuan.pojo.AccessToken;
import com.shihuan.pojo.MsgTypeAndDataFormat;
import com.shihuan.pojo.Text;

public class WeixinCpServlet extends HttpServlet {

	protected void doGet(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse) throws ServletException, IOException {
		System.out.println("doGet...");
		paramHttpServletResponse.getWriter().write("WeixinCp doGet!");
		paramHttpServletResponse.flushBuffer();
		System.out.println("doGet...");
	}

	protected void doPost(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse) throws ServletException, IOException {
		System.out.println("doPost...");
		
		String corpid = paramHttpServletRequest.getParameter("corpid");
		String corpsecret = paramHttpServletRequest.getParameter("corpsecret");
		StringBuilder sb = new StringBuilder();
		sb.append("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=").append(corpid).append("&corpsecret=").append(corpsecret);
		String getTokenUrl = sb.toString();
		HttpPost getTokenUrlPost = new HttpPost(getTokenUrl);
		DefaultHttpClient getTokenUrlClient = new DefaultHttpClient();
		HttpResponse getTokenUrlResponse = getTokenUrlClient.execute(getTokenUrlPost);
		AccessToken atentry = new AccessToken();
		if (getTokenUrlResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
        	HttpEntity entity = getTokenUrlResponse.getEntity();
        	String jsontext = EntityUtils.toString(entity, "utf-8");
        	System.out.println(jsontext);
        	atentry = (AccessToken) JSON.parseObject(jsontext, AccessToken.class);
        }
		
		String access_token = atentry.getAccess_token();
		System.out.println(access_token);
		StringBuilder sbsend = new StringBuilder();
		sbsend.append("https://qyapi.weixin.qq.com/cgi-bin/message/send?body=0&access_token=").append(access_token);
		String url = sbsend.toString();
		
		String jsonbody = paramHttpServletRequest.getParameter("jsonbody");
		
		Text t = new Text();
		t.setContent(jsonbody);
		
		MsgTypeAndDataFormat m = new MsgTypeAndDataFormat();
		m.setAgentid("2");
		m.setMsgtype("text");
		m.setSafe("0");
		m.setText(t);
		m.setToparty("@all");
		m.setTotag("@all");
		m.setTouser("@all");
		
		String json = JSON.toJSONString(m);
		
		DefaultHttpClient client = new DefaultHttpClient();
		HttpPost post = new HttpPost(url);
		
		StringEntity s = new StringEntity(json);
		s.setContentEncoding("UTF-8");
        s.setContentType("application/json");
        post.setEntity(s);
        
        HttpResponse res = client.execute(post);
        if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
        	HttpEntity entity = res.getEntity();
        	System.out.println(EntityUtils.toString(entity, "utf-8"));
        }
		
		System.out.println("doPost...");
	}

	public void service(ServletRequest paramServletRequest, ServletResponse paramServletResponse) throws ServletException,IOException {
		System.out.println("WeixinCpService...");
		super.service(paramServletRequest, paramServletResponse);
		paramServletResponse.getWriter().write("WeixinCp service!");
		System.out.println("WeixinCpService...");
	}

	public void init(ServletConfig paramServletConfig) throws ServletException {
		super.init(paramServletConfig);
		System.out.println("WeixinCpServlet...");
	}

	public void destroy() {
		System.out.println("WeixinServlet[destroy]...");
		super.destroy();
	}

}


web.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

	<display-name>WeixinCp</display-name>
	
	<servlet>
		<servlet-name>WeixinCpServlet</servlet-name>
		<servlet-class>com.shihuan.servlet.WeixinCpServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>WeixinCpServlet</servlet-name>
		<url-pattern>/weixincp</url-pattern>
	</servlet-mapping>



	<session-config>
		<session-timeout>60</session-timeout>
	</session-config>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>

</web-app>


index.html文件内容如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>weixincp servlet</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<script type="text/javascript" src="js/jquery-2.1.4.min.js"></script>
	<script type="text/javascript">
		function sendWxMsg(){
			var url = "weixincp";
			$.post(url, {corpid:$("#corpid").val(),corpsecret:$("#corpsecret").val(),jsonbody:$("#jsonbody").val()});
		}
	</script>
  </head>
  
  <body>
    <form name="frm_data" id="frm_data" method="POST" action="weixincp">
	  corpid: <input type="text" id="corpid" name="corpid" value="" size="80px" /><br />
	  corpsecret: <input type="text" id="corpsecret" name="corpsecret" value="" size="80px" /><br />
	  content: <input type="text" id="jsonbody" name="jsonbody" value="" size="80px" /><br /><br />
	  <input type="button" id="sendbtn" name="sendbtn" value="sendWxMsg" onclick="sendWxMsg();" />
	</form>
  </body>
</html>



【注】:附件中是可运行源代码,



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [javaweb 信息 微信] 推荐:

JavaWeb发送信息到微信公众平台的企业号

- - 行业应用 - ITeye博客
首先到微信公众平台申请微信企业号: https://qy.weixin.qq.com. 申请后需要在管理平台做如下几个步骤:. 1、在通讯录里添加一个成员并使这个成员关注这个微信企业号;. 2、在应用中心里新建一个应用并记录appid;. 3、在设置里的权限管理中新建管理组;. 新建一个JavaWeb工程并导入如下几个jar文件:.

JavaWeb提高并发数之二十三条

- - Java - 编程语言 - ITeye博客
      这是一篇由junly总结的大型java项目开发经验,文章从多个方面讨论了如何提高服务器的并发效率. 从常用的使用数据库连接池,减少对象的创建,开发架构,框架选型,到不太常用的数据缓存,数据库分级存储,服务器优化等23个方面,作出了比较全面的解析. 1 .对Collection、Map接口的类对象初始化时要先分配合理的空间大小,同时还要按照自已的实际需求选择合适的对象.

JavaWeb实现服务器端到客户端的验证码(MD5)校验

- - ITeye博客
首先看看服务端产生验证码的代码. (很简单 A-Z, 然后是0-9). /** * 产生验证码类(MD5)加密 * @author Thunder * */ public class VerificationCode {. * @param codeLength 指定验证码的长度. * @return 随机生成的验证码.

微信公众平台开发(三)--位置信息的识别

- - BlogJava-首页技术区
位置识别这是实际应用经常应用的消息,特别是很多商家,通过了解用户位置,给用户提供特别的产品或是商场的推荐. 其中用户可能发送两种类型的消息:. 2.路名、标志性建筑或是商场名称. 认识一下,微信地理位置消息,包含一些什么信息. . 包含的主要信息有经度纬度和Label的位置.

信息过载,不如逃离微信朋友圈

- - 钛媒体网
逃离 微信朋友圈正在成为一种潮流. 近期在新浪微博——这个已有用户大规模逃离的产品——上,“爸妈攻陷朋友圈”的主题被广为讨论. 显而易见的是,很多微信朋友圈的使用者,越来越无法忍受信息流中频繁出现的噪音. 这种噪音,曾出现在3年前的新浪微博、4年前的人人网、5年前的天涯社区,也曾出现在10年前的短信段子中,并且仍在占领这些阵地.

微信公众号开发系列-网页授权获取用户基本信息

- - CSDN博客Web前端推荐文章
OAuth2.0网页授权这个也是在做微信公众平台用到最多的,可以利用授权接口对自己平台内用户进行绑定,实现用户扫描码和微信分享、微信签到、微信商城购物等;. 1、高级接口OAuth2.0网页授权设置. a、进入高级接口列表-OAuth2.0-点击修改设置授权域名,域名可以上一级域名和二级域名. b、填写要设置授权域名,我这里用的的是二级域名.

微信开发之获取OAuth2.0网页授权认证和获取用户信息进行关联

- - ITeye博客
        最近有做了关于微信公众号和自己网站用户进行用户关联授权登录的一个功能,主要是用户关注该公众号,点击会员中心,则会弹出需要关联授权的网页授权:OAuth2.0网页授权,然后用户同意获取用户信息,进行用户和网站的关联,然后用户则可以使用微信进行登录.         本次做的是一个在Java的Action层处理各个返回参数获取数据.

信息架构

- Michael - Tony-懒得设计
写几篇关于信息架构的文章,系统地输出我理解的信息架构. 发了一篇关于招信息架构实习生的博客,收到不少简历. 但谈起信息架构,多数不了解,稍微了解的扯了很多很偏的东西. 随手搜索了一下,我发现了原因:. 1 《web信息架构》这本书太概念,太学术. 2 有人绑架了“信息架构”这个词,拿出去唬人,内容都是皮毛或者是根本和信息架构不沾边的东西.

免费VPN信息

- 勇 - iGFW
免费试用2天的pptp pn和openvpn. 免费美国pptp vpn帐号. 服务器 199.119.203.166 用户名 vpn 密码 1q2w3e. PageRank为 1及以上的网站,发文介绍此VPN即可得到免费一年的pptp vpn服务,如果再完成其指定的五步操作可获终身免费帐号. Trial accounts have some limitations like you can only use our single demo server, 200mb of bandwidth usage everyday(6GB/Month), some websites are blocked.