网站改版|WAP网站制作|域名注册|虚拟主机|服务器|其他产品| 24小时服务电话:13807590485
海南网站建设海南网站制作海口网站建设三亚网站建设儋州网站建设五指山网站建设文昌网站建设琼海网站建设万宁网站建设 网站首页 网站建设 微信开发 网站推广 海南世纪华联 网站超市 客户案例 网站模板 关于我们
微信开发
微信系统开发 微信开发功能 公众号基础教程 开发技术资讯 公众号推广营销 客户案例
联系我们
QQ服务群:28519571 工作时间:86-0898-31568080 传真号码:86-0898-31568085 24小时服务:0138-07590485
 您现在的位置: 首页 >> 微信开发 >> 开发技术资讯 开发技术资讯
微信公众平台NodeJs开发之路--消息处理
世纪华联 | 2018-01-26 23:52:49 | 阅读:1821
关于微信开放平台的申请过程,请查看官方地址:http://mp.weixin.qq.com/cgi-bin/ ... -doc&lang=zh_CN

现在贴出来如何处理消息的,XML的解析使用了node-xml这个模块 ,使用命令:npm install node-xml 安装.

001var crypto=require("crypto");
002var xml=require("./node-xml/lib/node-xml.js");
003var messageSender=require("./messageSender.js");
004function isLegel(signature,timestamp,nonce,token){
005var array=new Array();
006array[0]=timestamp;
007array[1]=nonce;
008array[2]=token;
009array.sort();
010var hasher=crypto.createHash("sha1");
011var msg=array[0]+array[1]+array[2];
012hasher.update(msg);
013var msg=hasher.digest('hex');
014if(msg==signature){
015return true;
016}else{
017return false;
018}
019}
020 
021function processMessage(data,response){
022var ToUserName="";
023var FromUserName="";
024var CreateTime="";
025var MsgType="";
026var Content="";
027var Location_X="";
028var Location_Y="";
029var Scale=1;
030var Label="";
031var PicUrl="";
032var FuncFlag="";
033 
034var tempName="";
035var parse=new xml.SaxParser(function(cb){
036cb.onStartElementNS(function(elem,attra,prefix,uri,namespaces){
037tempName=elem;
038});
039 
040cb.onCharacters(function(chars){
041chars=chars.replace(/(^s*)|(s*$)/g, "");
042if(tempName=="CreateTime"){
043CreateTime=chars;
044}else if(tempName=="Location_X"){
045Location_X=cdata;
046}else if(tempName=="Location_Y"){
047Location_Y=cdata;
048}else if(tempName=="Scale"){
049Scale=cdata;
050}
051 
052 
053});
054 
055cb.onCdata(function(cdata){
056 
057if(tempName=="ToUserName"){
058ToUserName=cdata;
059}else if(tempName=="FromUserName"){
060FromUserName=cdata;
061}else if(tempName=="MsgType"){
062MsgType=cdata;
063}else if(tempName=="Content"){
064Content=cdata;
065}else if(tempName=="PicUrl"){
066PicUrl=cdata;
067}else if(tempName=="Label"){
068Label=cdata;
069}
070console.log("cdata:"+cdata);
071});
072 
073cb.onEndElementNS(function(elem,prefix,uri){
074tempName="";
075});
076 
077cb.onEndDocument(function(){
078console.log("onEndDocument");
079tempName="";
080var date=new Date();
081var yy=date.getYear();
082var MM=date.getMonth() + 1;
083var dd=date.getDay();
084var hh=date.getHours();
085var mm=date.getMinutes();
086var ss=date.getSeconds();
087var sss=date.getMilliseconds();
088var result=Date.UTC(yy,MM,dd,hh,mm,ss,sss);
089var msg="";
090if(MsgType=="text"){
091msg="谢谢关注,你说的是:"+Content;
092}else if (MsgType="location"){
093msg="你所在的位置: 经度:"+Location_X+"纬度:"+Location_Y;
094}else if (MsgType="image"){
095msg="你发的图片是:"+PicUrl;
096}
097messageSender.sendTextMessage(FromUserName,ToUserName,CreateTime,msg,FuncFlag,response);
098 
099});
100});
101parse.parseString(data);
102}
103module.exports.isLegel=isLegel;
104module.exports.processMessage=processMessage;
调用过程:

view source print?

01var app=require("express").createServer();
02var wx=require('./lib/wx');
03var fs=require("fs");
04app.get('/',function(req,response){
05 
06fs.readFile("./qrCode.jpg","binary",function(err,file){
07if(err){
08response.writeHead(500,{"Content-Type":"text/plain"});
09response.write(err+"n");
10}else{
11response.writeHead(200,{"Content-Type":"image/jpg"});
12response.write(file,"binary");
13}
14response.end();
15});
16});
17 
18 
19app.get('/wx',function(req,res){
20var signature=req.query.signature;
21var timestamp=req.query.timestamp;
22var nonce=req.query.nonce;
23var echostr=req.query.echostr;
24var check=false;
25check=wx.isLegel(signature,timestamp,nonce,token);//替换成你的token
26if(check){
27res.write(echostr);
28}else{
29res.write("error data");
30}
31res.end();
32});
33app.post('/wx',function(req,res){
34var response=res;
35var formData="";
36req.on("data",function(data){
37formData+=data;
38});
39req.on("end",function(){
40wx.processMessage(formData,response);
41});
42});
43app.listen(3000);
44 
45<DIV>
46 
47 
48</DIV>
海南网站设计|广州网站建设|海南企业微信|海南微信营销|海南微信电商|海南微信建站|海南精英网|天涯数码|海南中立科技|海南网站设计|海南网站制作|海口网站设计|三亚网站设计|儋州网站设计|五指山网站设计|文昌网站设计|琼海网站设计|万宁网站设计|东方网站设计|定安网站设计|屯昌网站设计|澄迈网站设计|临高网站设计|白沙网站设计|昌江网站设计|乐东网站设计|陵水网站设计|保亭网站设计|琼中网站设计
合作伙伴 企业发展 企业文化 联系我们 在线订购 网站地图 返回首页
海口世纪华联科技有限公司2019版权所有 24小时服务热线:13807590485   欢迎来电咨询
地址:海南省.海口市.海甸二东路环惠大厦6楼(南宝路明都大厦107#) 公司电话:0898-31568080 31568060 QQ:85398489
全国合作联盟分布:海南海口 四川成都 湖北武汉 湖南长沙 安徽合肥 广东深圳 山西太原 西藏拉萨
技术服务: E_mail:server@web0898.net 服务订购:E_mail:server@web0898.net 在线客服邀请
推广关键字:海南网站建设.海南网站制作.海南网站设计.海南网页制作.海南微信开发.海南公众号开发.海南网络公司.海南科技公司 备案/经营许可号:琼ICP备10201086号-9