用人家的东西当然要在人家那里注册了,传送门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,点击提交,没有问题的话,你应该看到成为开发者的页面了。
到此为止,已经联通了微信服务器,接下来就是信息的接收与发送了…………
新手上路,请多关照!