JAVA微信开发总结的图文代码分享

互联网 17-4-15
最近研究了一下微信,感觉不是很难,借鉴了marker(www.yl-blog.com)的开源代码,修改了几处小BUG(在作者的开源网站上留了言,详见其开源网站),很快就实现关键的逻辑:   1、开发者验证   2、通过程序接口自定义菜单   3、用户关注后,发送欢迎消息   4、根据用户输入为其选择感兴趣的话题   5、发送文件消息、发送图文消息   6、使用静态网页模拟了微信网站的简单模板   公众号,daydayup_it,正在紧张的策划开发中,近期上线,计划主要提供一些优质的教育资源,敬请大家关注。   准备有空把关键技术整理一下,贴出来跟大家交流。   一、开发者验证,其实主要是写个Servlet,有点Web开发经验就很容易搞定
package org.marker.weixin.test;    import java.io.IOException;  import java.io.InputStream;  import java.io.OutputStream;  import java.io.Writer;  import java.util.ArrayList;  import java.util.Collections;  import java.util.Date;  import java.util.List;    import javax.servlet.ServletException;  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;    import org.apache.commons.logging.Log;  import org.apache.commons.logging.LogFactory;    /**   * 处理微信服务器请求的Servlet URL地址:http://xxx/weixin/dealwith.do   *    * @author marker   * @blog www.yl-blog.com   * @weibo http://t.qq.com/wuweiit   */  public class WinXinServlet extends HttpServlet {  	private static final long serialVersionUID = 1L;  	private static Log log = LogFactory.getLog(WinXinServlet.class);    	// TOKEN 是你在微信平台开发模式中设置的字符串  	public static final String TOKEN = "YourToken";    	/**  	 * 处理微信服务器验证  	 * http://wallimn.iteye.com, 2014-09-11  	 */  	protected void doGet(HttpServletRequest request,  			HttpServletResponse response) throws ServletException, IOException {  		String signature = request.getParameter("signature");// 微信加密签名  		String timestamp = request.getParameter("timestamp");// 时间戳  		String nonce = request.getParameter("nonce");// 随机数  		String echostr = request.getParameter("echostr");// 随机字符串  		Writer out = response.getWriter();  		System.out.println("收到验证请求:");  		System.out.println("  signature="+signature);  		System.out.println("  timestamp="+timestamp);  		System.out.println("  nonce="+nonce);  		System.out.println("  echostr="+echostr);  		if(signature==null || timestamp==null || nonce==null || echostr==null){  			//这几个参数为空时,排序会报错。  			out.write("parameter is null!");  		}  		else{  			// 重写totring方法,得到三个参数的拼接字符串  			List<String> list = new ArrayList<String>(3) {  				private static final long serialVersionUID = 2621444383666420433L;  				public String toString() {  					return this.get(0) + this.get(1) + this.get(2);  				}  			};  			list.add(TOKEN);  			list.add(timestamp);  			list.add(nonce);  			Collections.sort(list);// 排序  			String tmpStr = new MySecurity().encode(list.toString(),  					MySecurity.SHA_1);// SHA-1加密  			if (signature.equals(tmpStr)) {  				out.write(echostr);// 请求验证成功,返回随机码  			} else {  				out.write("check error!");  			}  		}  		out.flush();  		out.close();  	}    	  	/**  	 * 处理微信服务器发过来的各种消息,包括:文本、图片、地理位置、音乐等等  	 * http://wallimn.iteye.com, 2014-09-11  	 */  	protected void doPost(HttpServletRequest request,  			HttpServletResponse response) throws ServletException, IOException {  		log.info("收到POST请求:"+(new Date()));  		request.setCharacterEncoding("utf-8");  		response.setContentType("text/html; charset=utf-8");  		InputStream is = request.getInputStream();  		OutputStream os = response.getOutputStream();  		//TODO:写微信平台推送过来的各种信息的处理逻辑  	}  }

  二、微信网站的测试主页效果及代码,借助bootstrap,支持媒体查询,当手机水平看时,栏目会变成2*2布局,index.jsp,需要JSTL的支持,也可以自行去掉,不影响效果,注意连接文件的路径即可

以上就是JAVA微信开发总结的图文代码分享的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:甲骨文培训和达内哪家好

相关资讯