专栏简介 | ||
📄本栏目录 |
📖心灵鸡汤📖 岁月是个小偷,当你发现时,却早已偷走了一切。 |
1.修改服务器配置
2.进行如下设置
提交后,提示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 1.0 */ @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(); //签名验证是get请求 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 1.0 */ 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); } }
重启服务,然后点击确定,验证通过
最后点击【启用】
至此,服务器配置成功!!!
注:启用成功后,将无法设置菜单,需要通过API设置菜单
- 海报