{$vo.title}
{$vo.content|htmlspecialchars_decode}
通知界面模块的核心代码如下。{$vo.title}
发布时间:{$vo.cTime|time_format}
{$vo.content|htmlspecialchars_decode}
5.3.11自定义菜单自定义菜单能够帮助公众号丰富界面,让用户更好更快地使用公众号的功能。自定义菜单管理界面如图5-13所示。59 信息科学与技术学院学士学位论文图5-13自定义菜单管理界面自定义菜单模块数据库设计如表5-11所示。表5-11自定义菜单模块数据表字段名称含义字段类型备注id菜单编号int(10)主键url关联网址varchar(255)—keyword关联关键词varchar(100)—title菜单名称varchar(50)—pid一级菜单tinyint(2)—sort排序编号tinyint(4)—tokenToken值varchar(100)—生成自定义菜单的核心代码如下。functionsend_menu(){$data=$this->get_data();foreach($dataas$k=>$d){if($d['pid']!=0)continue;$tree['button'][$d['id']]=$this->_deal_data($d);unset($data[$k]);}foreach($dataas$k=>$d){59 信息科学与技术学院学士学位论文$tree['button'][$d['pid']]['sub_button'][]=$this->_deal_data($d);unset($data[$k]);}$tree2=array();$tree2['button']=array();foreach($tree['button']as$k=>$d){$tree2['button'][]=$d;}$tree=$this->json_encode_cn($tree2);$map['token']=get_token();$info=M('member_public')->where($map)->find();$url_get='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$info['appid'].'&secret='.$info['secret'];$ch1=curl_init();$timeout=5;curl_setopt($ch1,CURLOPT_URL,$url_get);curl_setopt($ch1,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch1,CURLOPT_CONNECTTIMEOUT,$timeout);curl_setopt($ch1,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($ch1,CURLOPT_SSL_VERIFYHOST,false);$accesstxt=curl_exec($ch1);curl_close($ch1);$access=json_decode($accesstxt,true);if(empty($access['access_token'])){$this->error('获取access_token失败,请确认AppId和Secret配置是否正确,然后再重试。');}file_get_contents('https://api.weixin.qq.com/cgi-bin/menu/delete?access_token='.$access['access_token']);59 信息科学与技术学院学士学位论文$url='https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$access['access_token'];$header[]="content-type:application/x-www-form-urlencoded;charset=UTF-8";$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_HTTPHEADER,$header);curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0(compatible;MSIE5.01;WindowsNT5.0)');curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);curl_setopt($ch,CURLOPT_AUTOREFERER,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$tree);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);$res=curl_exec($ch);curl_close($ch);$res=json_decode($res,true);if($res['errcode']==0){$this->success('发送菜单成功');}else{$this->success('发送菜单失败,错误的返回码是:'.$res['errcode'].',错误的提示是:'.$res['errmsg']);}}59 信息科学与技术学院学士学位论文5.3.12融合第三方功能扩展商家可以自己编程开发一些功能模块,通过配置一些特定的关键词,当用户在微信里回复这些关键词时,插件会把微信的请求数据转发到配置的商家自己开发的功能模块中,从而大大扩展了商家公众号功能的多样性,也能满足商家更个性化的需求。融合第三方功能扩展配置界面如图5-14所示。图5-14融合第三方功能扩展配置界面融合第三方功能扩展模块数据库设计如表5-12所示。表5-12融合第三方功能扩展模块数据表字段名称含义字段类型备注id功能扩展编号int(10)主键keyword_type关键词类型tinyint(2)—api_tokenToken值varchar(255)—cTime创建时间int(10)—api_url第三方平台网址varchar(255)—output_format数据输出格式tinyint(4)—keyword_filter关键词过滤tinyint(2)—keyword关键词varchar(255)—59 信息科学与技术学院学士学位论文融合第三方功能模块的核心代码如下。classWeixinAddonModelextendsWeixinModel{functionreply($dataArr,$keywordArr=array()){$map['id']=$keywordArr['aim_id'];$info=M('extensions')->where($map)->find();if($info['output_format']==1){if($info['keyword_filter']){$dataArr['Content']=trim(str_replace($keywordArr['keyword'],'',$dataArr['Content']));}$post_data=json_encode($dataArr);}else{$post_data=$GLOBALS['HTTP_RAW_POST_DATA'];if($info['keyword_filter']){$content=trim(str_replace($keywordArr['keyword'],'',$dataArr['Content']));$post_data=str_replace('此文档下载收益归作者所有