微信支付结果返回得数据格式是怎么样的
发布于 5 年前 作者 qiangchang 14741 次浏览 来自 问答

官方文档说是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));
});
});

只要一解析支付结果就报错

回到顶部