PHP 微信公众平台编辑器程,如何单独回复一张图片 代码

微信公众号开发之微信公共平台消息回复类实例
投稿:shichen2014
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了微信公众号开发之微信公共平台消息回复类,给出了其完整实例,并附有注释说明便于理解与运用,对于微信公众号的开发来说非常具有参考借鉴价值,需要的朋友可以参考下
本文实例讲述了微信公众号开发之微信公共平台消息回复类。分享给大家供大家参考。具体如下:
微信公众号开发代码我在网上看到了有不少,其实都是大同小义了都是参考官方给出的demo文件进行修改的,这里就给各位分享一个。
&* 微信公共平台消息回复类
class BBCweixin{
&private $APPID="******";
&private $APPSECRET="******";
& *文本消息回复
& *@param array object
& *@param string content
& *@return string
&public function resText($object,$content,$flag=0){
& $xmlText="&xml&
&&&&&&&&&&&&&&&&& &ToUserName&&![CDATA[%s]]&&/ToUserName&
&&&&&&&&&&&&&&&&& &FromUserName&&![CDATA[%s]]&&/FromUserName&
&&&&&&&&&&&&&&&&& &CreateTime&%s&/CreateTime&
&&&&&&&&&&&&&&&&& &MsgType&&![CDATA[text]]&&/MsgType&
&&&&&&&&&&&&&&&&& &Content&&![CDATA[%s]]&&/Content&
&&&&&&&&&&&&&&&&& &FuncFlag&%d&/FuncFlag&
&&&&&&&&&&&&&&&&& &/xml&";
&&&& $resultStr=sprintf($xmlText,$object-&FromUserName,$object-&ToUserName,time(),$content,$flag);
& echo $resultSexit();
& *图片消息回复
& *@param array object
& *@param string url
& *@return string
&public function resImage($object,$media_id){
& $xmlImage="&xml&";
& $xmlImage.="&ToUserName&&![CDATA[%s]]&&/ToUserName&";
& $xmlImage.="&FromUserName&&![CDATA[%s]]&&/FromUserName&";
& $xmlImage.="&CreateTime&%s&/CreateTime&";
& $xmlImage.="&MsgType&&![CDATA[image]]&&/MsgType&";
& $xmlImage.="&Image&&MediaId&&![CDATA[%s]]&&/MediaId&&/Image&";
& $xmlImage.="&/xml&";
& $resultStr=sprintf($xmlImage,$object-&FromUserName,$object-&ToUserName,time(),$media_id);
& echo $resultSexit();
& *图文消息回复
& *@param array object
& *@param array newsData 二维数组 必须包含[Title][Description][PicUrl][Url]字段
& *@return string
&public function resNews($object,$newsData=array()){
&&&& $CreateTime=time();
&&&& $FuncFlag=0;
&&&& $newTplHeader="&xml&
&&&&&&& &ToUserName&&![CDATA[{$object-&FromUserName}]]&&/ToUserName&
&&&&&&& &FromUserName&&![CDATA[{$object-&ToUserName}]]&&/FromUserName&
&&&&&&& &CreateTime&{$CreateTime}&/CreateTime&
&&&&&&& &MsgType&&![CDATA[news]]&&/MsgType&
&&&&&&& &Content&&![CDATA[%s]]&&/Content&
&&&&&&& &ArticleCount&%s&/ArticleCount&&Articles&";
&&&& $newTplItem="&item&
&&&&& &Title&&![CDATA[%s]]&&/Title&
&&&&& &Description&&![CDATA[%s]]&&/Description&
&&&&& &PicUrl&&![CDATA[%s]]&&/PicUrl&
&&&&& &Url&&![CDATA[%s]]&&/Url&
&&&&& &/item&";
&&&& $newTplFoot="&/Articles&
&&&&& &FuncFlag&%s&/FuncFlag&
&&&&& &/xml&";
&&&& $Content='';
&&&& $itemsCount=count($newsData);
&&&& $itemsCount=$itemsCount&10?$itemsCount:10;//微信公众平台图文回复的消息一次最多10条
&&&& if($itemsCount){
&&&&& foreach($newsData as $key=&$item){
&&&&&& if($key&=9){
&&&&& $Content.=sprintf($newTplItem,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']);
&&&& $header=sprintf($newTplHeader,0,$itemsCount);
&&&& $footer=sprintf($newTplFoot,$FuncFlag);
&&&& echo $header.$Content.$exit();
& *音乐消息回复
& *@param array object
& *@param array musicContent 二维数组 包含[Title][Description][MusicUrl][HQMusicUrl]字段
& *@return string
&public function resMusic($object,$musicContent=array()){
&& $xmlMusic="&xml&
&&&&&&&&&&&&&&&&&&& &ToUserName&&![CDATA[%s]]&&/ToUserName&
&&&&&&&&&&&&&&&&&&& &FromUserName&&![CDATA[%s]]&&/FromUserName&
&&&&&&&&&&&&&&&&&&& &CreateTime&%s&/CreateTime&
&&&&&&&&&&&&&&&&&&& &MsgType&&![CDATA[music]]&&/MsgType&
&&&&&&&&&&&&&&&&&&& &Music&
&&&& &Title&&![CDATA[%s]]&&/Title&
&&&&&&&&&&&&&&&&&&& &Description&&![CDATA[%s]]&&/Description&
&&&&&&&&&&&&&&&&&&& &MusicUrl&&![CDATA[%s]]&&/MusicUrl&
&&&&&&&&&&&&&&&&&&& &HQMusicUrl&&![CDATA[%s]]&&/HQMusicUrl&
&&&&&&&&&&&&&&&&&&& &/Music&
&&&&&&&&&&&&&&&&&&& &/xml&";
& if(empty($musicContent[0]['HQMusicUrl'])){
&& $musicContent[0]['HQMusicUrl']=$musicContent[0]['MusicUrl'];
& $resultStr=sprintf($xmlMusic,$object-&FromUserName,$object-&ToUserName,time(),$musicContent[0]['Title'],$musicContent[0]['Description'],$musicContent[0]['MusicUrl'],$musicContent[0]['HQMusicUrl']);
& echo $resultSexit();
& *上传多媒体文件接口
& *@param array mediaArr filename、filelength、content-type
& *@return object
&public function uploadMedia($accessToken,$type='image',$mediaArr){
& $url="http://file.api./cgi-bin/media/upload?access_token=".$accessToken."&type=".$
& $doPost=self::curlPost($mediaArr,$url);
& return $doP
& *GPS,谷歌坐标转换成百度坐标
& *@param lnt
& *@param lat
& *@return array
&public function mapApi($lng,$lat,$type){
& $map=array();
& if($type=='gps'){
&& $url="http://map.yanue.net/gpsApi.php?lat=".$lat."&lng=".$
&& $res=json_decode(file_get_contents($url));
&& $map['lng']=$res-&baidu-&
&& $map['lat']=$res-&baidu-&
& if($type=='google'){
&& $url="http://api./ag/coord/convert?from=2&to=4&mode=1&x=".$lng."&y=".$
&& $res=json_decode(file_get_contents($url));
&& $map['lng']=base64_decode($res[0]-&x);
&& $map['lat']=base64_decode($res[0]-&y);
& return $
&/**************************************************************
& *& 使用特定function对数组中所有元素做处理
& *& @param& string& &$array&&&& 要处理的字符串
& *& @param& string& $function&& 要执行的函数
& *& @return boolean $apply_to_keys_also&&&& 是否也应用到key上
& *& @access public
& *************************************************************/
&public function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
& static $recursive_counter = 0;
& if (++$recursive_counter & 1000) {
&& die('possible deep recursion attack');
& foreach ($array as $key =& $value) {
&& if (is_array($value)) {
&&& self::arrayRecursive($array[$key], $function, $apply_to_keys_also);
&& } else {
&&& $array[$key] = $function($value);
&& if ($apply_to_keys_also && is_string($key)) {
&&& $new_key = $function($key);
&&& if ($new_key != $key) {
&&&& $array[$new_key] = $array[$key];
&&&& unset($array[$key]);
& $recursive_counter--;
&/**************************************************************
& *& 将数组转换为JSON字符串(兼容中文)
& *& @param& array&& $array&&&&& 要转换的数组
& *& @return string&&&&& 转换得到的json字符串
& *& @access public
& *************************************************************/
&public function JSON($array) {
& self::arrayRecursive($array, 'urlencode', true);
& $json = json_encode($array);
& return urldecode($json);
& *创建菜单
&public function creatMenu($shop_id,$data){
& $jsonArray=self::JSON($data);
& $AccessToken=self::accessToken($weiXin[0]['key'],$weiXin[0]['secret']);
& $MENU_URL="https://api./cgi-bin/menu/create?access_token=".$AccessT
& return self::curlPost($jsonArray,$MENU_URL);
& *客服消息回复
& *@param array jsonArray Array {"touser":"OPENID","msgtype":"text","text":{"content":"Hello World"}}
& *@return string
& public function customService($jsonArray,$hash){
& if(empty($jsonArray)){
& $db=M();
& $sql="select * from bbc_wechats where hash='".$hash."'";
& $weChast=$db-&query($sql);
& $AccessToken=self::accessToken($weChast[0]['key'],$weChast[0]['secret']);
& $TokenUrl="https://api./cgi-bin/message/custom/send?access_token=".$AccessT
&&&& $CustomRes=self::curlPost($jsonArray,$TokenUrl);
& return $CustomR
&& *获取access_token
&& *@return objectStr
& public function accessToken($appid,$secret){
&& $access_token=BBCcache::getCache('accesstoken'.$appid);
&& if($access_token){
&&& $AccessTokenRet=$access_
&&& $TookenUrl="https://api./cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}";
&&& $AccessTokenRes=@file_get_contents($TookenUrl);
&&& $AccessToken=json_decode($AccessTokenRes);
&&& $AccessTokenRet=$AccessToken-&access_
&&& BBCcache::setCache('accesstoken'.$appid,$AccessToken-&access_token,3600);
&& return $AccessTokenR
&& *向远程接口POST数据
&& *@data Array {"touser":"OPENID","msgtype":"text","text":{"content":"Hello World"}}
&& *@return objectArray
& public function curlPost($data,$url){
&&& $ch = curl_init();
&& curl_setopt($ch, CURLOPT_URL, $url);
&& curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
&& curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
&& curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
&& curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 ( MSIE 5.01; Windows NT 5.0)');
&& curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
&& curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
&& curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
&& curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
&& $info = curl_exec($ch);
&& if (curl_errno($ch)) {
&&& echo 'Errno'.curl_error($ch);
&& curl_close($ch);
&& return json_decode($info);
&//根据经纬度计算距离和方向
&function getRadian($d){
& return $d * M_PI / 180;
&function getDistance ($lat1, $lng1, $lat2, $lng2){
& $EARTH_RADIUS=;//地球半径
& $lat1 =getRadian($lat1);
& $lat2 = getRadian($lat2);
& $a = $lat1 - $lat2;
& $b = getRadian($lng1) - getRadian($lng2);
& $v = 2 * asin(sqrt(pow(sin($a/2),2) + cos($lat1) * cos($lat2) * pow(sin($b/2),2)));
& $v = round($EARTH_RADIUS * $v * 10000) / 10000;
& return $v;
希望本文所述对大家基于PHP的微信公众号开发有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具如何在微信公众号的图文消息中,插入链接,使得点击图片或文字可以跳转到另一个页面。求大神解答!!!? - 知乎132被浏览122312分享邀请回答444 条评论分享收藏感谢收起/bzzx/help43.html方式一:在“原文链接”处插入链接此处适用各种链接,历史微信图文消息的链接和外部链接都可以,图文消息发送后用户点击文章底部的“阅读原文”即可跳转到所设置的链接具体步骤如下:步骤一:登录公众平台=》素材管理=》图文消息=》+新建图文消息或者编辑都可以步骤二:拉到页面底部“原文链接”处,点击勾选,然后输入链接保存即可方式二:在微信图文消息的文章正文中插入链接此处插入链接分为3种情况:A:目前针对已开通微信支付的用户可以获得图文插入超链接的功能,正文中插入历史微信图文消息的链接和外部链接都可以;B:开通原创的用户可以插入已发送的历史图文消息链接,但无法设置外部跳转的链接;C:未开通微信支付且未开通原创功能的微信公众号账号暂时无法在正文中添加超链接;图文中插入超链接具体步骤如下:步骤一:登录公众平台=》素材管理=》图文消息=》“+新建图文消息”或者“编辑”都可以步骤二:正文=》选中需要加链接的文字或者是图片(也可以不选择文本直接插入链接或者是历史图文消息)=》点击超级链接图标 =》选择一篇图文消息或者输入需要跳转的链接即可。1添加评论分享收藏感谢收起查看更多回答微信公众号开发之文本消息自动回复php代码_php实例-php教程-PHP中文网QQ群微信公众号还没有收藏微信公众号开发之文本消息自动回复php代码_php实例本文实例为大家分享了php微信文本消息自动回复 别代码,供大家参考,具体内容如下1.PHP示例代码下载 下载地址1:(php.net).rar 下载地址2:(开始开发-》接入指南-》PHP示例代码下载) 2.wx_sample.php初始代码valid();
class wechatCallbackapiTest
public function valid()
$echoStr = $_GET[&echostr&];
//valid signature , option
if($this-&checkSignature()){
echo $echoS
public function responseMsg()
//get post data, May be due to the different environments
$postStr = $GLOBALS[&HTTP_RAW_POST_DATA&];
//extract post data
if (!empty($postStr)){
/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
the best way is to check the validity of xml by yourself */
libxml_disable_entity_loader(true);
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj-&FromUserN
$toUsername = $postObj-&ToUserN
$keyword = trim($postObj-&Content);
$time = time();
$textTpl = &%s0&;
if(!empty( $keyword ))
$msgType = &text&;
$contentStr = &Welcome to wechat world!&;
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultS
echo &Input something...&;
private function checkSignature()
// you must define TOKEN by yourself
if (!defined(&TOKEN&)) {
throw new Exception('TOKEN is not defined!');
$signature = $_GET[&signature&];
$timestamp = $_GET[&timestamp&];
$nonce = $_GET[&nonce&];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
// use SORT_STRING rule
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
?&3.调用回复信息方法 在wx_sample.php文件中注释掉$wechatObj-&valid();,在其下增加一句“$wechatObj-&responseMsg();”。valid();//接口验证
$wechatObj-&responseMsg();//调用回复消息方法
class wechatCallbackapiTest
public function valid()
$echoStr = $_GET[&echostr&];
//valid signature , option
if($this-&checkSignature()){
echo $echoS
public function responseMsg()
//get post data, May be due to the different environments
$postStr = $GLOBALS[&HTTP_RAW_POST_DATA&];
//extract post data
if (!empty($postStr)){
/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
the best way is to check the validity of xml by yourself */
libxml_disable_entity_loader(true);
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj-&FromUserN
$toUsername = $postObj-&ToUserN
$keyword = trim($postObj-&Content);
$time = time();
$textTpl = &%s0&;
if(!empty( $keyword ))
$msgType = &text&;
$contentStr = &Welcome to wechat world!&;
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultS
echo &Input something...&;
private function checkSignature()
// you must define TOKEN by yourself
if (!defined(&TOKEN&)) {
throw new Exception('TOKEN is not defined!');
$signature = $_GET[&signature&];
$timestamp = $_GET[&timestamp&];
$nonce = $_GET[&nonce&];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
// use SORT_STRING rule
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
?&4.关键词自动回复和关注回复 $keyword保存着用户微信端发来的文本信息。 官方开发者文档:(消息管理-》接收消息-接收事件推送-》1.关注/取消关注事件)关注事件与一般的文本消息有两处不同,一是MsgType值是event,二是增加了Event值是subscribe。由于官方文档(最初的wx_sample.php)没有提取这个参数,需要我们自己提取。在程序中增加两个变量$msgType和$event。valid();//接口验证
$wechatObj-&responseMsg();//调用回复消息方法
class wechatCallbackapiTest
public function valid()
$echoStr = $_GET[&echostr&];
//valid signature , option
if($this-&checkSignature()){
echo $echoS
public function responseMsg()
//get post data, May be due to the different environments
$postStr = $GLOBALS[&HTTP_RAW_POST_DATA&];
//extract post data
if (!empty($postStr)){
/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
the best way is to check the validity of xml by yourself */
libxml_disable_entity_loader(true);
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj-&FromUserN
$toUsername = $postObj-&ToUserN
$keyword = trim($postObj-&Content);
$time = time();
$msgType = $postObj-&MsgT//消息类型
$event = $postObj-&E//时间类型,subscribe(订阅)、unsubscribe(取消订阅)
$textTpl = &%s0&;
switch($msgType){
case &event&:
if($event==&subscribe&){
$contentStr = &Hi,欢迎关注海仙日用百货!&.&\n&.&回复数字'1',了解店铺地址.&.&\n&.&回复数字'2',了解商品种类.&;
case &text&:
switch($keyword){
$contentStr = &店铺地址:&.&\n&.&杭州市江干艮山西路233号新东升市场地下室第一排.&;
$contentStr = &商品种类:&.&\n&.&杯子、碗、棉签、水桶、垃圾桶、洗碗巾(刷)、拖把、扫把、&
.&衣架、粘钩、牙签、垃圾袋、保鲜袋(膜)、剪刀、水果刀、饭盒等.&;
$contentStr = &对不起,你的内容我会稍后回复&;
$msgType = &text&;
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultS
private function checkSignature()
// you must define TOKEN by yourself
if (!defined(&TOKEN&)) {
throw new Exception('TOKEN is not defined!');
$signature = $_GET[&signature&];
$timestamp = $_GET[&timestamp&];
$nonce = $_GET[&nonce&];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
// use SORT_STRING rule
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
?& 以上就是微信公众号开发之文本消息自动回复php代码_php实例的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网()!共3篇0点赞收藏分享:.&猜你喜欢PHP中文网:独家原创,永久免费的在线,php技术学习阵地!
All Rights Reserved | 皖B2-QQ群:关注微信公众号& 当我们关注一个后,会收到这个推送一些图文消息,有单条图文消息,也有多条图文消息,如下所图所示:
多条图文消息
单条图文消息
& 本教程将介绍如何开发单条图文消息和多条图文消息,但是,要注意因为现在讲的都是基础知识,所以,将以如下方式来开发单条和多条图文消息。
& 1)所有图片都要事先上传到开发者服务器images目录里面,所有用到的图片标题和描述都是手工固定写好的而不是从数据库里面获取的,因为,我们主要是学习微信的基础开发,所以,不从数据库里面取数据来返回给用户,如果在以后的开发中可以把图片等信息通过后台系统上传到数据库服务器,例如,通过网站管理系统把图片、标题和描述等都上传到服务器并保存到数据库表中。
& 2)当微信用户发送&单条新闻&或&多条新闻&后,就会返回单条或者多条图文,因为,这是在学习微信公众号基本的开发,所以,使用微信用户发送关键词的方式来返回图文信息,本教程主要是为了后面的接口开发打基础,如果以后学习了接口的话,当然,就不用微信用户发送&关键词&才返回图文消息,而是主动推送图文消息,例如,上面提供的二张图片一个是cctv的微信公众号,一个是别外一家公司的微信公众号,这上面的图文是每天主动推给公众号粉丝的,而并,粉丝们并没有发送任何关键词,像这样的功能以后学习了接口后我们就可以做到,现在我们主要是学习推送图文消息的基本技术,所以,需要发送关键词。
被动回复图文消息xml代码:
&ToUserName&&![CDATA[toUser]]&&/ToUserName&
&FromUserName&&![CDATA[fromUser]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[news]]&&/MsgType&
&ArticleCount&2&/ArticleCount&
&Articles&
&Title&&![CDATA[title1]]&&/Title&
&Description&&![CDATA[description1]]&&/Description&
&PicUrl&&![CDATA[picurl]]&&/PicUrl&
&Url&&![CDATA[url]]&&/Url&
&Title&&![CDATA[title]]&&/Title&
&Description&&![CDATA[description]]&&/Description&
&PicUrl&&![CDATA[picurl]]&&/PicUrl&
&Url&&![CDATA[url]]&&/Url&
&/Articles&
& 1)图文消息个数,限制为10条以内,如果图文数超过10,则将会无响应 :我们在做的时候,并不是每次都随便回复无数条图文消息,而是有限制的,之所以限制是因为手机上面看图文一方面如果太多的话效果也不好,另一方面太多也会增加腾讯服务器负担,所以,官方限制每次10条以内,一个公众号的粉丝对您的图文再感兴趣,如果太多的话一般也不会去全部阅读完,发送太多图文反而不仅增加您的工作量,还有可能引起粉丝们的反感,所以,每次发个3条5条的更能增加用户体验。
& 2)若是回复的多条图文,则第一条(即第一个item)为大图(请看上面提供的图例)类似网站上面的头条,其它的item为大图下面的小图,图片的最佳尺寸是大图360*200,小图200*200。另外,图片链接,支持JPG、PNG格式,所以,我们在制作图片时千万不要做成其它格式的图片例如gif等。
& 3)PicUrl和Url的区别:PicUrl指的是图片的链接,也就是图片的具体地址,例如,http://www.phpos.net/images/a.jpg;Url是微信用户点击图片时的打开的网址,完整的一张图片代码为:
&a href=&http://www.phpos.net&&&img src=&http://www.phpos.net/images/a.jpg&&&/a&
& 通过这个完整的图片html代码就可以区别开PicUrl和Url了。
& 4)因为,本教程是通过发送关键词来回复图文给粉丝的,而且,图文消息也没有接收消息xml模板,所以,使用&文本&xml来把关键词发送给开发者服务器。
以下是开发代码:
& 因为,回复的单条和多条图文xml模板代码比较多,所以,我们把这些xml代码放到文件common.php里面的数组中,然后,在使用模板时直接调用这个数组$tmp_arr里面对应模板即可。
common.php文件里面的代码:
$tmp_arr = array(
'text' =& &&&XML
&ToUserName&&![CDATA[%s]]&&/ToUserName&
&FromUserName&&![CDATA[%s]]&&/FromUserName&
&CreateTime&%s&/CreateTime&
&MsgType&&![CDATA[text]]&&/MsgType&
&Content&&![CDATA[%s]]&&/Content&
&FuncFlag&0&/FuncFlag&
'singlenews' =& &&&XML
&ToUserName&&![CDATA[%s]]&&/ToUserName&
&FromUserName&&![CDATA[%s]]&&/FromUserName&
&CreateTime&%s&/CreateTime&
&MsgType&&![CDATA[news]]&&/MsgType&
&ArticleCount&1&/ArticleCount&
&Articles&
&Title&&![CDATA[%s]]&&/Title&
&Description&&![CDATA[%s]]&&/Description&
&PicUrl&&![CDATA[%s]]&&/PicUrl&
&Url&&![CDATA[%s]]&&/Url&
&/Articles&
'newses' =& &&&XML
&ToUserName&&![CDATA[%s]]&&/ToUserName&
&FromUserName&&![CDATA[%s]]&&/FromUserName&
&CreateTime&%s&/CreateTime&
&MsgType&&![CDATA[news]]&&/MsgType&
&ArticleCount&4&/ArticleCount&
&Articles&
&Title&&![CDATA[%s]]&&/Title&
&Description&&![CDATA[%s]]&&/Description&
&PicUrl&&![CDATA[%s]]&&/PicUrl&
&Url&&![CDATA[%s]]&&/Url&
&Title&&![CDATA[%s]]&&/Title&
&Description&&![CDATA[%s]]&&/Description&
&PicUrl&&![CDATA[%s]]&&/PicUrl&
&Url&&![CDATA[%s]]&&/Url&
&Title&&![CDATA[%s]]&&/Title&
&Description&&![CDATA[%s]]&&/Description&
&PicUrl&&![CDATA[%s]]&&/PicUrl&
&Url&&![CDATA[%s]]&&/Url&
&Title&&![CDATA[%s]]&&/Title&
&Description&&![CDATA[%s]]&&/Description&
&PicUrl&&![CDATA[%s]]&&/PicUrl&
&Url&&![CDATA[%s]]&&/Url&
&/Articles&
& 请注意,上面的数组单元之间的逗号要在单独一行,否则,会出错。
单图文和多图文回复代码是:
require_once 'common.php';
$wechatObj-&responseMsg();
class wechatCallbackapiTest
public function responseMsg(){
$postStr = $GLOBALS[&HTTP_RAW_POST_DATA&];
if (!empty($postStr)){
libxml_disable_entity_loader(true);
//加载 postStr 字符串
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj-&FromUserN
$toUsername = $postObj-&ToUserN
$keyword = trim($postObj-&Content);
$time = time();
global $tmp_
switch($postObj-&MsgType)
case 'text':
if($keyword == '单条新闻')
//这里处理的是返回单条的图文消息
$title = '百度新闻中心';
$decription = '百度新闻中心的描述';
$PicUrl = 'http://www.phpos.net/image/logo.png';
$Url = '';
$resultStr = sprintf($tmp_arr['singlenews'], $fromUsername, $toUsername, $time, $title, $decription, $PicUrl, $Url);
echo $resultS
//处理返回多条(常见的4条)图文消息
//把要返回的图文信息,放入到一个二维数组中,便于管理
elseif ($keyword == '多条新闻') {
$news_arr = array(
'news1' =& array('title' =& '百度新闻消息', 'decription' =& '百度新闻消息描述', 'PicUrl' =& 'http://www.phpos.net/image/logo.png', 'Url' =& ''),
'news2' =&array('title' =& '新浪新闻消息', 'decription' =& '新浪新闻消息描述', 'PicUrl' =& 'http://www.phpos.net/image/news1.png', 'Url' =& '.cn'),
'news3' =&array('title' =& '腾讯新闻消息', 'decription' =& '腾讯新闻消息描述', 'PicUrl' =& 'http://www.phpos.net/image/news2.png', 'Url' =& ''),
'news4' =&array('title' =& '搜狐新闻消息', 'decription' =& '搜狐新闻消息描述', 'PicUrl' =& 'http://www.phpos.net/image/news3.png', 'Url' =& ''));
$resultStr = sprintf($tmp_arr['newses'], $fromUsername, $toUsername, $time, $news_arr['news1']['title'], $news_arr['news1']['decription'], $news_arr['news1']['PicUrl'], $news_arr['news1']['Url'], $news_arr
['news2']['title'], $news_arr['news2']['decription'], $news_arr['news2']['PicUrl'], $news_arr['news2']['Url'], $news_arr['news3']['title'], $news_arr['news3']['decription'], $news_arr['news3']['PicUrl'],
$news_arr['news3']['Url'], $news_arr['news4']['title'], $news_arr['news4']['decription'], $news_arr['news4']['PicUrl'], $news_arr['news4']['Url']);
echo $resultS
& 最后,再次提醒一下,回复的标题、描述、图片路径都可以保存到数据库表里面,然后,写段程序查询出来就可以了,这样比较灵活,而上面是固定手工写好的,实际开发中肯定不会这样手工写标题什么的,还有微信用户也不用发送关键词,而是微信公众号主动推送,上面只是开发的示例,知道具体开发的流程,便于以后学习微信接口开发。
PHPOS微信网:专注于、、技术研究,为网站前后台和微信开发工程师提供教程资源。||——

我要回帖

更多关于 微信公众号平台 的文章

 

随机推荐