微信支付结果返回得数据格式是怎么样的
官方文档说是xml格式,我的理解是微信通过post请求我设置得接收通知得地址,请求体携带xml字符串,我调用微信统一下单接口那一步确实可以解析出来,但是接受微信得支付结果那一步却解析不出xml,我服务器用nodejs写得,解析xml数据用的是xml2js模块,下面是我调用统一下单接口的解析处理,打印出来确实没问题:
这里则是支付结果的xml解析处理:
不知道问题是不是出在我app.post这个路由上面,是不是不应该用回调的httpreq进行解析,搞了一上午没搞明白
2 回复
http request 对象包含很多内容,不单单是 post 过来的 xml 文本。所以你不能直接给 xmlParse 直接丢 httpreq,而是要提取 httpreq 中的 xml 文本内容。
nodejs 没写过,给你网上找一段参考代码:
var xml2json=require( 'xml2json' ); app.post( '/xml' , function (req,res){ req.rawBody= '' ; var json={}; req.setEncoding( 'utf8' ); req.on( 'data' , function (req,res){ req.rawBody+=chunk; }); req.on( 'end' ,funciton(){ json=xml2json.toJson(req.rawBody); res.send(JSON.stringify(json)); }); }); |