web.xml
<servlet> <servlet-name>weichatServlet</servlet-name> <servlet-class>cn.hy.weixin.controller.WeichatServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>weichatServlet</servlet-name> <url-pattern>/weichat.do</url-pattern> </servlet-mapping>
servlet
package cn.hy.weixin.controller; import java.io.IOException; import java.io.PrintWriter; import java.util.Map; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.mvc.Mvcs; import cn.hy.activity.data.Activity; import cn.hy.activity.service.ActivityService; import cn.hy.weixin.entity.AccessToken; import cn.hy.weixin.util.AccessTokenUtil; import cn.hy.weixin.util.CheckUtil; import cn.hy.weixin.util.MessageUtil; import net.sf.json.JSONObject; public class WeichatServlet extends HttpServlet{ private static final long serialVersionUID = 3264201758083219979L; public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{ String signature = request.getParameter("signature"); String timestamp = request.getParameter("timestamp"); String nonce = request.getParameter("nonce"); String echostr = request.getParameter("echostr"); System.out.println("signature="+signature); System.out.println("timestamp="+timestamp); System.out.println("nonce"+nonce); PrintWriter out = response.getWriter(); if(CheckUtil.checkSignature(signature, timestamp, nonce)){ out.print(echostr); } } public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{ request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); try { Map<String,String> map = MessageUtil.xmlToMap(request); String toUserName = map.get("ToUserName"); String fromUserName = map.get("FromUserName"); String msgType = map.get("MsgType"); String content = map.get("Content"); for(String str : map.keySet()) { System.out.println("key..." + str + " " + map.get(str)); } String message = null; if(MessageUtil.MESSAGE_EVENT.equals(msgType)){ String eventType = map.get("Event"); System.out.println("msgType" +msgType); System.out.println("scene_id = " + map.get("EventKey"));//获取二维码自定义参数 if(MessageUtil.MESSAGE_EVENT_SUBSCRIBE.equals(eventType)){//关注事件 //创建自定义菜单 AccessToken token = AccessTokenUtil.getAccessToken(); String menu = JSONObject.fromObject(MessageUtil.initMenu()).toString(); int result = MessageUtil.createMenu(token.getToken(), menu); System.out.println("-------------------------------------"); System.out.println(token.getToken()); System.out.println(menu +"\r\n"+menu.getBytes().length); System.out.println("--crate menu--"+result +"--------------"); System.out.println("-------------------------------------"); int activityId =0; String sceneId = map.get("EventKey"); if(sceneId != null && sceneId !=""){ try{ activityId =Integer.parseInt(sceneId.split("_")[1]); }catch(Exception e){ activityId =0; } } if(activityId == 0 ){ message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.initMenuMsaage()); }else{ ActivityService activityService = (ActivityService) Mvcs.ctx().getDefaultIoc().get(ActivityService.class); System.out.println("activityService"+activityService); Activity activity = activityService.getActivityDetail(activityId); StringBuffer sb =new StringBuffer(); sb.append("名称: "+ activity.getName()+"\n\n"); sb.append("活动代码: "+ activity.getCode()+"\n\n"); message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.initMenuMsaage(sb)); } } if(MessageUtil.MESSAGE_EVENT_UNSUBSCRIBE.equals(eventType)){//取消关注 //todo } if(MessageUtil.MESSAGE_EVENT_VIEW.equals(eventType)) { System.out.println("here...." + eventType); } } else if(MessageUtil.MESSAGE_TEXT.equals(msgType)){ if(content.equals("1")){ System.out.println("toUserName------------------------" +toUserName); message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.fristKey()); System.out.println("message------------------------" +message); }else if(content.equals("2")){ System.out.println("toUserName------------------------" +toUserName); message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.secKey()); }else if(content.equals("3")){ System.out.println("toUserName------------------------" +toUserName); message = MessageUtil.initNews(toUserName, fromUserName); }else if(content.equals("?") || content.equals("?")){ message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.initMenuMsaage()); } } out.print(message); } catch (Exception e) { e.printStackTrace(); }finally{ out.close(); } } }
service 获取
ActivityService activityService = (ActivityService) Mvcs.ctx().getDefaultIoc().get(ActivityService.class);
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(支持支付宝和微信 以及扣扣群),没钱捧个人场,谢谢各位。
个人主页:http://knight-black-bob.iteye.com/
谢谢您的赞助,我会做的更好!
相关推荐
nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册
用于部署nutz下的junit测试工具,需要jetty-all这个jar包和servlet-api2.5
用于nutz邮箱验证jar包
nutz生成javabean工具.zip
可连接多种数据库根据表直接生成nutz所需的bean
nutz框架使用手册,从零到有深入学习nutz平台开发
可以快速定位路径 页面 本jar包是nutz实用插件 希望大家多多下载
nutz框架jar包
对于 Java 程序员来说,除 SSH 之外,可能还有另外一个选择: Nutz 当然,它是开源的,并且是完全免费的。 同传统的 SSH 相比,它具备如下特点: 轻 -- 当前最新版,整个 jar 文件共 820k 薄 -- 针对 JDBC 的薄封装...
nutz框架开发手册,框架很方便使用的,和大家分享
在做nutz redis集成的实时,由于依赖包的问题被坑了一把,为了后人不要走同样的路,把所有依赖包放在上面了。
Nutz, 它是一组轻便小型的框架的集合。 -------------Nutz 可以做什么? Dao -- 针对 JDBC 的薄封装,事务模板,无缓存 Ioc -- JSON 风格的配置文件,声明时切片支持 Mvc -- 注解风格的配置,内置多文件上传功能 ...
让nutz支持freemarker。 具体使用和在struts2中使用是一样的
用开源框架nutz搭建的MVC框架,适合小型系统的开发,快捷方便!
nutz-1.r.61-发布包
Spring 里采用 Nutz.Dao ,又比如在 Nutz.Ioc 里使用 Hibernate 等整 -- 它所有功能均不依赖第三方 jar 文件。这就意味着:如果一个 Web 应用,你在 WEB-INF/lib 下只 需要放置一个 nutz.jar 就够了当然你要使用其它...
nutz-1.r.60.jar
nutz jar包
SpringMVC+Nutz框架介绍.pdf