🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 接收普通消息 当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。 [TOC] ## 消息类型 获取用户发送的消息类型,微信提供的消息类型请查看上面的微信官方文档查看。 在任何组件中都可以获取消息类型,比如 `Message` 、`Material` 等等组件。 ``` //消息管理模块 $instance = new Message; $instance->getMessageType(); ``` ## 获取消息 获取消息内容可以使用几种方法: 1. 通过content方法获取微信消息中的变量 ``` $instance->content('Content'); ``` 2. 使用属性方式获取。 ``` $instance->->Content; ``` 3. getMessage()函数获取消息内容。 ``` $instance->getMessage('MsgType'); # 不传递参数时获取所有微信返回的消息 $instance->getMessage(); ``` ## 文本消息 ``` //消息管理模块 $instance = new Message; //判断是否是文本消息 if ($instance->isTextMsg()) { //向用户回复消息 return $instance->text('后盾人收到你的消息了...:' . $instance->Content); } ``` ## 图片消息 ``` //判断是否是图片消息 if ($instance->isImageMsg()) { //向用户回复消息 return $instance->text("图片url:{$instance->PicUrl},图片MediaId: {$instance->MediaId}"); } ``` ## 语音消息 ``` //判断是否是语音消息 if ($instance->isVoiceMsg()) { //向用户回复消息 return $instance->text("你发送的语音消息MediaId: {$instance->MediaId} ,语音格式: {$instance->Format}"); } ``` ## 地理位置 第三方在收到地理位置上报信息之后,只需要回复success表明收到即可,是不允许回复消息给粉丝的 ``` //判断是否是地理位置消息 if ($instance->isLocationMsg()) { return $instance->text("你发送的地理位置消息,纬度: {$instance->Location_X} ,经度: {$instance->Location_Y},缩放级别: {$instance->Scale},位置: {$instance->Label}"); } ``` ## 链接消息 微信默认将链接做为文本使用,所以链接消息指微信收藏夹中的消息 ``` //判断是否是链接消息 if ($instance->isLinkMsg()) { //向用户回复消息 return $instance->text("你发送的链接消息,标题: {$instance->Title},接要: {$instance->Description} ,链接: {$instance->Url}"); } ``` ## 视频消息 视频指用手机拍摄的视频 ``` //判断是否是视频消息 if ($instance->isVideoMsg()) { //向用户回复消息 return $instance->text("你发送的视频消息 MediaId: {$instance->MediaId} ,缩略图的媒体id: {$instance->ThumbMediaId}"); } ``` ## 小视频消息 用手机微信拍摄的小视频 ``` //判断是否是小视频消息 if ($instance->isSmallVideoMsg()) { //获取消息内容 $contents = $instance->getMessage(); //向用户回复消息 return $instance->text("你发送的小视频消息 MediaId: {$contents->MediaId} ,缩略图的媒体id: {$contents->ThumbMediaId}"); } ```