精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java:實現微信公眾平臺

開發
本文向大家介紹使用Java來實現微信公共平臺功能,實現根據回復的內容返回對應的消息。供大家學習使用。

1.  Easyui學習班.jpg    

2. [文件] web.xml ~ 755B

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  3.     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
  5.     id="WebApp_ID" version="3.0"> 
  6.     <display-name>微信公共平臺開發者接口</display-name> 
  7.     <filter> 
  8.         <filter-name>WeChatFilter</filter-name> 
  9.         <filter-class>com.gson.WeChatFilter</filter-class> 
  10.     </filter> 
  11.     <filter-mapping> 
  12.         <filter-name>WeChatFilter</filter-name> 
  13.         <url-pattern>/wechat/*</url-pattern> 
  14.     </filter-mapping> 
  15.  
  16.     <welcome-file-list> 
  17.         <welcome-file>index.jsp</welcome-file> 
  18.     </welcome-file-list> 
  19. </web-app> 

#p#

3. [文件] WeChatFilter.java

  1. package com.gson; 
  2.  
  3. import java.io.File; 
  4. import java.io.FileInputStream; 
  5. import java.io.FileNotFoundException; 
  6. import java.io.IOException; 
  7. import java.util.Date; 
  8. import java.util.Properties; 
  9.  
  10. import javax.servlet.Filter; 
  11. import javax.servlet.FilterChain; 
  12. import javax.servlet.FilterConfig; 
  13. import javax.servlet.ServletException; 
  14. import javax.servlet.ServletInputStream; 
  15. import javax.servlet.ServletRequest; 
  16. import javax.servlet.ServletResponse; 
  17. import javax.servlet.http.HttpServletRequest; 
  18. import javax.servlet.http.HttpServletResponse; 
  19.  
  20. import org.apache.log4j.Logger; 
  21.  
  22. import com.gson.bean.Articles; 
  23. import com.gson.bean.InMessage; 
  24. import com.gson.bean.OutMessage; 
  25. import com.gson.inf.MessageProcessingHandler; 
  26. import com.gson.util.Tools; 
  27. import com.gson.util.XStreamFactory; 
  28. import com.thoughtworks.xstream.XStream; 
  29.  
  30. /** 
  31.  * 請求攔截 
  32.  * @author GodSon 
  33.  * 
  34.  */ 
  35. public class WeChatFilter implements Filter { 
  36.      
  37.     private final Logger logger = Logger.getLogger(WeChatFilter.class); 
  38.     private String _token; 
  39.     private String conf = "classPath:wechat.properties"
  40.     private String defaultHandler = "com.gson.inf.DefaultMessageProcessingHandlerImpl"
  41.     private Properties p; 
  42.  
  43.     @Override 
  44.     public void destroy() { 
  45.         logger.info("WeChatFilter已經銷毀"); 
  46.     } 
  47.  
  48.     @Override 
  49.     public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { 
  50.         HttpServletRequest request = (HttpServletRequest) req; 
  51.         HttpServletResponse response = (HttpServletResponse) res; 
  52.         Boolean isGet = request.getMethod().equals("GET"); 
  53.          
  54.         String path = request.getServletPath(); 
  55.         String pathInfo = path.substring(path.lastIndexOf("/")); 
  56.          
  57.         if (pathInfo == null) { 
  58.             response.getWriter().write("error"); 
  59.         } else { 
  60.             _token = pathInfo.substring(1); 
  61.             if (isGet) { 
  62.                 doGet(request, response); 
  63.             } else { 
  64.                 doPost(request, response); 
  65.             } 
  66.         } 
  67.     } 
  68.  
  69.     private void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { 
  70.         response.setCharacterEncoding("UTF-8"); 
  71.         response.setContentType("text/xml"); 
  72.          
  73.         OutMessage oms = new OutMessage(); 
  74.         ServletInputStream in = request.getInputStream(); 
  75.         //轉換微信post過來的xml內容 
  76.         XStream xs = XStreamFactory.init(false); 
  77.         xs.alias("xml", InMessage.class); 
  78.         String xmlMsg = Tools.inputStream2String(in); 
  79.         InMessage msg = (InMessage) xs.fromXML(xmlMsg); 
  80.         //獲取自定消息處理器,如果自定義處理器則使用默認處理器。 
  81.         String handler = p.getProperty("MessageProcessingHandlerImpl"); 
  82.         if(handler== null
  83.             handler = defaultHandler; 
  84.          
  85.         try { 
  86.             //加載處理器 
  87.             Class<?> clazz = Class.forName(handler); 
  88.             MessageProcessingHandler processingHandler = (MessageProcessingHandler) clazz.newInstance(); 
  89.             //取得消息類型 
  90.             String type = msg.getMsgType(); 
  91.             //針對不同類型消息進行處理 
  92.             if (type.equals(MessageProcessingHandler.MSG_TYPE_TEXT)) { 
  93.                 oms = processingHandler.textTypeMsg(msg); 
  94.             } else if (type.equals(MessageProcessingHandler.MSG_TYPE_LOCATION)) { 
  95.                 oms = processingHandler.locationTypeMsg(msg); 
  96.             } else if (type.equals(MessageProcessingHandler.MSG_TYPE_LINK)) { 
  97.                 oms = processingHandler.linkTypeMsg(msg); 
  98.             } else if (type.equals(MessageProcessingHandler.MSG_TYPE_IMAGE)) { 
  99.                 oms = processingHandler.imageTypeMsg(msg); 
  100.             } else if (type.equals(MessageProcessingHandler.MSG_TYPE_EVENT)) { 
  101.                 oms = processingHandler.eventTypeMsg(msg); 
  102.             } 
  103.             if(oms == null){ 
  104.                 oms = new OutMessage(); 
  105.                 oms.setContent("系統錯誤!"); 
  106.             } 
  107.             //設置發送信息 
  108.             oms.setCreateTime(new Date().getTime()); 
  109.             oms.setToUserName(msg.getFromUserName()); 
  110.             oms.setFromUserName(msg.getToUserName()); 
  111.         } catch (ClassNotFoundException e) { 
  112.             logger.error("沒有找到" + handler + "類", e); 
  113.             oms.setContent("系統錯誤!"); 
  114.         } catch (InstantiationException e) { 
  115.             logger.error(e); 
  116.             oms.setContent("系統錯誤!"); 
  117.         } catch (IllegalAccessException e) { 
  118.             logger.error(e); 
  119.             oms.setContent("系統錯誤!"); 
  120.         } 
  121.          
  122.         //把發送發送對象轉換為xml輸出 
  123.         xs = XStreamFactory.init(false); 
  124.         xs.alias("xml", OutMessage.class); 
  125.         xs.alias("item", Articles.class); 
  126.         xs.toXML(oms, response.getWriter()); 
  127.     } 
  128.  
  129.     private void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { 
  130.         String signature = request.getParameter("signature");// 微信加密簽名 
  131.         String timestamp = request.getParameter("timestamp");// 時間戳 
  132.         String nonce = request.getParameter("nonce");// 隨機數 
  133.         String echostr = request.getParameter("echostr");// 
  134.         //驗證 
  135.         if (Tools.checkSignature(_token, signature, timestamp, nonce)) { 
  136.             response.getWriter().write(echostr); 
  137.         } 
  138.     } 
  139.  
  140.     /** 
  141.      * 啟動的時候加載wechat.properties配置 
  142.      * 可以在過濾器配置wechat.properties路徑 
  143.      */ 
  144.     @Override 
  145.     public void init(FilterConfig config) throws ServletException { 
  146.         String cf = config.getInitParameter("conf"); 
  147.         if (cf != null) { 
  148.             conf = cf; 
  149.         } 
  150.         String classPath = this.getClass().getResource("/").getPath().replaceAll("%20"" "); 
  151.         conf = conf.replace("classPath:", classPath); 
  152.         p = new Properties(); 
  153.         File pfile = new File(conf); 
  154.         if (pfile.exists()) { 
  155.             try { 
  156.                 p.load(new FileInputStream(pfile)); 
  157.             } catch (FileNotFoundException e) { 
  158.                 logger.error("未找到wechat.properties", e); 
  159.             } catch (IOException e) { 
  160.                 logger.error("wechat.properties讀取異常", e); 
  161.             } 
  162.         } 
  163.         logger.info("WeChatFilter已經啟動!"); 
  164.     } 
  165.  

原文鏈接:http://www.oschina.net/code/snippet_98719_21419

責任編輯:陳四芳 來源: 開源中國社區
相關推薦

2013-04-15 16:56:48

微信公眾平臺Android開發

2013-04-08 15:13:39

微信公眾平臺

2013-04-10 18:45:52

微信公眾平臺接口開發

2013-04-08 15:56:49

2013-04-10 18:07:08

微信公眾平臺接口開發

2013-04-10 13:07:40

微信公眾平臺Web App

2013-04-10 18:19:40

微信公眾平臺接口開發

2013-04-09 17:23:57

微信微信公眾平臺歡迎信息

2013-04-10 16:15:40

微信公眾平臺接口開發

2013-04-09 23:38:02

微信公眾平臺開發者

2013-04-08 16:19:40

微信微信公眾平臺圖文消息

2013-04-10 18:24:48

微信公眾平臺接口開發

2013-04-10 18:29:09

微信公眾平臺接口開發

2013-04-09 18:13:44

微信公眾平臺關鍵詞

2013-04-10 17:59:50

微信公眾平臺接口開發

2014-11-20 09:38:40

C#

2013-04-08 16:14:10

微信微信公眾平臺

2013-04-01 13:15:49

微信微信公眾賬號微信推廣

2013-04-15 17:18:51

微信公眾平臺Android開發位置信息識別

2013-04-11 10:50:07

微信公眾平臺接口開發
點贊
收藏

51CTO技術棧公眾號

99热手机在线| 亚洲一卡二卡| 久久久久久在线观看| 日本一二区不卡| 欧美成人欧美edvon| 99爱视频在线| 黄视频网站在线| 久久亚洲影视婷婷| 91嫩草在线| 成人免费一级片| 激情综合电影网| 中文字幕亚洲无线码在线一区| 又大又长粗又爽又黄少妇视频| 欧美xxx网站| 亚洲午夜在线观看视频在线| 日韩精品久久一区二区三区| 亚洲精品综合网| 麻豆成人av在线| 2019中文字幕在线观看| 麻豆天美蜜桃91| 欧美在线色图| 国产丝袜一区二区三区| 亚洲性图第一页| 97久久精品一区二区三区的观看方式 | 国产不卡在线观看| 久久亚洲AV无码| 亚洲国产老妈| 中文字幕日韩高清| 国精品无码人妻一区二区三区| 无码国模国产在线观看| 欧美日韩一级大片网址| 日韩精品一区二区三区不卡| 999福利在线视频| 亚洲综合网站在线观看| 91社在线播放| 91精品国产91久久久久游泳池 | 国产一区二区三区免费观看| 国产精品视频久久久久| 无码一区二区三区在线观看| 亚洲精品激情| 91国内精品久久| 久久中文字幕无码| 欧美视频二区| 色综合久久88色综合天天看泰| 暗呦丨小u女国产精品| 欧美系列电影免费观看| 一区二区三区 在线观看视| 国产精品jizz| 蜜桃一区二区三区| 亚洲人成在线免费观看| 亚洲午夜久久久久久久久红桃 | 日韩av综合网站| 国产xxxxxxxxx| 欧美久久香蕉| 亚洲精品网站在线播放gif| jlzzjizz在线播放观看| 米奇精品关键词| 日韩www在线| 国内精品久久99人妻无码| 中文精品一区二区| 一区二区三区美女xx视频| 久久日免费视频| 欧美肥老太太性生活| 久久久精品国产网站| 91高清免费观看| 亚洲国产导航| 日本国产高清不卡| 中文字幕欧美在线观看| 韩国女主播成人在线| 亚洲r级在线观看| 免费观看黄色av| 久久男人中文字幕资源站| 欧美在线激情| sm国产在线调教视频| 亚洲国产va精品久久久不卡综合| 国产精品12345| 丝袜美腿诱惑一区二区三区| 欧美日韩不卡一区二区| 国产精品久久久久福利| 91九色成人| 亚洲成人精品一区二区| 精品国产免费av| 日韩成人亚洲| 3751色影院一区二区三区| 91人妻一区二区| 免费看成人吃奶视频在线| 在线亚洲午夜片av大片| 黑鬼狂亚洲人videos| 亚洲看片一区| 国产精品一区av| 六月丁香综合网| 中文字幕不卡一区| 国产一级不卡视频| 成人精品电影在线| 日韩一区二区不卡| 国产毛片久久久久久久| 亚洲区综合中文字幕日日| 91精品国产91久久久久久吃药 | 午夜亚洲性色视频| 国产精品自拍偷拍视频| 神宫寺奈绪一区二区三区| 国产三区在线成人av| 国产精品一二三在线观看| 欧美日韩123区| 日韩三级视频在线看| 欧美 日韩 国产 成人 在线观看| 欧美日韩一区二区高清| 国产精品欧美亚洲777777| 内射后入在线观看一区| 综合久久久久久| 欧美在线观看视频网站| 国产成人精品福利| 久久久精品国产一区二区| 麻豆成人免费视频| 成人黄色在线网站| 异国色恋浪漫潭| 精品欧美日韩精品| 日韩av在线播放资源| 青青草偷拍视频| 青草国产精品久久久久久| 久久久久久久有限公司| 日韩激情美女| 91精品国产一区二区| 国产一二三四区在线| 免费在线成人| 国内精品国语自产拍在线观看| a视频在线观看免费| 欧美午夜精品免费| 美女久久久久久久久久| 亚洲欧洲另类| 成人动漫视频在线观看完整版| 在线观看免费高清完整| 在线观看91精品国产入口| 国产人妻人伦精品1国产丝袜| 精品999网站| 成人一区二区三区四区| 91高清在线观看视频| 欧美精品少妇一区二区三区 | 红桃成人av在线播放| 97色在线视频观看| 欧美一级片免费| 亚洲不卡一区二区三区| 理论片大全免费理伦片| 激情久久一区| 国产精品久久久久av福利动漫| 欧洲一区二区三区| 精品处破学生在线二十三| 久热精品在线观看| 成人动漫一区二区| 欧美 日韩 激情| 欧美男男freegayvideosroom| 亚洲91精品在线观看| 动漫av一区二区三区| 亚洲成a人片在线观看中文| 免费观看污网站| 亚洲高清激情| 久久久久综合一区二区三区| 三级在线看中文字幕完整版| 国产婷婷色综合av蜜臀av| 综合网在线观看| 国产日韩欧美一区二区三区乱码 | jizz欧美| www欧美日韩| 亚洲AV无码精品自拍| 亚洲成人www| 波多野吉衣中文字幕| 日本女优在线视频一区二区| 天天干天天操天天干天天操| 欧美影院精品| 992tv在线成人免费观看| 黄色片在线免费观看| 欧美日韩在线直播| 欧美又粗又大又长| 99精品热视频| 国产又粗又长又大的视频| 91精品综合| 久久久亚洲综合网站| 一区在线影院| 欧美大奶子在线| 欧洲毛片在线| 欧美一级免费大片| 五月天激情国产综合婷婷婷| 国产精品麻豆欧美日韩ww| 中文字幕在线国产| 蜜臀久久久久久久| 国产美女主播在线| 久久免费大视频| 国产成人亚洲欧美| 粉嫩91精品久久久久久久99蜜桃| 久久99热精品| 成年人在线观看网站| 欧美一级在线免费| 欧美a视频在线观看| 亚洲免费在线电影| 国产色视频一区二区三区qq号| 激情亚洲综合在线| 四虎永久在线精品无码视频| 欧美黄免费看| 亚洲精品中文综合第一页| 91精品啪在线观看国产爱臀| 国产精品久久久av| 182在线播放| 理论片在线不卡免费观看| 女人天堂在线| 精品国产乱码久久久久久久久| 中文字幕欧美人妻精品一区蜜臀| 欧美日韩国产精品一区| 精品欧美一区二区久久久久 | 亚洲欧美日韩精品综合在线观看| 91精品啪在线观看国产爱臀| 国产日韩欧美91| 都市激情亚洲一区| 性亚洲最疯狂xxxx高清| 亚洲区欧洲区| 色妞在线综合亚洲欧美| 欧美一区二区少妇| 亚洲精品电影网站| 成人av免费播放| 69久久99精品久久久久婷婷| 无码人妻一区二区三区线 | 国产女优在线播放| 五月天一区二区三区| 国产探花在线播放| 中文字幕一区二区三区视频| 国产一区二区三区四区五区六区| 91小视频在线| 在线天堂www在线国语对白| 国产精品99久久久久久久女警| 亚洲免费一级视频| 久久精品二区三区| 日韩少妇内射免费播放18禁裸乳| 欧美女人交a| 4444亚洲人成无码网在线观看| 999成人网| 亚洲美女自拍偷拍| 日韩夫妻性生活xx| 亚洲精品久久区二区三区蜜桃臀 | 亚洲天堂网在线观看| 天天干天天草天天射| 亚洲成年人在线播放| 亚洲a视频在线观看| 欧美变态tickle挠乳网站| 精品国产亚洲一区二区麻豆| 欧美一区二区三区四区在线观看| 国产精品国产一区二区三区四区 | 欧美激情1区2区| 男插女免费视频| 欧美激情第二页| 国内少妇毛片视频| 亚洲午夜一级| 国产v片免费观看| 一本色道久久综合亚洲精品不卡 | 亚洲高清在线观看一区| 波多野结衣的一区二区三区 | 亚洲自拍欧美色图| 日韩中文字幕视频网| 国产日韩精品推荐| 在线亚洲a色| 一区二区不卡在线| 99久久视频| 日韩久久久久久久久久久久| 韩日欧美一区| 又粗又黑又大的吊av| 久久先锋资源| 一级片免费在线观看视频| 国产高清在线精品| 五十路六十路七十路熟婆| 91免费观看国产| 黑人と日本人の交わりビデオ| 亚洲欧洲日韩av| 精品一区免费观看| 精品人伦一区二区三区蜜桃免费| 日韩 国产 欧美| 欧美福利视频导航| 秋霞欧美在线观看| 国产一区二区动漫| 污视频网站免费在线观看| 欧美亚洲国产另类| 国产精品黄色片| 国产高清不卡av| 国产欧美一区| 国产在线观看欧美| 亚洲深夜福利| 波多野结衣在线免费观看| 北条麻妃国产九九精品视频| 日韩视频在线观看免费视频| 亚洲蜜桃精久久久久久久| 日韩三级一区二区三区| 欧美日韩一区久久| 色网站免费观看| 最近2019好看的中文字幕免费| 欧美巨大xxxx做受沙滩| 国产高清在线不卡| 中文一区二区三区四区| 日本在线观看一区二区| 欧美日韩一视频区二区| 欧美婷婷精品激情| 丁香亚洲综合激情啪啪综合| 国产视频123区| 精品久久久久久久久久久久久久| 11024精品一区二区三区日韩| 日韩av网址在线| 老司机精品视频在线观看6| 日本欧美国产在线| 96sao在线精品免费视频| 亚洲国产一区二区三区在线| 99精品久久久| 不许穿内裤随时挨c调教h苏绵 | 亚洲精品久久久久中文字幕欢迎你 | 日本综合精品一区| 亚洲国产精品综合| 午夜在线视频一区二区区别| 成年人性生活视频| 国产精品麻豆视频| 伊人中文字幕在线观看| 亚洲第一页中文字幕| 国产区在线观看| 国产精品色婷婷视频| 国产成人久久| 男人操女人免费软件| 成人综合在线网站| 69av视频在线| 欧美猛男男办公室激情| 国产1区2区3区在线| 26uuu日韩精品一区二区| 国产精品网址| 日本国产中文字幕| 国产激情视频一区二区三区欧美 | 亚洲成人综合视频| 精品久久人妻av中文字幕| 久久综合久中文字幕青草 | 国产综合色一区二区三区| 欧美成人日本| 日本55丰满熟妇厨房伦| 亚洲视频免费看| 亚洲最大成人在线视频| 在线看日韩av| 国产精品第一国产精品| 亚洲国产午夜伦理片大全在线观看网站 | 精品网站aaa| 欧美激情视频免费看| 成人av网址在线观看| 日韩精品无码一区二区| 日韩黄色av网站| 在线女人免费视频| 日本成人黄色免费看| 天堂蜜桃91精品| 天天舔天天操天天干| 欧美日韩国产欧美日美国产精品| 97视频在线观看网站| 成人精品在线观看| 亚洲女同一区| 在线免费看黄色片| 精品人伦一区二区三区蜜桃网站 | 久久久精品欧美| 久久久久久亚洲精品美女| 国产又粗又长又爽视频| 成人91在线观看| 国内自拍视频在线播放| 在线日韩av观看| 一区二区三区无毛| 亚洲精品国产suv一区88| 国产v日产∨综合v精品视频| 日韩 欧美 综合| 亚洲欧美日韩精品| 国产成人亚洲一区二区三区| 国产午夜精品视频一区二区三区| 成人教育av在线| 69av视频在线观看| 日韩亚洲综合在线| 大型av综合网站| 熟女少妇精品一区二区| 亚洲素人一区二区| 手机看片福利在线| 国产精品入口免费视频一| 最新欧美人z0oozo0| 国产精品无码毛片| 在线观看av一区二区| 亚洲男同gay网站| 久久福利电影| 精品在线播放免费| 日韩人妻无码一区二区三区99 | 日韩欧美色电影| a一区二区三区| 欧美一级黄色录像片| 99精品视频在线免费观看| 中文字幕在线播出| 国语对白做受69| 成人毛片免费看| 精品国产av色一区二区深夜久久| 欧美视频精品在线| а√天堂8资源在线| 一本一生久久a久久精品综合蜜| 成人一二三区视频| 亚洲 国产 日韩 欧美| 欧美激情综合亚洲一二区| 欧美日韩国产在线观看网站| 欧美xxxxx少妇| 777午夜精品免费视频| 亚洲优女在线|