微信公众号开发之配置服务器

入口:
在这里插入图片描述
在这里插入图片描述

附上官方文档

详情的官方文档里面都有,我这边只写一些自己的理解,欢迎补充

  • URL: 是开发者用来接收微信消息和事件的接口URL,必须以http://或https://开头,只能是80 和 443 端口
  • Token : 可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)

开启服务器时,会调用一次URL,Token 验证通过了才能开启,调用是传递参数如下:

参数描述
signature微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp时间戳
nonce随机数
echostr随机字符串

我们要做的是

  1. 将token、timestamp、nonce三个参数进行字典序排序
  2. 将三个参数字符串拼接成一个字符串进行sha1加密
  3. 开发者获得加密后的字符串与signature对比,标识该请求来源于微信
  4. 返回 echostr 则表示成功
public static void validate(HttpServletRequest request, HttpServletResponse response) throws IOException {
    String signature = request.getParameter("signature");// 微信加密签名
    String timestamp = request.getParameter("timestamp");// 时间戳
    String nonce = request.getParameter("nonce");// 随机数
    List<String> list = new ArrayList<String>();
    list.add(token);
    list.add(timestamp);
    list.add(nonce);
    Collections.sort(list);// 字典排序
    String str = "";
    for (int i = 0; i < list.size(); i++) {
        str += (String) list.get(i);
    }
    if (encode("SHA1", str).equalsIgnoreCase(signature)) {
        response.getWriter().write(request.getParameter("echostr"));
        response.getWriter().close();
        logger.info("验证通过");
    } else{
        logger.error("验证失败");
    }
}

下载微信官方的示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值