1.问题分析:
在我们进行开发时面临第一个问题就是环境搭建,我们这里采用的是myeclipse也就是java进行代码编写,这是编辑环境。服务器配置,本人长期研究了一下服务器用什么好,sea服务器进行代码调试时候比较难,所以这里应用natapp。natapp是一款能够将本机映射到公网上的软件,外网可以通过公网访问到你的电脑,也就是说你的电脑就是服务器,这里使用80端口。环境搭建好后,进行token验证。
2.下载myeclipse
首先下载破解版的myeclipse,然后下载服务器tomcat,下载jdk,进行配置。配置如图:
然后进行验证,将服务器启动,项目发布,然后访问http:localhost:8080/新建项目名 最后可以看到index。jsp表示你的myeclipse没问题。
3.natapp下载
在网上下载一个免费的natapp软件,直接安装就可以,注意它是80端口,而myeclipse是8080端口,这里我们一会说怎么来更改。
4.搭建natapp和myeclipse
将tomcat目录下的配置文件端口号改成80端口,在tomcat下,Tomacat\apache-tomcat-6.0.45\conf\service下更改端口。运行natapp,会出现这个界面。
表示运行成功,这个时候你通过这个url加上你自己的项目名称访问你的index.jsp得到回复说明环境搭建成功。
5.token验证
验证的时候可以看官方api这里就不解释了,用代码告诉你一切。首先新建一个servlet,假设就叫Wx_Servlet在doget中写入:
这里out.println,一定不可以省,不能更改,本人试过system.out.println失败了,所以大家一定吸取教训。正如你看到的 我们还需要建一个wx_util类。response.setContentType("text/html"); PrintWriter out = response.getWriter(); String outString = WX_Util.validate(request); out.println(outString); out.flush(); out.close();
public static String validate(HttpServletRequest request) { String signature = request.getParameter("signature"); String timestamp = request.getParameter("timestamp"); String nonce = request.getParameter("nonce"); String echostr = request.getParameter("echostr"); String token = "***";//这里写你自己token验证随意写,只要跟后来相同就行。 String str = ""; try { if (signature != null) { String[] ArrTmp = { token, timestamp, nonce }; Arrays.sort(ArrTmp); StringBuffer sb = new StringBuffer(); for (int i = 0; i < ArrTmp.length; i++) { sb.append(ArrTmp[i]); } MessageDigest md = MessageDigest.getInstance("SHA-1"); byte[] bytes = md.digest(new String(sb).getBytes()); StringBuffer buf = new StringBuffer(); for (int i = 0; i < bytes.length; i++) { if (((int)bytes[i] & 0xff) < 0x10) { buf.append("0"); } buf.append(Long.toString((int)bytes[i] & 0xff, 16)); } if (signature.equals(buf.toString())) { str = echostr; } } } catch (Exception localException) {} return str; } 到这里我们的连接做好了。
6.微信公众平台验证:
我们这里申请的是测试号:在百度输入微信测试号,进入后用自己微信扫一扫就能进行开发。这里参数填写如下:token一定要和之前填写一样。之后提交,如果失败,多次提交试试,如果显示token验证失败,代码就有问题,看看后台输出日志。如果显示超时,可能网速不太好,多提交几次。