java接受微信内容_java后台接收微信服务号/订阅号消息

1 @Controller2 @RequestMapping("/wecha")3 public class WeChaturlController extendsBaseController {4

5 private final static Logger logger = Logger.getLogger(WeChaturlController.class.getName());6

7 @Resource8 privateINewsCommentService newsCommentService;9 @Resource10 privateIReviewNewsService reviewNewsService;11 @Resource12 protectedIWaitParseDao waitParseDao;13

14 public static String BIND_TOKEN = "CX_TEST";15 private static SAXReader saxReader = newSAXReader();16

17 /**

18 * 消息接收端19 *@paramresponse20 *@paramrequest21 */

22 @RequestMapping(value = "/get")23 public voidmsgIn(HttpServletResponse response, HttpServletRequest request) {24 if ("GET".equals(request.getMethod())) {25 bindMsg(response, request);26 } else if ("POST".equals(request.getMethod())) {27 if(WxBaseCheck.checkSignature(request, BIND_TOKEN)) {28 handleMsgIn(response, request);29 } else{30 logger.warn("消息验证失败,来源不是微信!");31 }32 }33 }34

35 /**

36 * 腾讯通过GET请求进行绑定37 *@paramresponse38 *@paramrequest39 */

40 public voidbindMsg(HttpServletResponse response, HttpServletRequest request) {41 try{42 String echostr = request.getParameter("echostr");43 //System.out.println(WxBaseCheck.checkSignature(request,44 //BIND_TOKEN));

45 if(WxBaseCheck.checkSignature(request, BIND_TOKEN)) {46 logger.warn("公众平台与本系统成功绑定!可以开始通信~~~");47 response.getWriter().write(echostr);48 } else{49 response.getWriter().write("");50 }51 } catch(IOException e) {52 logger.warn("绑定URL时:" +e.getMessage());53 e.printStackTrace();54 }55 }56

57 /**

58 * 处理腾讯服务器发送过来的消息59 *@paramresponse60 *@paramrequest61 */

62 public voidhandleMsgIn(HttpServletResponse response, HttpServletRequest request) {63 try{64 //使用response的时候必须要设置响应头,不然会乱码~~~

65 response.setHeader("Content-type", "text/xml;charset=UTF-8");66 //从request中取得输入流67 //读取输入流

68 Document document =saxReader.read(request.getInputStream());69 //得到xml根元素

70 Element element =document.getRootElement();71 //System.out.println("接口接受xml:"+element.asXML());72 //将解析结果存储在HashMap中

73 Map msgMap =XmlHandler.xmlToMap(element);74 String text = msgMap.get("Content");75 System.out.println("微信收到消息:" +text);76 Pattern pattern =GetUrl.WEB_URL;77 Matcher matcher =pattern.matcher(text);78 if(matcher.find()) {79 //取字符串中的链接,链接结尾必须有空格 必须有http 或 https开头80 //System.out.println(matcher.group());

81 if (newBrandUrlUtil().isBrandUrl(matcher.group())) {82 //链接初始化入库

83 this.newsCommentService.initNews(matcher.group());84 } else{85 //链接 未收录86 //WaitParse waitParse = new WaitParse();87 //waitParse.setUrl(matcher.group());88 //waitParse.setInfoType(0);89 //WaitParse dbWaitParse = this.waitParseDao.getWaitParse(waitParse);90 //if (dbWaitParse == null) {91 //waitParse.setCreateTime(new Date());92 //this.waitParseDao.insertWaitParse(waitParse);93 //}

94 logger.warn("微信公众号收到的链接,系统未收录[" + matcher.group() + "]");95 }96 } else{97 //其他消息 不包含链接

98 }99

100 } catch(Exception e) {101 logger.warn("微信收录链接时:" +e.toString());102 }103 }104

105 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值