微信公众平台配置——URL、Token和JS安全域名

    无论是正式的微信公众号还是测试账号,都需要配置URL和Token,用于验证服务器是否配置正确,如下图。

   

    图中的URL除了包括协议、域名,还需要具体的接口路径,比如这里就是"/wx/enter"。

    Token可以自己随便设置,但是需要在URL中的接口进行验证。

@RequestMapping(value = "/enter")
public String wxEnter(HttpServletRequest req){
    //获取签名
    String signature = req.getParameter("signature");
    //获取timestamp
    String timestamp = req.getParameter("timestamp");
    //获取nonce
    String nonce = req.getParameter("nonce");
    //获取echostr,验证成功需要返回这个参数
    String echostr = req.getParameter("echostr");
    //校验是否正确
    if(Util.check(signature, timestamp, nonce)){
	return echostr;
    }
    return "校验失败";
}

    签名校验代码:

public static boolean check(String signature, String timestamp, String nonce) throws Exception{
    // 将 "test", timestamp, nonce 进行字典排序		
    String[] array = new String[] {"test", timestamp, nonce};
    Arrays.sort(array);
    String content = array[0] + array[1] + array[2];	
    MessageDigest md = MessageDigest.getInstance("SHA-1");
    // shal 加密
    byte[] digest = md.digest(content.toString().getBytes());
    //转换为字符串
    String sign = byteToStr(digest);
    // 校验签名
    return sign != null ? sign.equals(signature.toUpperCase()) : false;
}

    在保存配置的时候,微信服务器会通过GET方式请求所配置的URL,以上代码就是这个验证过程,确定服务器配置正确。

    注意,以上代码不保证完全正确,仅作参考!因为CSDN的原因,上面两端代码重复了。

    JS安全域名在配置的时候可能会出现二级域名,此时只需要配置一级域名就可以,比如:



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值