微信公众号java开发6-验证消息来自微信服务器

2025-04-07 04:20:11

1、首先看一下微信撰颧幌汪验证消息来自微信服务器的开发文档,配置本地服务器的时候,微信会给本地服务器发送get请求,get请求包含四个焊剑杂锭参数【signature/timestamp/nonce/echostr】,本地服务器需要通过一定规则将【timestamp/nonce/token】这三个参数组合得到的值和signature进行比对,如果一致,那么配置本地服务器成功,如果不一致,那么配置本地服务器不成功,如下图:

微信公众号java开发6-验证消息来自微信服务器

2、然后在本地项目中的doGet方法中获取【signature/timestamp/nonce/echostr】这四个参数,如下图:

微信公众号java开发6-验证消息来自微信服务器

3、在测试号的配置本地服务器处点击【提交】,得到了这四个参数的值,这四个值打印到了控制台,如下图:

微信公众号java开发6-验证消息来自微信服务器

4、接下来我们来看一下如何来将【timestamp/nonce/token】这三个参数组合的规则,下图中就是组合的规则,在微信公众号的开发文档中可以看到,接下来我们会将这规则编写成代码,如下图:

微信公众号java开发6-验证消息来自微信服务器

5、这个时候我们新建一个方法【check】方法来实现这个规则,如下图:

微信公众号java开发6-验证消息来自微信服务器

6、将这个【check】方法放到【WxService】类中,如下图:

微信公众号java开发6-验证消息来自微信服务器

7、下图中就是【check】方法的具体实现,包括字符串的排序、组合、sha1加密和结果与signature的比较,如下图:

微信公众号java开发6-验证消息来自微信服务器

8、下图中是sha1方法的具体实现,如下图:

微信公众号java开发6-验证消息来自微信服务器

9、然后在servlet的【doGet】方法中使用【check】方法,比对成功之后訇咀喃谆将echostr这个随机字符串原样返回,比对失败只是在控制台输入结果即可,如下图:

微信公众号java开发6-验证消息来自微信服务器

10、然后在测试号管理的结构配置信息修改点击【提交】,后台比对成功后会返回微信服务器给的随机字符串,然后就会配置成功,如下图:

微信公众号java开发6-验证消息来自微信服务器
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢