问题描述
这里是测试号的状态,如果是公众号的话上边应该显示token验证失败
下面是服务端代码
const express = require('express')
const app = express()
app.use((req, res, next) => {
console.log(req.query);
//这里直接返回echostr字符串给微信服务端,结果验证还是失败
res.send(req.query.echostr)
})
app.listen(3000,()=>{
console.log('服务器启动成功')
})
这里并没有对是不是微信服务端发来的消息进行验证只是返回echostr字符串来测试是否成功
问题原因
应该是express向微信服务端发送消息的时候格式有问题导致echostr这个随机字符串并不是以纯文本形式发送的
解决方案
在发送echostr字符串之前指定发送的格式,下面附代码
const express = require('express')
const app = express()
app.use((req, res, next) => {
console.log(req.query);
//这里很关键的一句,表示发送的消息是以纯文本形式发送的
res.set('Content-Type','text/plain')
res.send(req.query.echostr)
})
app.listen(3000,()=>{
console.log('服务器启动成功')
})
重新运行服务器问题解决
结语
在开发公众号时候遇见了一个小坑,返回echostr字符串给微信服务端还是验证失败,特此记录解决方案
版权声明:本文为weixin_44340777原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。