湖南营销推广网站多少费用,dede网站安全,服务器网站环境,做网站添加本地图片官方提供的SDK只有一个文本消息功能#xff0c;我们将所有消息的消息类型及事件响应都整理了进来#xff0c;并且加入日志记录#xff0c;代码如下#xff1a; 更新日志#xff1a; 2013-01-01 版本1.02014-03-15 增加图片、视频、语音的内容回复2014-04-09 增加菜单链接事…官方提供的SDK只有一个文本消息功能我们将所有消息的消息类型及事件响应都整理了进来并且加入日志记录代码如下 更新日志 2013-01-01 版本1.02014-03-15 增加图片、视频、语音的内容回复2014-04-09 增加菜单链接事件2014-04-10 修改文本回复的判定方法 ?php
/*方倍工作室CopyRight 2014 All Rights Reserved
*/define(TOKEN, weixin);$wechatObj new wechatCallbackapiTest();
if (!isset($_GET[echostr])) {$wechatObj-responseMsg();
}else{$wechatObj-valid();
}class wechatCallbackapiTest
{//验证消息public function valid(){$echoStr $_GET[echostr];if($this-checkSignature()){echo $echoStr;exit;}}//检查签名private function checkSignature(){$signature $_GET[signature];$timestamp $_GET[timestamp];$nonce $_GET[nonce];$token TOKEN;$tmpArr array($token, $timestamp, $nonce);sort($tmpArr, SORT_STRING);$tmpStr implode($tmpArr);$tmpStr sha1($tmpStr);if($tmpStr $signature){return true;}else{return false;}}//响应消息public function responseMsg(){$postStr $GLOBALS[HTTP_RAW_POST_DATA];if (!empty($postStr)){$this-logger(R .$postStr);$postObj simplexml_load_string($postStr, SimpleXMLElement, LIBXML_NOCDATA);$RX_TYPE trim($postObj-MsgType);switch ($RX_TYPE){case event:$result $this-receiveEvent($postObj);break;case text:$result $this-receiveText($postObj);break;case image:$result $this-receiveImage($postObj);break;case location:$result $this-receiveLocation($postObj);break;case voice:$result $this-receiveVoice($postObj);break;case video:$result $this-receiveVideo($postObj);break;case link:$result $this-receiveLink($postObj);break;default:$result unknow msg type: .$RX_TYPE;break;}$this-logger(T .$result);echo $result;}else {echo ;exit;}}//接收事件消息private function receiveEvent($object){$content ;switch ($object-Event){case subscribe:$content 欢迎关注方倍工作室 ;$content . (!empty($object-EventKey))?(\n来自二维码场景 .str_replace(qrscene_,,$object-EventKey)):;break;case unsubscribe:$content 取消关注;break;case SCAN:$content 扫描场景 .$object-EventKey;break;case CLICK:switch ($object-EventKey){case COMPANY:$content 方倍工作室提供互联网相关产品与服务。;break;default:$content 点击菜单.$object-EventKey;break;}break;case LOCATION:$content 上传位置纬度 .$object-Latitude.;经度 .$object-Longitude;break;case VIEW:$content 跳转链接 .$object-EventKey;break;default:$content receive a new event: .$object-Event;break;}$result $this-transmitText($object, $content);return $result;}//接收文本消息private function receiveText($object){switch ($object-Content){case 文本:$content 这是个文本消息;break;case 图文:case 单图文:$content array();$content[] array(Title单图文标题, Description单图文内容, PicUrlhttp://discuz.comli.com/weixin/weather/icon/cartoon.jpg, Url http://m.cnblogs.com/?utxw1958);break;case 多图文:$content array();$content[] array(Title多图文1标题, Description, PicUrlhttp://discuz.comli.com/weixin/weather/icon/cartoon.jpg, Url http://m.cnblogs.com/?utxw1958);$content[] array(Title多图文2标题, Description, PicUrlhttp://d.hiphotos.bdimg.com/wisegame/pic/item/f3529822720e0cf3ac9f1ada0846f21fbe09aaa3.jpg, Url http://m.cnblogs.com/?utxw1958);$content[] array(Title多图文3标题, Description, PicUrlhttp://g.hiphotos.bdimg.com/wisegame/pic/item/18cb0a46f21fbe090d338acc6a600c338644adfd.jpg, Url http://m.cnblogs.com/?utxw1958);break;case 音乐:$content array(Title最炫民族风, Description歌手凤凰传奇, MusicUrlhttp://121.199.4.61/music/zxmzf.mp3, HQMusicUrlhttp://121.199.4.61/music/zxmzf.mp3);break;default:$content date(Y-m-d H:i:s,time());break;}if(is_array($content)){if (isset($content[0][PicUrl])){$result $this-transmitNews($object, $content);}else if (isset($content[MusicUrl])){$result $this-transmitMusic($object, $content);}}else{$result $this-transmitText($object, $content);}return $result;}private function receiveImage($object){$content array(MediaId$object-MediaId);$result $this-transmitImage($object, $content);return $result;}private function receiveLocation($object){$content 你发送的是位置纬度为.$object-Location_X.经度为.$object-Location_Y.缩放级别为.$object-Scale.位置为.$object-Label;$result $this-transmitText($object, $content);return $result;}private function receiveVoice($object){if (isset($object-Recognition) !empty($object-Recognition)){$content 你刚才说的是.$object-Recognition;$result $this-transmitText($object, $content);}else{$content array(MediaId$object-MediaId);$result $this-transmitVoice($object, $content);}return $result;}private function receiveVideo($object){$content array(MediaId$object-MediaId, ThumbMediaId$object-ThumbMediaId, Title, Description);$result $this-transmitVideo($object, $content);return $result;}private function receiveLink($object){$content 你发送的是链接标题为.$object-Title.内容为.$object-Description.链接地址为.$object-Url;$result $this-transmitText($object, $content);return $result;}private function transmitText($object, $content){$textTpl xml
ToUserName![CDATA[%s]]/ToUserName
FromUserName![CDATA[%s]]/FromUserName
CreateTime%s/CreateTime
MsgType![CDATA[text]]/MsgType
Content![CDATA[%s]]/Content
/xml;$result sprintf($textTpl, $object-FromUserName, $object-ToUserName, time(), $content);return $result;}private function transmitImage($object, $imageArray){$itemTpl ImageMediaId![CDATA[%s]]/MediaId
/Image;$item_str sprintf($itemTpl, $imageArray[MediaId]);$textTpl xml
ToUserName![CDATA[%s]]/ToUserName
FromUserName![CDATA[%s]]/FromUserName
CreateTime%s/CreateTime
MsgType![CDATA[image]]/MsgType
$item_str
/xml;$result sprintf($textTpl, $object-FromUserName, $object-ToUserName, time());return $result;}private function transmitVoice($object, $voiceArray){$itemTpl VoiceMediaId![CDATA[%s]]/MediaId
/Voice;$item_str sprintf($itemTpl, $voiceArray[MediaId]);$textTpl xml
ToUserName![CDATA[%s]]/ToUserName
FromUserName![CDATA[%s]]/FromUserName
CreateTime%s/CreateTime
MsgType![CDATA[voice]]/MsgType
$item_str
/xml;$result sprintf($textTpl, $object-FromUserName, $object-ToUserName, time());return $result;}private function transmitVideo($object, $videoArray){$itemTpl VideoMediaId![CDATA[%s]]/MediaIdThumbMediaId![CDATA[%s]]/ThumbMediaIdTitle![CDATA[%s]]/TitleDescription![CDATA[%s]]/Description
/Video;$item_str sprintf($itemTpl, $videoArray[MediaId], $videoArray[ThumbMediaId], $videoArray[Title], $videoArray[Description]);$textTpl xml
ToUserName![CDATA[%s]]/ToUserName
FromUserName![CDATA[%s]]/FromUserName
CreateTime%s/CreateTime
MsgType![CDATA[video]]/MsgType
$item_str
/xml;$result sprintf($textTpl, $object-FromUserName, $object-ToUserName, time());return $result;}private function transmitNews($object, $newsArray){if(!is_array($newsArray)){return;}$itemTpl itemTitle![CDATA[%s]]/TitleDescription![CDATA[%s]]/DescriptionPicUrl![CDATA[%s]]/PicUrlUrl![CDATA[%s]]/Url/item
;$item_str ;foreach ($newsArray as $item){$item_str . sprintf($itemTpl, $item[Title], $item[Description], $item[PicUrl], $item[Url]);}$newsTpl xml
ToUserName![CDATA[%s]]/ToUserName
FromUserName![CDATA[%s]]/FromUserName
CreateTime%s/CreateTime
MsgType![CDATA[news]]/MsgType
Content![CDATA[]]/Content
ArticleCount%s/ArticleCount
Articles
$item_str/Articles
/xml;$result sprintf($newsTpl, $object-FromUserName, $object-ToUserName, time(), count($newsArray));return $result;}private function transmitMusic($object, $musicArray){$itemTpl MusicTitle![CDATA[%s]]/TitleDescription![CDATA[%s]]/DescriptionMusicUrl![CDATA[%s]]/MusicUrlHQMusicUrl![CDATA[%s]]/HQMusicUrl
/Music;$item_str sprintf($itemTpl, $musicArray[Title], $musicArray[Description], $musicArray[MusicUrl], $musicArray[HQMusicUrl]);$textTpl xml
ToUserName![CDATA[%s]]/ToUserName
FromUserName![CDATA[%s]]/FromUserName
CreateTime%s/CreateTime
MsgType![CDATA[music]]/MsgType
$item_str
/xml;$result sprintf($textTpl, $object-FromUserName, $object-ToUserName, time());return $result;}private function logger($log_content){if(isset($_SERVER[HTTP_APPNAME])){ //SAEsae_set_display_errors(false);sae_debug($log_content);sae_set_display_errors(true);}else if($_SERVER[REMOTE_ADDR] ! 127.0.0.1){ //LOCAL$max_size 10000;$log_filename log.xml;if(file_exists($log_filename) and (abs(filesize($log_filename)) $max_size)){unlink($log_filename);}file_put_contents($log_filename, date(H:i:s). .$log_content.\r\n, FILE_APPEND);}}
}? 转载于:https://www.cnblogs.com/joshua317/articles/3713376.html