Skip to content

Generate message helpers

lanrion edited this page Mar 28, 2014 · 4 revisions

生成微信回复信息的使用方法介绍

当微信用户向公众账号发送信息时,服务端会根据信息的类型来回复,比如用户发送了 “首页”的关键字,那么微信会将此 文本消息 以XML的格式推送到我们的服务器处理:

<xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName> 
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[首页]]></Content>
 <MsgId>1234567890123456</MsgId>
 </xml>

我们服务端根据“首页”这个关键字,可能会有以下几种情况:

回复文本信息,

查询到需要返回的是一个 简单的文本信息,比如 “欢迎你。”,微信要求我们返回的XML格式为:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[欢迎你。]]></Content>
</xml>

我们需要使用的辅助方法为: reply_text_message(from=nil, to=nil, content) 或者 reply_text_message(content)

例子:reply_text_message("欢迎你。")

回复图文消息 。

查询到需要返回的是一个 3G首页的图文信息(news),微信要求我们返回的XML格式为:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[title1]]></Title> 
<Description><![CDATA[description1]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
</Articles>
</xml> 

这时我们可以使用weixin_rails_middleware 提供的辅助方法:

  1. generate_article(title, desc, pic_url, link_url)
  2. reply_news_message(from=nil, to=nil, articles) # articles为 数组

生成文章列表,此例只有一个:

articles = [generate_article("title1", "description1","picurl","url")]
reply_news_message(articles)

回复音乐信息

如果服务需要返回音乐信息,微信需要我们返回的XML格式:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[music]]></MsgType>
<Music>
<Title><![CDATA[TITLE]]></Title>
<Description><![CDATA[DESCRIPTION]]></Description>
<MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl>
<HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl>
<ThumbMediaId><![CDATA[media_id]]></ThumbMediaId>
</Music>
</xml>

可以使用到的辅助方法为:

generate_music(title, desc, music_url, hq_music_url)
reply_music_message(from=nil, to=nil, music) # from, to 为可选参数

举个例子:

music = generate_music("title", "desc", "music_url", "hq_music_url")
reply_music_message(music)

则会自动生成微信需要的XML格式。简单易用。