首先我们创建一个项目,添加一个我们熟悉的controller,业务逻辑如下:

通过httppServletRequest 获取微信服务器发过来的signature,timstamp,notice以及echostr这几个参数。他们分别代表着微信的加密签名,时间戳参数,随机数、以及一个随机字符串。其中签名是和开发者填写的token、时间戳和水技术。

开发者通过去校验signature对请求进行了验证,如果确认了这次的请求来自微信服务器,则会按照原样返回echostr参数内容,说明接入生效了,成为真正的开发者,否则呢?就是失败了。

具体的校验逻辑则是,将token,timestamp,nonce三个参数进行了字典排序,然后将三个参数字符串依次拼接成一个字符串进行sha1加密,然后,在多获取加密后的字符串和signature进行对比,标志该请求是否来源于微信。

这就是我们校验接口的这个逻辑,接下来呢,我们就可以进入整体,开发小写接收接口了。

消息接收接口和上面我们所说的服务器校验接口地址其实是一样的,他们都是我们在公众号后台配置的地址,只是我们消息接收的接口是一个post请求。

还记得上篇文章我们选择的消息加解密的方式是明文模式吗?这样我们就可以在后台的消息直接处理了,微信的服务器发送给我们的是普通文本消息格式。

其实就是一个xml的数据,我们在对微信服务器消息解析的时候,就是在对xml进行解析。我们只是将消息提取出来,进行相关操作,然后在返回给微信服务器。

好了,具体的逻辑就先讲到这,如果又想要源码的,欢迎留言交流。

也欢迎大家关注我的工种昊《coder练习生》

这篇文章因为文字段被标记为质量低,以下文字就是为了打破它的文字段而造成的质量低!

相信和我一样遇到这个问题的的小伙伴们,心里也已经暗自问候了这个产品经理的祖总十八代了吧!

算法实在是不敢苟同,文字的长短和文章的质量有毛线的关系吗?


版权声明:本文为ybb_ymm原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/ybb_ymm/article/details/128860730