很多人去看了开发文档都摸不着头脑,对其配置模糊不清,明明觉得配置得无误,端口号也是80等。但是就是提示出现token配置【验证】失败,到底是什么原因引起的尼?【其实最主要的原因是因为我们没有结合代码去激活】
下面我们就一起来试试看:
(1)创建一个WX_Util帮助类:【其中的token必须跟微信书写的token保持一致】
import javax.servlet.http.HttpServletRequest;
import java.security.MessageDigest;
import java.util.Arrays;
/**
* Created by Administrator on 2018/9/18.
* @author Administrator
* @class WX_Util 类;
*/
public class WX_Util {
//验证服务器地址
public static String check_Url(HttpServletRequest request){
//获取参数配置
String signature = request.getParameter("signature");
//获取时间托
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
//获取echostr 字符
String echostr = request.getParameter("echostr");
//获取token 此token跟需跟微信公众号的token一致;
String token = "liftmooc";
String str = "";
// try ---- catch 捕捉异常
try {
//判断是否为空
if (null != signature) {
//声明一个存储数据字符数组
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 e) {
e.printStackTrace();
}
//返回消息
return str;
}
}
(2)创建一个访问接口类:WeixinInterfaceController
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
/**
* Created by Administrator on 2018/9/18.
*/
@Controller
@RequestMapping("/wxt")
public class WeixinInterfaceController extends HttpServlet {
/**
* 配置微信公众号基本url,使其获取到token
* */
@ResponseBody
@RequestMapping("/xc")
public void weixininter(HttpServletRequest request, HttpServletResponse response) throws Exception {
//微信获取解析信息
String str = WX_Util.check_Url(request);
PrintWriter out = response.getWriter();
//输出
out.print(str);
//刷新
out.flush();
//关闭流
out.close();
}
}
(3),把这个测试项目打包放在服务器上运行(使用80端口),确认可以运行后,直接登录微信公众号,进行基本配置就会提示你
配置成功了,这是你就可以启动你的服务器配置了
具体的代码可以参考网上,亦可查找帮助文档;本文只是提供参考思路,不喜勿喷,菜鸟也需鼓励。