搜索
首页微信小程序微信开发JAVA微信开发总结的图文代码分享

最近研究了一下微信,感觉不是很难,借鉴了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的支持,也可以自行去掉,不影响效果,注意连接文件的路径即可 

1465.png

1466.png


以上是JAVA微信开发总结的图文代码分享的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境