我在用egg.js开发公众号平台,但是一直没有办法接收公众号post过来的信息。
首先,微信信息认证等信息已经验证通过了,其次egg本身的crsf的安全策略也关闭了
然后我在接收公众号post的请求里 就打印一下请求过来的信息 ,返回微信success
async getMagFromWx() {
console.log(this.ctx.request);
console.log(this.ctx.request.body);
this.ctx.body="success";
}
问题是 body中并没有任何数据
以下打印的this.ctx.request 如下, this.ctx.request.body 则是{}。是否是因为公众号post过来的信息是
什么form-data之类的 不处理没法在body中拿到?先谢谢大家了!!~~~
{ method: 'POST',
url:
'/wechat?signature=c5f4d097b9caf6f60b6fffddbcf21df62b26f37b×tamp=1559804
165&nonce=848417516&openid=o8DHY1NpOicRDBzNE_UFrBTf2Eog',
header:
{ 'user-agent': 'Mozilla/4.0',
accept: '*/*',
host: 'ych1987.xyz',
pragma: 'no-cache',
'content-length': '277',
'content-type': 'text/xml' } }
没用
egg
但是我用koa2
需要通过koa-xml-body
处理一遍就能在ctx.request.body.xml
拿到微信post
过来的数据,你也试下安装这个中间件,或者看看egg
是否有提供类似的xml
解析中间件