微信开发的特点:
1.post请求 (一定要注意,这里和配置域名的时候不一样,配置域名是get请求)2.数据包是xml格式的3.你给微信返回的数据也是xml格式的
var parseString = require('xml2js').parseString;//引入xml2js包/** * 处理微信post消息请求 */router.post('/', function (req, res) { try{ var buffer = []; //监听 data 事件 用于接收数据 req.on('data', function (data) { buffer.push(data); }); //监听 end 事件 用于处理接收完成的数据 req.on('end', function () { //输出接收完成的数据 parseString(Buffer.concat(buffer).toString('utf-8'),{explicitArray : false},function(err,result){ if(err){ //打印错误信息 console.log(err); }else{ //打印解析结果 console.log(result); result = result.xml; var toUser = result.ToUserName; //接收方微信 var fromUser = result.FromUserName;//发送仿微信 if(result.Event==='subscribe'){ //回复消息 var xml=this.returntext(fromUser,toUser,'欢迎关注公众号,hahhh'); console.log(xml) res.send(xml) }else{ var xml=this.returntext(fromUser,toUser,'您好'); console.log(xml) res.send(xml) } } }) }); }catch(err){console.log(err) }})//回复文本消息function returntext(toUser, fromUser, content){var xmlContent = ""; return xmlContent;} "; xmlContent += " "; xmlContent += " "+ new Date().getTime() +" "; xmlContent += ""; xmlContent += "