天天看点

《微信公众平台开发最佳实践》——3.2 发送被动响应消息

本节书摘来自华章出版社《微信公众平台开发最佳实践》一 书中的第3章,第3.2节,作者:方倍工作室,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

微信公众账号能够回复用户发送的六种类型的消息:文本、图片、语音、视频、音乐、图文。其中图文又可分为单图文和多图文。下面将分别介绍这几种消息。

微信公众账号向用户回复文本消息的示例如图3-7所示。

《微信公众平台开发最佳实践》——3.2 发送被动响应消息

微信公众账号回复用户文本消息时的xml数据格式如下所示:

jlmc]]>

username>

<code>`</code>

公众账号回复图片消息的参数及描述如表3-8所示。

《微信公众平台开发最佳实践》——3.2 发送被动响应消息

微信公众账号向用户回复语音消息的示例如图3-9所示。

《微信公众平台开发最佳实践》——3.2 发送被动响应消息

微信公众账号回复用户语音消息时的xml数据格式如下所示:

4h0cr05asjds8pq3tlntwpukrfje-ipfgv]]&gt;

c0zsrztj0vd6zxwdmy9iylyp-d5_blwtru0pwihi]]&gt;

公众账号回复视频消息的参数及描述如表3-10所示。

《微信公众平台开发最佳实践》——3.2 发送被动响应消息

微信公众账号向用户回复音乐消息的示例如图3-11所示。

《微信公众平台开发最佳实践》——3.2 发送被动响应消息

.

微信公众账号回复用户音乐消息时的xml数据格式如下所示:

微信公众账号向用户回复多图文消息的示例如图3-13所示。

《微信公众平台开发最佳实践》——3.2 发送被动响应消息

微信公众账号回复用户多图文消息时的xml数据格式如下所示:

&lt;?php

//

// 响应用户消息

// 微信公众账号响应给用户的不同消息类型

define("token", "weixin");

$wechatobj = new wechatcallbackapitest();

if (!isset($_get['echostr'])) {

}else{

}

class wechatcallbackapitest

{

"picurl"=&gt;"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "url" =&gt;"http://m.cnblogs.com/?u=txw1958");

%s

text

";

image

$item_str

voice

['thumbmediaid'], $videoarray['title'], $videoarray['description']);

video

news

]]&gt;&lt;/content&gt;&lt;br&gt;&lt;articlecount&gt;%s&lt;/articlecount&gt;&lt;br&gt;&lt;articles&gt;&lt;br&gt;$item_str&lt;/articles&gt;&lt;br&gt;&lt;/xml&gt;";&lt;/p&gt;&lt;pre&gt;&lt;code&gt; $result = sprintf($newstpl, $object-&amp;gt;fromusername, $object-&amp;gt; tousername, time(), count($arr_item));

return $result;

/*

* 回复音乐消息

*/

private function transmitmusic($object, $musicarray)

$itemtpl = &amp;quot;&amp;lt;music&amp;gt;

&amp;lt;title&amp;gt;&amp;lt;![cdata[%s]]&amp;gt;&amp;lt;/title&amp;gt;

&amp;lt;description&amp;gt;&amp;lt;![cdata[%s]]&amp;gt;&amp;lt;/description&amp;gt;

&amp;lt;musicurl&amp;gt;&amp;lt;![cdata[%s]]&amp;gt;&amp;lt;/musicurl&amp;gt;

&amp;lt;hqmusicurl&amp;gt;&amp;lt;![cdata[%s]]&amp;gt;&amp;lt;/hqmusicurl&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/music&gt;";&lt;/p&gt;&lt;pre&gt;&lt;code&gt; $item_str = sprintf($itemtpl, $musicarray['title'], $musicarray ['description'], $musicarray['musicurl'], $musicarray['hqmusicurl']);

$texttpl = &amp;quot;&amp;lt;xml&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;tousername&gt;&lt;![cdata[%s

music

?&gt;<code>`</code>

在上面的代码中,回复文本、图文(包括单图文和多图文)、音乐三种消息,是使用直接构造响应消息类型实现的,而图片、语音、视频三种消息需要mediaid参数,在这里直接使用用户发送过来的消息中的mediaid,然后组装成响应消息回复