开发接入测试。
进入微信开发文档,进入到接口号测试。
Q:为啥要进行测试号申请系统?
A:因为在我们个人申请的公众号中,开发/接口权限,这一栏中可以看到,我们的权限实在太少,因此,作为开发人员,我们需要进入测试号系统,目的是获得更多的权限。
在进行开发之前先阅读微信官方文档,接入指南。https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
从上面的文档上我们可以看出,我们先做前两步。
1.填写服务器配置。
在进入测试号系统之后,我们需要填写配置信息。URL和token.
URL填写之前申请到的网址,token这里可以随意填写一些。
关于url的一些信息,在楼主的文章:微信公众号开发-开发准备 ,一文中有详细的说明。
2. 验证消息的确来自微信服务器。
创建一个servlet,编写测试代码。
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class WxServlet
*/
@WebServlet("/wx")
public class WxServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public WxServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
*
* 参数 描述
* signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
* timestamp 时间戳
* nonce 随机数
* echostr 随机字符串
*
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// response.getWriter().append("Served at: ").append(request.getContextPath());
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
String echostr = request.getParameter("echostr");
System.out.println("signature:" + signature);
System.out.println("timestamp:" + timestamp);
System.out.println("nonce:" + nonce);
System.out.println("echostr:" + echostr);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// doGet(request, response);
System.out.println("post");
}
}
然后我们再配置第一步中的URL和token.在之前配置的URL的后面拼接上我们工程的名字和代码中@WebServlet中的名字。如下图所示:
然后启动项目,点击提交。
提交之后楼主这里遇到了一个问题。如下图所示:
在这里我关闭了windows definder.再次启动测试,发现还是同样的页面。但是用 http://localhost:8080/wechat/wx访问的时候却是正常的。于是我将隧道配置中的端口号改为了8080,居然奇迹般的成功了。结果如下图所示:
在这里需要说明的是,关于隧道不可用问题,问题的原因很多,楼主这里将端口号改成了8080之后成功了,但是有人改了端口号之后依然没有成功,因此,楼主为了后面开发的顺利,将隧道不可用问题也就没有再进行深入的研究和探讨。 如果大家遇到了同样的问题,但是用了不同的解决方案并且成功了的,欢迎在评论区给我留言,大家相互学习探讨。