博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信公众号
阅读量:4451 次
发布时间:2019-06-07

本文共 7340 字,大约阅读时间需要 24 分钟。

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); $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)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType); //用户发送的消息类型判断 switch ($RX_TYPE) { case "text": $result = $this->receiveText($postObj); break; case "image": $result = $this->receiveImage($postObj); break; case "voice": $result = $this->receiveVoice($postObj); break; case "video": $result = $this->receiveVideo($postObj); break; default: $result = "unknow msg type: ".$RX_TYPE; break; } echo $result; }else { echo ""; exit; } } private function receiveText($object) { $keyword = trim($object->Content); if($keyword == "文本"){ //回复文本消息 $content = "这是个文本消息"; $result = $this->transmitText($object, $content); } else if($keyword == "图文" || $keyword == "单图文"){ //回复单图文消息 $content = array(); $content[] = array("Title"=>"单图文标题", "Description"=>"单图文内容", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"); $result = $this->transmitNews($object, $content); } else if($keyword == "多图文"){ //回复多图文消息 $content = array(); $content[] = array("Title"=>"多图文1标题", "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"); $content[] = array("Title"=>"多图文2标题", "Description"=>"", "PicUrl"=>"http://d.hiphotos.bdimg.com/wisegame/pic/item/f3529822720e0cf3ac9f1ada0846f21fbe09aaa3.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"); $content[] = array("Title"=>"多图文3标题", "Description"=>"", "PicUrl"=>"http://g.hiphotos.bdimg.com/wisegame/pic/item/18cb0a46f21fbe090d338acc6a600c338644adfd.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"); $result = $this->transmitNews($object, $content); } else if($keyword == "音乐"){ //回复音乐消息 $content = array("Title"=>"最炫民族风", "Description"=>"歌手:凤凰传奇", "MusicUrl"=>"http://121.199.4.61/music/zxmzf.mp3", "HQMusicUrl"=>"http://121.199.4.61/music/zxmzf.mp3"); $result = $this->transmitMusic($object, $content); } return $result; } private function receiveImage($object) { //回复图片消息 $content = array("MediaId"=>$object->MediaId); $result = $this->transmitImage($object, $content);; return $result; } private function receiveVoice($object) { //回复语音消息 $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 transmitText($object, $content) { $textTpl = "
%s
"; $result = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content); return $result; } /* * 回复图片消息 */ private function transmitImage($object, $imageArray) { $itemTpl = "
"; $item_str = sprintf($itemTpl, $imageArray['MediaId']); $textTpl = "
%s
$item_str
"; $result = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time()); return $result; } /* * 回复语音消息 */ private function transmitVoice($object, $voiceArray) { $itemTpl = "
"; $item_str = sprintf($itemTpl, $voiceArray['MediaId']); $textTpl = "
%s
$item_str
"; $result = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time()); return $result; } /* * 回复视频消息 */ private function transmitVideo($object, $videoArray) { $itemTpl = "
"; $item_str = sprintf($itemTpl, $videoArray['MediaId'], $videoArray['ThumbMediaId'], $videoArray['Title'], $videoArray['Description']); $textTpl = "
%s
$item_str
"; $result = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time()); return $result; } /* * 回复图文消息 */ private function transmitNews($object, $arr_item) { if(!is_array($arr_item)) return; $itemTpl = "
<![CDATA[%s]]>
"; $item_str = ""; foreach ($arr_item as $item) $item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']); $newsTpl = "
%s
%s
$item_str
"; $result = sprintf($newsTpl, $object->FromUserName, $object->ToUserName, time(), count($arr_item)); return $result; } /* * 回复音乐消息 */ private function transmitMusic($object, $musicArray) { $itemTpl = "
<![CDATA[%s]]>
"; $item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']); $textTpl = "
%s
$item_str
"; $result = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time()); return $result; }}?>

  

转载于:https://www.cnblogs.com/fencao/p/6125127.html

你可能感兴趣的文章
【转】2014区域赛小结(牡丹江&&鞍山)by kuangbin
查看>>
光标跟随
查看>>
2/24笔记
查看>>
纯真的间谍
查看>>
paramiko上传下载
查看>>
【转】C#各个版本中的新增特性详解
查看>>
localstorage 使用
查看>>
[期望]洛谷 P3802 小魔女帕琪
查看>>
Linux虚拟内存
查看>>
cf1009 C. Annoying Present
查看>>
Java 面对对象之多态
查看>>
获取文件的绝对路径
查看>>
Python 自动化测试config配置文件ini 配置目录
查看>>
随想 20180517
查看>>
面向对象编程案例03---继承之高级部分
查看>>
Jupyter Notebook & Spyder 常用快捷键
查看>>
JAVA BigDecimal 小数点处理
查看>>
AppBox升级进行时 - 拥抱Entity Framework的Code First开发模式
查看>>
ORACLE锁机制
查看>>
用位运算实现四则运算之加减乘除
查看>>