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);
}
}