最近在开发微信公众号的时候遇到一个问题。
以前服务器使用的是80端口的http协议,后来遇到需求更改为443的https协议。
在重新配置微信公众号url时token一直提示验证失败,明明证书没有过期,外网也可以访问,却一直提示提示token验证失败。
在网上搜索一堆全是如何配置,却没有关于这个报错的解决方案。
没办法,总得解决,然后打开NGINX的响应日志,一条一条看最终发现错误所在
这是http状态下的微信的访问请求
这是https状态下的微信的访问请求
通过图片(访问日志)可以很明显的看出来在http状态下微信是以get方式访问的(请忽略我的500 ),而在https状态下却以post访问,但传值依旧是以拼接的形式跟在url后面的,也就是https状态下要判断post的请求方式且get获取传值,并进行判断。各位在开发中的语言和判断各有不同,我就不在这贴代码了,仅把错误列出来。不得不说微信真有你的。
我上面写得可能稍微有点乱,但相信各位也能通过nginx访问日志看出来了。