>公众号碎片使用场景:当有用户向公众号发布信息,推送事件的时候,会执行该钩子 | 标题 | 名称 | 钩子描述 | | --- | --- | --- | | 微信信息 | wechat_call_back| 当有会员在公众号中发送信息时,点击菜单,扫描带参数二维码,关注取消公众号,获取位置等时| | 微信推送 | wechat\_call\_back | 当有会员在公众号中发送信息时,点击菜单,扫描带参数二维码,关注取消公众号,获取位置等时 | | 微信关注| wechat\_subscribe | 微信被关注的时候(用户没有关注)触发 | | 微信关注| wechat\_SCAN | 微信被关注的时候(用户已经关注公众号,继续扫描关注)触发 | | 微信取消关注| wechat\_unsubscribe| 微信被取消关注时候触发 | | 微信上报地理位置| wechat\_LOCATION| 微信上报地理位置时候触发(用户同意上报地理位置后,每次进入公众号会话时,都会在进入时上报地理位置,或在进入会话后每5秒上报一次地理位置) | | 微信点击菜单| wechat\_click| 微信点击菜单触发 | | 文本信息| wechat\_text| 当用户发送文本信息触发 | | 图片信息| wechat\_image| 当用户发送图片信息触发 | | 语音信息| wechat\_voice| 当用户发送语音信息触发 | | 视频信息| wechat\_video| 当用户发送视频信息触发 | | 小视频信息| wechat\_shortvideo| 当用户发送小视频信息触发 | | 位置信息| wechat\_location| 当用户发送位置信息触发 | | 连接信息| wechat\_link| 当用户发送连接信息触发 | | 微信发送信息| wechat\_msg| 当有用户发送 文本消息,图片消息 ,语音消息,视频消息,小视频消息,地理位置消息, 链接消息的时候触| ``` function functionName($type,$data,$wechat) ``` >[info]$type 微信发送的数据类型 text,image,location,link,event,voice,shortvideo $data 微信用户发来的数据 $wechat 微信对象,如果想给微信发送一个信息 ,格式如下 >[danger]注意:$wechat 微信对象可以在任何地方通过 $wechat = getWechat(); 来获取,(必须安装了微信模块,并且配置了公众号,否则getWechat() 返回为false),所以在使用对象时,一定要判断对象是否为真,详细用法请 [点击](986189) ``` $openid = $data['FromUserName']; //文本信息 $dataM = ['touser'=>$openid,'msgtype'=>'text','text'=>['content'=>'我的测试客服信息']]; $wechat->sendCustomMessage($dataM); //图片信息 $dataM = ['touser'=>$openid,'msgtype'=>'image','image'=>['media_id'=>MEDIA_ID]; $wechat->sendCustomMessage($dataM); //语音信息 $dataM = ['touser'=>$openid,'msgtype'=>'voice','voice'=>['media_id'=>MEDIA_ID]; $wechat->sendCustomMessage($dataM); //视频信息 $dataM = ['touser'=>$openid,'msgtype'=>'video','video'=>['media_id'=>MEDIA_ID]; $wechat->sendCustomMessage($dataM); //音乐信息 $dataM = ['touser'=>$openid,'msgtype'=>'music','music'=>[ "title"=>"音乐标题", "description"=>"音乐描述", "musicurl"=>"http://open.cowcms.com/1.mp3", "hqmusicurl"=>"http://open.cowcms.com/2.mp3", //高品质连接 "thumb_media_id"=>"THUMB_MEDIA_ID" //缩略图id ]; $wechat->sendCustomMessage($dataM); //发送图文消息(点击跳转到外链) 图文消息条数限制在1条以内,注意,如果图文数超过1,则将会返回错误码45008。 $dataM2 = ['touser'=>$openid,'msgtype'=>'news','news'=> [ "articles"=> [ [ "title"=>"奶牛系统开启第一版", "description"=>"测试奶牛系统信息,查看是否正常", "url"=>"http://open.cowcms.com", "picurl"=>"http://open.cowcms.com/upload/admin/1/1533887730_866835404.jpg" ] ] ] ]; $wechat->sendCustomMessage($dataM); //发送图文消息(点击跳转到图文消息页面) 图文消息条数限制在1条以内,注意,如果图文数超过1,则将会返回错误码45008。 $dataM = ['touser'=>$openid,'msgtype'=>'mpnews','mpnews'=>['media_id'=>MEDIA_ID]; $wechat->sendCustomMessage($dataM); ``` 其它详细使用 请 [点击此处](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140547) >text **文本信息**,$data为数组 array('ToUserName'=>'.....') 格式如下 | 参数 | 描述 | | --- | --- | | ToUserName | 开发者微信号(一个OpenID) | | FromUserName | 发送方帐号(一个OpenID) | | CreateTime | 消息创建时间 (整型) | | MsgType | 消息类型text | | Content | 文本消息内容 | | MsgId | 消息id,64位整型 | >image **图片消息**,$data为数组 array('ToUserName'=>'.....') 格式如下 | 参数 | 描述 | | --- | --- | | ToUserName | 开发者微信号(一个OpenID) | | FromUserName | 发送方帐号(一个OpenID) | | CreateTime | 消息创建时间 (整型) | | MsgType | 消息类型,图片为image | | PicUrl | 图片链接(由系统生成)一般为一个 http://....格式的一个图片链接地址 | | MediaId | 图片消息媒体id,可以调用获取临时素材接口拉取数据。 | | MsgId | 消息id,64位整型 | >location **地理位置消息**,$data为数组 array('ToUserName'=>'.....') 格式如下 | 参数 | 描述 | | --- | --- | | ToUserName | 开发者微信号 | | FromUserName | 发送方帐号(一个OpenID) | | CreateTime | 消息创建时间 (整型) | | MsgType | 消息类型,地理位置为location | | Location\_X | 地理位置维度 | | Location\_Y | 地理位置经度 | | Scale | 地图缩放大小 ,1-20 | | Label | 地理位置信息 ,如太原邦迅科技| | MsgId | 消息id,64位整型 | >link **链接消息**,$data为数组 array('ToUserName'=>'.....') 格式如下 | 参数 | 描述 | | --- | --- | | ToUserName | 接收方微信号 | | FromUserName | 发送方微信号,若为普通用户,则是一个OpenID | | CreateTime | 消息创建时间 | | MsgType | 消息类型,链接为link | | Title | 消息标题 | | Description | 消息描述 | | Url | 消息链接 | | MsgId | 消息id,64位整型 | >voice **语音消息**,$data为数组 array('ToUserName'=>'.....') 格式如下 | 参数 | 描述 | | --- | --- | | ToUserName | 开发者微信号 | | FromUserName | 发送方帐号(一个OpenID) | | CreateTime | 消息创建时间 (整型) | | MsgType | 语音为voice | | MediaId | 语音消息媒体id,可以调用获取临时素材接口拉取数据。 | | Format | 语音格式,如amr,speex等 | | MsgID | 消息id,64位整型 | >video **视频消息**,$data为数组 array('ToUserName'=>'.....') 格式如下 | 参数 | 描述 | | --- | --- | | ToUserName | 开发者微信号 | | FromUserName | 发送方帐号(一个OpenID) | | CreateTime | 消息创建时间 (整型) | | MsgType | 视频为video | | MediaId | 视频消息媒体id,可以调用获取临时素材接口拉取数据。 | | ThumbMediaId | 视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。 | | MsgId | 消息id,64位整型 | >video **小视频消息**,$data为数组 array('ToUserName'=>'.....') 格式如下 | 参数 | 描述 | | --- | --- | | ToUserName | 开发者微信号 | | FromUserName | 发送方帐号(一个OpenID) | | CreateTime | 消息创建时间 (整型) | | MsgType | 小视频为shortvideo | | MediaId | 视频消息媒体id,可以调用获取临时素材接口拉取数据。 | | ThumbMediaId | 视频消息缩略图的媒体id,可以调用获取临时素材接口拉取数据。 | | MsgId | 消息id,64位整型 | >event **事件推送**,事件推送分为6种情况,$data为数组 array('ToUserName'=>'.....') 格式如下 * [x] 关注/取消关注事件 | 参数 | 描述 | | --- | --- | | ToUserName | 开发者微信号 | | FromUserName | 发送方帐号(一个OpenID) | | CreateTime | 消息创建时间 (整型) | | MsgType | 消息类型,event | | Event | 事件类型,subscribe(关注)、unsubscribe(取消关注) | * [x] 扫描带参数二维码事件 (用户未关注时,进行关注后的事件推送) | 参数 | 描述 | | --- | --- | | ToUserName | 开发者微信号 | | FromUserName | 发送方帐号(一个OpenID) | | CreateTime | 消息创建时间 (整型) | | MsgType | 消息类型,event | | Event | 事件类型,subscribe | | EventKey | 事件KEY值,qrscene\_为前缀,后面为二维码的参数值 | | Ticket | 二维码的ticket,可用来换取二维码图片 | * [x] 扫描带参数二维码事件 (用户已关注时的事件推送) | 参数 | 描述 | | --- | --- | | ToUserName | 开发者微信号 | | FromUserName | 发送方帐号(一个OpenID) | | CreateTime | 消息创建时间 (整型) | | MsgType | 消息类型,event | | Event | 事件类型,SCAN | | EventKey | 事件KEY值,是一个32位无符号整数,即创建二维码时的二维码scene\_id | | Ticket | 二维码的ticket,可用来换取二维码图片 | * [x] 上报地理位置事件 | 参数 | 描述 | | --- | --- | | ToUserName | 开发者微信号 | | FromUserName | 发送方帐号(一个OpenID) | | CreateTime | 消息创建时间 (整型) | | MsgType | 消息类型,event | | Event | 事件类型,LOCATION | | Latitude | 地理位置纬度 | | Longitude | 地理位置经度 | | Precision | 地理位置精度 | * [x] 自定义菜单事件 (点击菜单拉取消息时的事件推送) | 参数 | 描述 | | --- | --- | | ToUserName | 开发者微信号 | | FromUserName | 发送方帐号(一个OpenID) | | CreateTime | 消息创建时间 (整型) | | MsgType | 消息类型,event | | Event | 事件类型,CLICK | | EventKey | 事件KEY值,与自定义菜单接口中KEY值对应 | * [x] 自定义菜单事件 (点击菜单跳转链接时的事件推送) | 参数 | 描述 | | --- | --- | | ToUserName | 开发者微信号 | | FromUserName | 发送方帐号(一个OpenID) | | CreateTime | 消息创建时间 (整型) | | MsgType | 消息类型,event | | Event | 事件类型,VIEW | | EventKey | 事件KEY值,设置的跳转URL |