jeewx的使用_01 接入和验证

jeewx是java语言的用于开发微信公共平台的一个框架,有人说很臃肿,但个人感觉还不错,仁者见仁智者见智吧,

下面简单介绍工作原理:

1、下载

要使用jeewx需要先下载其源码

jeewx介绍:http://www.oschina.net/p/jeewx

下载地址:http://git.oschina.net/jeecg/jeewx

2、使用

首先要在安装好的jeewx中填写需要二次开发的微信公众号的基本信息

然后登录微信公众平台,在基本设置中填写url 

http://域名/jeewx/wechatController.do?wechat
当开发者填写了服务器配置后,用户消息和开发者需要的事件推送,将会被转发到该URL中
 
3、打开WechatController.java
 1 package weixin.guanjia.core.controller;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import java.util.List;
 6 
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.stereotype.Controller;
12 import org.springframework.web.bind.annotation.RequestMapping;
13 import org.springframework.web.bind.annotation.RequestMethod;
14 import org.springframework.web.bind.annotation.RequestParam;
15 
16 import weixin.guanjia.account.entity.WeixinAccountEntity;
17 import weixin.guanjia.account.service.WeixinAccountServiceI;
18 import weixin.guanjia.core.service.impl.WechatService;
19 import weixin.guanjia.core.util.SignUtil;
20 
21 @Controller
22 @RequestMapping("/wechatController")
23 public class WechatController {
24     @Autowired
25     private WechatService wechatService;
26     @Autowired
27     private WeixinAccountServiceI weixinAccountService;
28 
29     /**
30      * 与微信对接的接口
31      * @注释添加 geenkDC
32      * @time 2015-07-09 14:34:07
33      * @param request
34      * @param response
35      * @param signature
36      * @param timestamp
37      * @param nonce
38      * @param echostr
39      */
40     @RequestMapping(params="wechat", method = RequestMethod.GET)
41     public void wechatGet(HttpServletRequest request,
42             HttpServletResponse response,
43             @RequestParam(value = "signature") String signature,
44             @RequestParam(value = "timestamp") String timestamp,
45             @RequestParam(value = "nonce") String nonce,
46             @RequestParam(value = "echostr") String echostr) {
47 
48         List<WeixinAccountEntity> weixinAccountEntities = weixinAccountService.getList(WeixinAccountEntity.class);
49         for (WeixinAccountEntity account : weixinAccountEntities) {
50             if (SignUtil.checkSignature(account.getAccounttoken(), signature,
51                     timestamp, nonce)) {
52                 try {
53                     response.getWriter().print(echostr);
54                     break;
55                 } catch (IOException e) {
56                     // TODO Auto-generated catch block
57                     e.printStackTrace();
58                 }
59             }
60         }
61     }
62 
63     /**
64      * 统一接收微信服务器推送的接口
65      * @注释添加 geenkDC
66      * @time 2015-07-09 14:34:56
67      * @param response
68      * @param request
69      * @throws IOException
70      */
71     @RequestMapping(params = "wechat", method = RequestMethod.POST)
72     public void wechatPost(HttpServletResponse response,
73             HttpServletRequest request) throws IOException {
74         String respMessage = wechatService.coreService(request);
75         PrintWriter out = response.getWriter();
76         out.print(respMessage);
77         out.close();
78     }
79 
80 }

可以看到当微信的服务器把request推送到该controller之后,剩下的工作就有wechatService来完成了,由于我的wechatService已经经过修改,这里就不在贴出,相信有java基础的博友一看便知,

 

posted @ 2016-02-25 11:07  npe0  阅读(1206)  评论(0)    收藏  举报