微信的图文回复功能是在文字图片回复的基础上实现的
1.
public static function news($fromusername, $tousername, $item, $funcFlag=0){
//多条图文消息信息,默认第一个item为大图,注意,如果图文数超过10,则将会无响应
if(count($item) >= 10){
$request = array('fromusername'=>$fromusername, 'tousername'=>$tousername);
return Msg::returnErrMsg(MsgConstant::ERROR_NEWS_ITEM_COUNT_MORE_TEN, '图文消息的项数不能超过10条', $request);
}
$template = <<<XML
<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>%s</ArticleCount>
<Articles>
%s
</Articles>
<FuncFlag>%s</FuncFlag>
</xml>
XML;
return sprintf($template, $fromusername, $tousername, time(), count($item), implode($item), $funcFlag);
}
2.
case 'news':
$reply=M('mp_reply_news')->find($reply_id);
if($reply){
$item[]=ResponsePassive::newsItem($reply['title'],$reply['descrpition'],$reply['picurl'],$reply['url']);
return ResponsePassive::news($request['fromusername'],$request['tousername'],$item);
}else{
$reply_text='出错啦';
return ResponsePassive::text($request['fromusername'],$request['tousername'],$reply_text);
}
break;
default:
return 'success';
break;
3.新建数据表rh_mp_reply_news