1.修改服务器配置

微信公众号-服务器配置(token验证)_字符串

微信公众号-服务器配置(token验证)_spring_02

​编辑2.进行如下设置

微信公众号-服务器配置(token验证)_字符串_03

微信公众号-服务器配置(token验证)_java_04

​编辑

提交后,提示token验证失败原因是需要服务器验证上面设置的token。官网给出了php的验证案例,很明显不是我们想要的,下面给出了java版的

代码实现:(仅供参考,但以下代码可用

创建Conttroller

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;

/**
* @description:
* @author: lvyq
* @date: 2022/7/8 15:16
* @version

@RequestMapping
@Controller
@CrossOrigin
public class IndexController {

public static final String Token="123456"; //微信公众平台中设置的token
@RequestMapping("/")
public void index(HttpServletResponse response, HttpServletRequest request) throws Exception{
String method=request.getMethod();
if ("GET".equals(method)){
// 微信加密签名
String signature = request.getParameter("signature");
// 随机字符串
String echostr = request.getParameter("echostr");
// 时间戳
String timestamp = request.getParameter("timestamp");
// 随机数
String nonce = request.getParameter("nonce");
String[] str = { Token, timestamp, nonce };
// 字典排序
Arrays.sort(str);
String bigStr = str[0] + str[1] + str[2];
// SHA1加密
String digest = sha1(bigStr);
// 确认请求来至微信
if (digest.equals(signature)) {
response.getWriter().print(echostr);
}
}
}

/**
* @description: sha1
* @author: lvyq
* @date: 2022/7/8 15:18
* @version

public static String sha1(String data) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA1");
//把字符串转为字节数组
byte[] b = data.getBytes();
//使用指定的字节来更新我们的摘要
md.update(b);
//获取密文 (完成摘要计算)
byte[] b2 = md.digest();
//获取计算的长度
int len = b2.length;
//16进制字符串
String str = "0123456789abcdef";
//把字符串转为字符串数组
char[] ch = str.toCharArray();
//创建一个40位长度的字节数组
char[] chs = new char[len*2];
//循环20次
for(int i=0,k=0;i<len;i++) {
//获取摘要计算后的字节数组中的每个字节
byte b3 = b2[i];
// >>>:无符号右移
// &:按位与
//0xf:0-15的数字
chs[k++] = ch[b3 >>> 4 & 0xf];
chs[k++] = ch[b3 & 0xf];
}
//字符数组转为字符串
return new String(chs);
}
}

微信公众号-服务器配置(token验证)_java_05

重启服务,然后点击确定,验证通过

微信公众号-服务器配置(token验证)_spring_06

微信公众号-服务器配置(token验证)_java_07

编辑

 最后点击【启用

微信公众号-服务器配置(token验证)_字符串_08

微信公众号-服务器配置(token验证)_字符串_09

编辑

 至此,服务器配置成功!!!

作用:菜单修改、自定义消息回复等

注:启用成功后,将无法设置菜单,需要通过API设置菜单