微信开发框架Java版

首先感谢liuhf等大佬的代码。

前些日子封装了一个微信开发框架,也没必要起名字,毕竟不是什么大项目,个人自用妥妥的。


使用方法:

新建一java web项目

新建servlet作为微信接口:

/**
 * Servlet implementation class WxInterface
 */
@WebServlet(name = "/WxInterface", loadOnStartup = 1, urlPatterns = "/WxInterface")
public class WxInterface extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public static final boolean ENABLE_ACCESS_TOKEN_MAINTAIN = true;

	// 预读取文本资源
	private String menuTpl = null;
	private String subscribeMessage = null;
	private String bindTip = null;
	private String unbindTip = null;

	public static WxBot wxBot;
	private MessageHandler handler = new MessageHandler(wxBot) {
		public String onTextMessage(java.util.Map<String, String> requestMap) {
			 return "success";
		};

		public String onGetAccessToken(String accesstoken) {
			System.out.println("获取到了Access Token");
			String resultMenu = wxBot.setMenu(menuTpl);
			System.out.println("更新菜单请求的返回:" + resultMenu);
			return null;
		};

		public String onEventClickMessage(java.util.Map<String, String> requestMap) {
			// NetUtil.dumpMap(requestMap);
			String eventKey = requestMap.get("EventKey");
			String fromUserName = requestMap.get("FromUserName");
			String toUserName = requestMap.get("ToUserName");
			if (eventKey.equals("V1001_BIND")) {
				String finalBindTip = String.format(bindTip, "http://www.baidu.com/");
				return WxBot.makeSimpleMessage(toUserName, fromUserName, finalBindTip);
			} else if (eventKey.equals("V1001_UNBIND")) {
				String finalUnBindTip = String.format(unbindTip, "http://www.baidu.com/");
				return WxBot.makeSimpleMessage(toUserName, fromUserName, finalUnBindTip);
			}
			return "success";
		};

		public String onEventSubscribeMessage(java.util.Map<String, String> requestMap) {
			// 发送方帐号
			String fromUserName = requestMap.get("FromUserName");
			// 开发者微信号s
			String toUserName = requestMap.get("ToUserName");
			// 回复文本消息
			return WxBot.makeSimpleMessage(toUserName, fromUserName, subscribeMessage);
		};

	};

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public WxInterface() {
		super();
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		wxBot.checkSignature(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		wxBot.processRequest(request, response);
		// doGet(request, response);
	}

	@Override
	public void init() throws ServletException {
		menuTpl = IoUtil.ReadFile(getServletContext().getRealPath("wx/menu.json"));
		subscribeMessage = IoUtil.ReadFile(getServletContext().getRealPath("wx/subscribe.txt"));
		bindTip = IoUtil.ReadFile(getServletContext().getRealPath("wx/bindTip.txt"));
		unbindTip = IoUtil.ReadFile(getServletContext().getRealPath("wx/unbindTip.txt"));
		
		wxBot = new WxBot("token", "appid", "secret",
				"aes");
		wxBot.setMessageHandler(handler);
		super.init();
	}

	@Override
	public void destroy() {
		wxBot.release();
		super.destroy();
	}
}


猜你喜欢

转载自blog.csdn.net/wang805447391/article/details/78262979