网站改版
|
WAP网站制作
|
域名注册
|
虚拟主机
|
服务器
|
海微商
|
海微信
|
海微通
|
无障碍
| 24小时服务电话:13807590485
海南网站建设
海南网站制作
海口网站建设
三亚网站建设
儋州网站建设
五指山网站建设
文昌网站建设
琼海网站建设
万宁网站建设
东方网站建设
定安网站建设
网站首页
网站首页
网站建设
网站建设
微信开发
微信开发
网站推广
网站推广
海南世纪华联
网站超市
网站超市
客户案例
客户案例
网站模板
网站模板
关于我们
关于我们
1
2
3
4
Previous
Next
无障碍
微信开发
微信系统开发
微信开发功能
公众号基础教程
开发技术资讯
公众号推广营销
客户案例
联系我们
QQ服务群:
28519571
工作时间:
86-0898-31568080
传真号码:
86-0898-31568085
24小时服务:
0138-07590485
您现在的位置: 首页 >> 微信开发 >> 开发技术资讯
开发技术资讯
微信公众平台NodeJs开发之路--消息处理
世纪华联 | 2018-01-26 23:52:49 | 阅读:13264
关于微信开放平台的申请过程,请查看官方地址:
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>
海南网站建设
|
海南网站制作
|
海口网站建设
|
三亚网站建设
|
儋州网站建设
|
五指山网站建设
|
文昌网站建设
|
琼海网站建设
|
万宁网站建设
|
东方网站建设
|
定安网站建设
|
屯昌网站建设
|
澄迈网站建设
|
临高网站建设
|
白沙网站建设
|
昌江网站建设
|
乐东网站建设
|
陵水网站建设
|
保亭网站建设
|
琼中网站建设
|
海口精英网
|
三亚精英网
|
文昌精英网
|
琼海精英网
|
陵水精英网
|
儋州精英网
|
万宁精英网
|
澄迈精英网
|
海微通
合作伙伴
企业发展
企业文化
联系我们
在线订购
网站地图
返回首页
手机版
海口世纪华联科技有限公司2025版权所有 24小时服务热线:13807590485 欢迎来电咨询
地址:海南省.海口市.海甸二东路环惠大厦6楼(南宝路明都大厦107#) 公司电话:0898-31568080 31568060 QQ:85398489
全国合作联盟分布:海南海口 四川成都 湖北武汉 湖南长沙 安徽合肥 广东深圳 山西太原 西藏拉萨
技术服务: E_mail:server@hnzlweb.com 服务订购:E_mail:server@hnzlweb.com 在线客服邀请
琼ICP备10201086号-15
推广关键字:
海南网站建设公司
,
海南网站制作公司
,
海南网站开发公司
,
海南微信开发公司
,
海南微信公众号开发公司
,
海南微信公众号代运营公司
,
海南模板网站制作公司
,
海南网页设计公司
,
海南网络公司