xml内容获取到了,提示我“该公众号暂时无法提供服务,请稍后再试”
来源:4-3 第四天 自动回复各种消息
PaulDing
2016-08-15
老师,我已经可以 获取到xml内容了,但是,为什么我微信里面没有 回复这个内容呢? 而是提示“该公众号暂时无法提供服务, 请稍后再试”?
写回答
7回答
-
wechat\util.js
exports.tpl = function(content, message) { var info = {} var type = 'text' var fromUserName = message.ToUserName //注意这里,ToUserName和 var toUserName = message.FromUserName //FromUserName对调一下 if (Array.isArray(content)) { type = 'news' } if (!content) { content = 'Empty news.' } type = content.type || type info.content = content info.createTime = new Date().getTime() info.msgType = type info.fromUserName = fromUserName info.toUserName = toUserName return tpl.compiled(info) }
我之前也是跟你的情况一样,后来发现是给微信客户端发送消息的XML内容格式不对,FromUserName和ToUserName弄反了。
服务器接收到的消息中FromUserName是用户的OpenID,ToUserName是开发者微信号。
而发送给微信的FromUserName自然是开发者微信号,ToUserName是用户的OpenID。
122016-08-30 -
小七努力变大牛
2016-08-31
啊 我看了一下你的tpl的代码... 感觉你的错误和我的错误 可能有点不一样... 你用console.log 输出一下 回复的xml信息看看... 我后来发现我的问题是处在 toUser和fromUser 前后 多了一对引号 所以才服务器才报错的...
00 -
慕神9599839
2016-08-26
我也收不到订阅的body message,但是也不会弹"该公众号暂时无法提供服务, 请稍后再试"
00 -
PaulDing
提问者
2016-08-23
'use strict' var ejs = require('ejs'); var heredoc = require('heredoc'); var tpl = heredoc(function() { /* <xml> <ToUserName><![CDATA[ <%= toUserName %> ]]></ToUserName> <FromUserName><![CDATA[ <%= fromUserName %> ]]></FromUserName> <CreateTime> <%= createTime %> </CreateTime> <MsgType><![CDATA[<%= msgType %>]]></MsgType> <%if(msgType === 'text') { %> <Content><![CDATA[<%= content %>]]></Content> <% } else if(msgType === 'image') { %> <Image> <MediaId><![CDATA[<%= content.media_id %>]]></MediaId> </Image> <% } else if(msgType === 'voice') { %> <Voice> <MediaId><![CDATA[<%= content.media_id %>]]></MediaId> </Voice> <% } else if(msgType === 'video') { %> <Video> <MediaId><![CDATA[<%= content.media_id %>]]></MediaId> <Title><![CDATA[<%= content.title %>]]></Title> <Description><![CDATA[<%= content.description %>]]></Description> </Video> <% } else if(msgType == 'music') { %> <Music> <Title><![CDATA[<%= content.title %>]]></Title> <Description><![CDATA[<%= content.description %>]]></Description> <MusicUrl><![CDATA[<%= content.musicUrl %>]]></MusicUrl> <HQMusicUrl><![CDATA[<%= content.hqMusicUrl %>]]></HQMusicUrl> <ThumbMediaId><![CDATA[<%= content.thumbMediaId %>]]></ThumbMediaId> </Music> <% } else if(MsgType === 'news') { %> <ArticleCount><%= content.length %></ArticleCount> <Articles> <% content.forEach(function(item) { %> <item> <Title><![CDATA[<%= item.title %>]]></Title> <Description><![CDATA[<%= item.description %>]]></Description> <PicUrl><![CDATA[<%= item.picurl %>]]></PicUrl> <Url><![CDATA[<%= item.url %>]]></Url> </item> <% })%> </Articles> <% } %> </xml> */ }) var compiled = ejs.compile(tpl); exports = module.exports = { compiled: compiled }
012016-08-23 -
小七努力变大牛
2016-08-21
我也是诶... 请问你解决了嘛...?
00 -
Hugo_s
2016-08-16
只能说明写的有问题,仔细看视频,运行的时候看有没有报错
00 -
Hugo_s
2016-08-16
http的response的太慢了,微信会不认,会有这种情况发生,文档上有写
042016-08-23
相似问题