🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 事件管理 ##介绍 在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息。其中,某些事件推送在发生后,是允许开发者回复用户的,某些则不允许。 ##关注 用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL。方便开发者给用户下发欢迎消息或者做帐号的解绑。 微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。 假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。 ``` //消息管理模块 $instance = Weixin::instance('message'); //判断是否是关注事件 if ($instance->isSubscribeEvent()) { //向用户回复消息 $instance->text("感谢你关注后盾网微信"); } ``` ##取消关注 网站捕获取消关注事件后可以对粉丝等数据进行后续处理。 ``` //消息管理模块 $instance = Weixin::instance('message'); //判断是否是取消关注事件 if ($instance->isUnSubscribeEvent()) { //向用户回复消息 //...网站做后续处理... } ``` ##扫描二维码事件 未关注时扫描二维码并点击了关注 ``` //消息管理模块 $instance = Weixin::instance('message'); //未关注用户扫描二维码事件 if ($instance->isSubscribeScanEvent()) { //获取消息内容 $message = $instance->getMessage(); //向用户回复消息 $instance->text("未关注用户扫描二维码关注了后盾网,EventKey: {$message->EventKey} ,二维码的Ticket: {$message->Ticket}"); } ``` 已经关注的用户扫描了二维码 ``` //消息管理模块 $instance = Weixin::instance('message'); //关注用户扫描二维码事件 if ($instance->isScanEvent()) { //获取消息内容 $message = $instance->getMessage(); //向用户回复消息 $instance->text("已关注用户扫描二维码,EventKey: {$message->EventKey} ,二维码的Ticket: {$message->Ticket}"); } ``` ##上报地理位置消息 ``` //消息管理模块 $instance = Weixin::instance('message'); //关注用户扫描二维码事件 if ($instance->isLocationEvent()) { //获取消息内容 $message = $instance->getMessage(); //向用户回复消息 $instance->text("上报地理位置事件,纬度: {$message->Latitude} ,经度: {$message->Longitude}"); } ``` <br/><br/><br/><br/><br/><br/>