纯JSP与腾讯微信对接

公司运营的一个网站需要与微信对接,使用微信的自动回复功能作为与网友的交流手段。网上只找到ASP的例子,以及官方提供的PHP方面的例子。都比较模糊,自己摸索了一下,搞定,现分享如下:

1.注册公共平台接口
纯JSP与腾讯微信对接_第1张图片
按要求填写,URL处留空,先不要点提交。
2.此时在本地新建一个UTF-8格式的JSP,文件名任意,我使用的文件名为wx.jsp,内容如下:
Java code
?
1
2
3
<%
   out.print(request.getParameter( "echostr" ));
%>

3.将wx.jsp上传到服务器中,并将该jsp的访问路径复制到“1”中的URL中,此时点提交,则会提示验证成功。
4.再次打开jsp文件,注释掉“2”中的代码,我的理解是,那段代码仅为第一次验证URL有效性的时候使用。
5.编写如下代码(注:为了抛砖引玉,所以代码比较简单,未引入任何第三方jar包,方便大家测试)
Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// 接收XML数据
BufferedReader br =  new  BufferedReader( new  InputStreamReader((ServletInputStream)request.getInputStream()));
String line =  null ;
StringBuilder sb =  new  StringBuilder();
while ((line = br.readLine())!= null ){
     sb.append(line);
}
// 取出发送用户
String xmlS = sb.toString();
int  fromuser_s = xmlS.indexOf( "<FromUserName><![CDATA[" );
int  fromuser_e = xmlS.indexOf( "]]></FromUserName>" );
String fromuser = xmlS.substring(fromuser_s +  23 , fromuser_e);
// 取出目标用户
int  touser_s = xmlS.indexOf( "<ToUserName><![CDATA[" );
int  touser_e = xmlS.indexOf( "]]></ToUserName>" );
String touser = xmlS.substring(touser_s +  21 , touser_e);
// 取出发送内容
int  content_s = xmlS.indexOf( "<Content><![CDATA[" );
int  content_e = xmlS.indexOf( "]]></Content>" );
String content = xmlS.substring(content_s +  18 , content_e);
 
out.print( "<xml>" );
out.print( "    <ToUserName><![CDATA[" +fromuser+ "]]></ToUserName>" );
out.print( "    <FromUserName><![CDATA[" +touser+ "]]></FromUserName>" );
out.print( "    <CreateTime>" + new  Date().getTime()+ "</CreateTime>" );
out.print( "    <MsgType><![CDATA[text]]></MsgType>" );
out.print( "    <Content><![CDATA[你好:D,自动回复接口测试成功。]]></Content>" );
out.print( "    <FuncFlag>0</FuncFlag>" );
out.print( "</xml>" );

6.保存文件,更新代码到服务器端,使用手机测试即可。

你可能感兴趣的:(纯JSP与腾讯微信对接)