采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,我已经可以 获取到xml内容了,但是,为什么我微信里面没有 回复这个内容呢? 而是提示“该公众号暂时无法提供服务, 请稍后再试”?
wechat\util.js
exports.tpl =
function
(content, message) {
var
info = {}
type =
'text'
fromUserName = message.ToUserName
//注意这里,ToUserName和
toUserName = message.FromUserName
//FromUserName对调一下
if
(Array.isArray(content)) {
'news'
}
(!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。
是的,谢谢回复! 这个确实容易搞错,希望对其他人也有帮助!!
非常感谢!
啊 我看了一下你的tpl的代码... 感觉你的错误和我的错误 可能有点不一样... 你用console.log 输出一下 回复的xml信息看看... 我后来发现我的问题是处在 toUser和fromUser 前后 多了一对引号 所以才服务器才报错的...
我也收不到订阅的body message,但是也不会弹"该公众号暂时无法提供服务, 请稍后再试"
'use strict'
ejs = require(
'ejs'
);
heredoc = require(
'heredoc'
tpl = heredoc(
() {
/*
<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>
</Voice>
} else if(msgType === 'video') {
<Video>
<Title><![CDATA[<%= content.title %>]]></Title>
<Description><![CDATA[<%= content.description %>]]></Description>
</Video>
} else if(msgType == 'music') {
<Music>
<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>
*/
})
compiled = ejs.compile(tpl);
exports = module.exports = {
compiled: compiled
这是tpl 的模板代码
我也是诶... 请问你解决了嘛...?
只能说明写的有问题,仔细看视频,运行的时候看有没有报错
http的response的太慢了,微信会不认,会有这种情况发生,文档上有写
恩,5秒内没有响应是会有问题,不过每次都慢没道理啊,这样还是解决不了问题啊,卡这儿好几天了!/(ㄒoㄒ)/~~
我好像知道问题了... 你把tpl的模板代码 贴出来看一下
好的,我晚上回去发一下 你是不是想说,fromUser. 和toUser弄反了,我确定没有!
登录后可查看更多问答,登录/注册
Koa框架、ES2015新特性、MongoDB,开发微信公众号
3.8k 43
2.6k 12
4.1k 11
1.4k 10
999 9
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号