<?php$msg = new WechatMsgHandler($msgxml);$msg->responseMsg();/*** 消息工厂*/class WechatMsgHandler{public $receiveMsg; // 收到微信服务器的信息public $sendMsg; // 发送信息到服务器public function __construct($msgxml){$this->makeReceive($msgxml);$data = $this->getConfig();$this->makeSend($data);}/*** 构建收到的信息*/public function makeReceive($msgxml){switch ($msgxml->MsgType) {case 'text':$msg = new WechatRTextMsg($msgxml);break;case 'image':$msg = new WechatRImageMsg($msgxml);break;case 'voice':$msg = new WechatRVoiceMsg($msgxml);break;case 'video':$msg = new WechatRVideoMsg($msgxml);break;case 'music':// TODO:音乐break;case 'news': // TODO:图文break;case 'event': // 事件消息HandlerEventMsg::handler($msgxml);break;default:break;}if(isset($msg)){$this->receiveMsg = $msg;}}/*** 获取回复消息配置* TODO:业务需要写到这来* 暂时 发送什么类型消息返回什么类型什么消息*/public function getConfig(){if (empty($rece = $this->receiveMsg)) {return ;}$conf = ['from' =>$rece->toUserName,'to' =>$rece->fromUserName];switch ($rece->msgType) {case 'text':$data = ['type'=>'text','content'=>'回:'.$rece->content];break;case 'image':$data = ['type'=>'image','picUrl'=>$rece->picUrl,'mediaId'=>$rece->mediaId];break;case 'voice':$data = ['type'=>'voice','mediaId'=>$rece->mediaId];break;case 'video':$data = ['type'=>'video','mediaId'=>$rece->mediaId,'title'=>'搞笑视频','desc'=>'你发的视频消息'];break;case 'music':// TODO:音乐break;case 'news': // TODO:图文break;case 'event': // TODO:事件break;default:$data = [];break;}return array_merge($data, $conf);}/*** 构建发送信息*/public function makeSend($data){switch ($data['type']) {case 'text':$msg = new WechatSendTextMsg($data);break;case 'image':$msg = new WechatSendImageMsg($data);break;case 'voice':$msg = new WechatSendVoiceMsg($data);break;case 'video':$msg = new WechatSendVideoMsg($data);break;case 'music':// TODO:音乐break;case 'news': // TODO:图文break;case 'event': // TODO:事件break;default:# code...break;}if(isset($msg)){$this->sendMsg = $msg;}}/*** 响应消息*/public function responseMsg(){if ($this->sendMsg) {$this->sendMsg->responseMsg();}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。