node 開發(fā)微信公眾號(三.最簡單的自動回復)

推薦微信開發(fā)入門教程: https://cnodejs.org/topic/59294bff9e32cc84569a746a

先說一些微信開發(fā)的特點:
1.post請求
2.數(shù)據(jù)包是xml格式的
3.你給微信返回的數(shù)據(jù)也是xml格式的

coding吧

var parseString = require('xml2js').parseString;//引入xml2js包
/**
 * 處理微信post消息請求
 */
router.post('/', function (req, res) {
    try{
        var buffer = [];
        //監(jiān)聽 data 事件 用于接收數(shù)據(jù)
        req.on('data', function (data) {
            buffer.push(data);
        });
        //監(jiān)聽 end 事件 用于處理接收完成的數(shù)據(jù)
        req.on('end', function () {
            //輸出接收完成的數(shù)據(jù)
            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;//發(fā)送仿微信
                    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;
}

微信開發(fā)其實就是后臺開發(fā),只是多了一些微信制定的條條框框,文檔都有說明的。感覺微信開發(fā)跟寫前臺js一樣,事件驅(qū)動。

多看文檔,微信開發(fā)多看文檔

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容