node微信公众号开发---自动回复

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
}

  




以上是关于node微信公众号开发---自动回复的主要内容,如果未能解决你的问题,请参考以下文章

C#微信公众号开发 -- 用户关注之后自动回复

微信公众号开发之文本消息自动回复,以及系统关注自动回复,php代码

想在微信公众平台开发者模式的自动回复里加入emoji表情,需要啥PHP方法来处理

JAVA微信公众号开发回复消息能回复多条吗?具体怎么代码实现?

微信公众号开发之自动消息回复和自定义菜单

Django实现微信公众号简单自动回复(复读机)