用人家的东西当然要在人家那里注册了,传送门https://mp.weixin.qq.com。
注册后登陆,左侧点击高级功能,然后页面中间选择开发者模式。
哦忘了,注册后要填写基本信息然后审核后才会有高级功能-->开发者模式。
进入开发者模式
修改Url和token
这时候你需要有一个Web站点,其中有一个Servlet,其中有一个doGet方法,doGet方法中获取微信服务器发来的信息,
将信息进行处理后,返回一个验证成功的信息,然后就成功接入,你就成为开发者了。那个token就是你自己定义的一个令牌,验证用的。
于是我们就有两个问题要处理:1,Web站点的搭建;2,doGet方法中的验证与返回
1.Web搭建
用MyEclipse建一个WebProject,新建一个Servlet,doGet,doPost都要用到的。
首先用到的时doGet,主要是一个验证函数。
import java.io.BufferedReader; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ant.xml.XmlParser; public class Hello extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String timestamp = request.getParameter("timestamp"); String token = "684946"; String nonce = request.getParameter("nonce"); String signature = request.getParameter("signature"); System.out.println("signature:"+signature); System.out.println("timestamp:"+timestamp); System.out.println("nonce:"+nonce); String echostr = request.getParameter("echostr"); if(Validate.validate(signature, token, timestamp, nonce)) response.getWriter().print(echostr); } }
验证函数如下:
public static boolean validate(String signature,String token,String timestamp,String nonce) { try { String[] array = {token,timestamp,nonce}; Arrays.sort(array); String str = array[0]+array[1]+array[2]; MessageDigest dgt = MessageDigest.getInstance("SHA1"); byte[] encodeResult = dgt.digest(str.getBytes()); return encodeResult.equals(signature.getBytes()); } catch (NoSuchAlgorithmException e) { return false; } }
程序做好了,现在就是把它架设起来:
我想处于测试学习阶段的朋友比较多吧,所以没必要先开一个服务器了,当然SAE或者BAE好像也不是很贵,但是调试起来还是不方便,
因此我们使用花生壳将站点架设在本机上,便于调试。至于具体操作,传送门http://blog.163.com/ppy2790@126/blog/static/10324224120134109111231/
架设好之后,激动人心的时刻就要来了……
填好你架设好的域名地址和你的token,点击提交,没有问题的话,你应该看到成为开发者的页面了。
到此为止,已经联通了微信服务器,接下来就是信息的接收与发送了…………
新手上路,请多关照!