java 微信公众号服务器配置token验证

参考:https://blog.csdn.net/qq_27185879/article/details/125673815

  • 公众号配置
    URL:填写外网可以访问的域名
    Token:填写的值要与代码中的一致
    在这里插入图片描述
  • 依赖:sha1 加密
<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-all</artifactId>
</dependency>
  • 验证接口(get请求)
import static cn.hutool.crypto.SecureUtil.sha1;


    @RequestMapping("/checkSign")
    public void wechatCheckSign(HttpServletRequest request, HttpServletResponse response) throws IOException {

        String token = "slj_weixin_token"; //填写自己在微信公众平台中设置的token

        // 微信加密签名
        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);
        }
    }