zoukankan      html  css  js  c++  java
  • 微信公众号自动回复 node

    纯属分享记录:

    app.js

    var bodyParser = require('body-parser');
    require('body-parser-xml')(bodyParser);
    var wx = require('./admin/wx/wx.js');
    //解析xml
    app.use(bodyParser.xml({
    limit: '1MB',
    xmlParseOptions: {
        normalize: true,
        normalizeTags: true,
        explicitArray: false
    }
    }));
    
    //微信
    app.post('/wx',function(req,res){
        wx.replyWx(req,res);
    });

    wx.js

    //微信自动回复
    function wx(){
        this.replyWx = function(req,res){
            res.writeHead(200, {'Content-Type': 'application/xml'});
          var data = req.body.xml;
          if(data.msgtype === 'event' && data.event === 'subscribe'){
              data.content = '欢迎关注浅唱姩華,这里是开发者试用帐号!';
              msgText(res,data);
          }else if(data.msgtype === 'event' && data.event === 'unsubscribe'){
              //取消关注了
          }else if(data.msgtype === 'text'){//文本消息
              msgText(res,data);
          }else if(data.msgtype === 'image'){//图片消息
              data.content = '你好暂不支持图片回复';
              msgText(res,data);
          }else if(data.msgtype === 'video'){//视频消息
              data.content = '你好暂不支持视频回复';
              msssage(res,data);
          }else if(data.msgtype === 'voice'){//语言消息
              data.content = '你好暂不支语音回复';
              msssage(res,data);
          }
        }
    }
    
    function msgText(res,data){
        //fromusername 接受者openid
        //tousername  发送者openid
         var resMsg = '<xml>' +
            '<ToUserName><![CDATA[' + data.fromusername + ']]></ToUserName>' +
            '<FromUserName><![CDATA[' + data.tousername + ']]></FromUserName>' +
            '<CreateTime>' + parseInt(new Date().valueOf() / 1000) + '</CreateTime>' +
            '<MsgType><![CDATA[text]]></MsgType>' +
            '<Content><![CDATA['+data.content+']]></Content>' +
            '</xml>';
          res.end(resMsg);
    }
    
    module.exports = new wx();

    访问路径就是你token验证通过的路径,这里是自动回复文本消息,用户发什么,你自动回什么

  • 相关阅读:
    SQL的各种连接(cross join、inner join、full join)的用法理解
    解决sonarQube 'Unknown': sonar.projectKey
    DOS批处理高级教程
    java自定义注解
    inode备忘
    sed备忘
    awk备忘
    Oracle 删除表中记录 如何释放表及表空间大小
    Oracle 11g 分区拆分与合并
    Maven的settings.xml文件结构之mirrors
  • 原文地址:https://www.cnblogs.com/bruce-gou/p/6367447.html
Copyright © 2011-2022 走看看