100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 微信公众号-服务器配置(token验证)

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

时间:2022-06-16 20:25:25

相关推荐

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

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: /7/8 15:16* @version 1.0*/@RequestMapping@Controller@CrossOriginpublic 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: /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设置菜单

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。