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

    微信开发的特点:
    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 =  "<xml><ToUserName><![CDATA["+ toUser +"]]></ToUserName>";
        xmlContent += "<FromUserName><![CDATA["+ fromUser +"]]></FromUserName>";
        xmlContent += "<CreateTime>"+ new Date().getTime() +"</CreateTime>";
        xmlContent += "<MsgType><![CDATA[text]]></MsgType>";
        xmlContent += "<Content><![CDATA["+ content +"]]></Content></xml>";
        return xmlContent;
    }
    

      

  • 相关阅读:
    计算机学习的网站、常用软件
    c语言标识符
    Git报错
    福尔摩斯的约会
    怎样判断一个单链表是否有环?
    中成药的合理使用--风寒感冒
    使用vscode打造python开发环境
    AIDA64 Extreme 6.10.5200 序列号
    VMware Workstation Pro 15密钥及下载地址
    centos 一键安装 Aria2 &管理脚本
  • 原文地址:https://www.cnblogs.com/muamaker/p/9058095.html
Copyright © 2011-2022 走看看