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