微信多公众号接入层初探

2015-05-05 15:59:59


        因公司业务发展需求 需要同一个应用多个公众号实现接入  并分发消息   原理我就不多说了 直接上代码 相信大家一看就明白 了

exports.index = function (req, res, next) {

    var id = req.params.id; // 传入微信公众号序列
    var weixinid = 'wx_' + id;
    var weixinconfig = config[weixinid]; //配置文件获取相关配置
    // console.log('配置文件', JSON.stringify(weixinconfig)) ;
    var wxconfig = {
        token: weixinconfig.token,
        appid: weixinconfig.appid,
        encodingAESKey: weixinconfig.encodingAESKey
    };
    //   console.log(JSON.stringify(wxconfig));
    var wx = wechat(wxconfig, function (req, res, next) {
        // 主逻辑
        var retlog = {};
        var message = req.weixin;
        var wen = {};
        wen.wen = message.Content;
        var EventKey;
        var Content;
        if (message.EventKey) {
            EventKey = message.EventKey;
        }
        else {
            EventKey = message.Event;
        }

        if (EventKey != 'LOCATION') {
            Content = message.Content;
        }
        var MsgType = message.MsgType;
        var Content = message.Content;
        var FromUserName = message.FromUserName;
        var ToUserName = message.ToUserName;
        retlog.MsgType = MsgType;
        retlog.Content = Content;
        retlog.FromUserName = FromUserName;
        retlog.ToUserName = ToUserName;
        retlog.EventKey = EventKey;

        if (message.MsgType == 'text') {

            if (Content == '测试') {
                var weixinid = 'wxsubscribe_' + id;

                var weixinsubscribe = config[weixinid];

                console.log(weixinsubscribe.text, Content, FromUserName);
                res.reply({
                    content: weixinsubscribe.text + Content + FromUserName,
                    type: 'text'
                });
            }


        }
        else if (message.Event == 'subscribe') {  // 第一次关注微信回复

            var weixinid = 'wxsubscribe_' + id;

            var weixinsubscribe = config[weixinid];

            var mes = {
                FromUserName: FromUserName,
                MsgType: 'event',
                Event: 'subscribe',
                wxid: id
            };

            wxmessage.push(mes); //进入分发消息队列
            res.reply({
                content: weixinsubscribe.text,
                type: 'text'
            });
        }

        else if (message.Event == 'LOCATION') {  //坐标

            var ret = "坐标" + message.Latitude + "  " + message.Longitude + "   " + message.Precision;
            res.reply({
                content: "",
                type: 'text'
            });

        }

    });

    wx(req, res, next);
}


你打算打赏多少钱呢?

打赏
(微信扫一扫)