公众号与服务器验证失败,微信公众号服务器配置token验证失败原因

公众号与服务器验证失败,微信公众号服务器配置token验证失败原因零、原因返回给微信平台的字符串两边加了引号(JSON序列化问题)一、背景半年前接触微信公众号开发,由于使用java,便直接使用最简单的Servlet去做校验,通过百度完美的成功接入服务器配置,后来接触到了一个小框架wxtools,对微信的api做了一层java的封装,无需自己写,就把原先写的改成了wxtools的。但项目上线的时候,问题出现了,配置服务器的时候——token验证失败。二、过程对配…_1671465600

零、 原因

返回给微信平台的字符串两边加了引号(JSON序列化问题)

一、背景

半年前接触微信公众号开发,由于使用java,便直接使用最简单的Servlet去做校验,通过百度完美的成功接入服务器配置,后来接触到了一个小框架wxtools,对微信的api做了一层java的封装,无需自己写,就把原先写的改成了wxtools的。但项目上线的时候,问题出现了,配置服务器的时候——token验证失败。

二、过程

对配置文件一通排查,问题依然,调试的时候发现请求是接受到并成功返回了的,但微信那边依然显示token验证失败,然后百度,就发现有的人遇到和我一样的问题,他是因为返回的字符串带了双引号…

三、解决方法

错误代码

@GetMapping

@ResponseBody

public String check(String signature, String timestamp, String nonce, String echostr,HttpServletRequest request,HttpServletResponse response) {

log.info(“服务器验证”);

log.info(“参数:signature:{} timestamp:{} nonce:{} echostr:{}”,signature,timestamp,nonce,echostr);

if (iService.checkSignature(signature, timestamp, nonce, echostr)) {

log.info(“校验成功:{}”,echostr);

return echostr;

}

}

这里怀疑是JSON序列化的时候往两边加上了双引号,没有做验证,有兴趣可以验证一下,我使用的是FastJSON

正确打开方式

@GetMapping

@ResponseBody

public void check(String signature, String timestamp, String nonce, String echostr,HttpServletRequest request,HttpServletResponse response) {

log.info(“服务器验证”);

log.info(“参数:signature:{} timestamp:{} nonce:{} echostr:{}”,signature,timestamp,nonce,echostr);

if (iService.checkSignature(signature, timestamp, nonce, echostr)) {

log.info(“校验成功:{}”,echostr);

try {

// 直接使用response

response.getWriter().print(echostr);

} catch (IOException e) {

e.printStackTrace();

}

}

}

今天的文章公众号与服务器验证失败,微信公众号服务器配置token验证失败原因分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/5958.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注