收藏
回答

微信服务号获取网页授权回调问题?

这是我写的回调函数,也触发了,但是从有错误提示。echostr参数不存在


21:45:54.609 [http-nio-9001-exec-1] INFO o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
2
1:45:54.673 [http-nio-9001-exec-1] ERROR c.d.f.w.e.GlobalExceptionHandler - [handleException,80] - 请求地址'/changde/wechat',发生系统异常.
org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'echostr' for method parameter type String is not present


代码


@RequestMapping(value = "/wechat", method = {RequestMethod.GET, RequestMethod.POST})


@ResponseBody
public String verifyWeChatServer(
        @RequestParam(value = "signature", required = false) String signature,
        @RequestParam(value = "timestamp", required = false) String timestamp,
        @RequestParam(value = "nonce", required = false) String nonce,
        @RequestParam(value = "echostr", required = false) String echostr) {


    // 检查是否为微信服务器验证请求(GET 请求且参数完整)
    if (signature != null && timestamp != null && nonce != null && echostr != null) {
        System.out.println("接收到的参数:signature=" + signature +
                ", timestamp=" + timestamp +
                ", nonce=" + nonce +
                ", echostr=" + echostr);


        // 验证签名
        if (checkSignature(signature, timestamp, nonce)) {
            System.out.println("签名验证成功,返回echostr:" + echostr);
            return echostr;
        } else {
            System.err.println("签名验证失败!");
            return "Invalid signature";
        }
    } else {
        // 处理 POST 请求或缺少必要参数的情况
        System.out.println("非微信服务器验证请求或缺少必要参数,暂不处理");
        return "Non-verification request or missing parameters";
    }
}


最后一次编辑于  07-04
回答关注问题邀请回答
收藏

1 个回答

  • Mr.Zhao
    Mr.Zhao
    07-04

    没看懂,网页授权跟echostr有啥关系。提问问题,可别害羞内向不说话啊

    07-04
    有用 1
    回复 2
    • 李彦达
      李彦达
      07-04
      是这样,这个调取网页授权的方法,需要一个回调地址。也就是我上面写这个方法,如果调不到这个地址,会报错。这个方法需要的几个参数,是按照他们文档写的。echostr是啥其实我也不太懂,但是反正是他回传给我的,我接着就是了。关键是现在它没返回给我这个参数,这我就蒙圈了
      07-04
      回复
    • Mr.Zhao
      Mr.Zhao
      发表于移动端
      07-04回复李彦达
      不知道你从哪看的文档。网页授权是获取code的,跟服务器URL推送一点关系都没有。
      07-04
      回复
登录 后发表内容