首页 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践全文在线阅读

《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》19.7 案例实践:会议签到及室内定位

关灯直达底部

基于摇一摇事件通知功能,开发会议签到及室内定位功能非常容易。摇一摇事件通知可以作为签到的依据,而事件中的Distance参数可以得到用户离设备的距离,也就可以对用户进行一个大致的定位。

首先需要配置一个自定义链接的签到页面及一个摇一摇设备,自定义链接中可以填写会议详情页面。配置好后的效果如图19-26所示。

图19-26 设备绑定页面

然后在开发者接口中接收摇一摇事件通知,并解析事件的XML数据包。相应代码如下。


 1 // 接收事件消息 2 private function receiveEvent($object) 3 { 4     $content = ""; 5     switch ($object->Event) 6     { 7         case "subscribe": 8             $content = "欢迎关注方倍工作室"; 9             break;10         case "ShakearoundUserShake":11             $content = "摇一摇/nUuid:".$object->ChosenBeacon->Uuid.12             "/nMajor:".$object->ChosenBeacon->Major.13             "/nMinor:".$object->ChosenBeacon->Minor.14             "/nDistance:".$object->ChosenBeacon->Distance.15             "/nRssi:".$object->ChosenBeacon->Rssi.16             "/nMeasurePower:".$object->ChosenBeacon->MeasurePower.17             "/nChosenPageId:".$object->ChosenBeacon->ChosenPageId18             ;19             require_once('weixin.class.php');20             $weixin = new class_weixin;21             $openid = strval($object->FromUserName);22             $data = array("title"=>"签到成功", "description"=>"欢迎参加集团公司2017年               年会。/r/n会议时间:12月31日 19:00-22:00/r/n会议地点:XX路123号XX大酒               店5楼/r/n联系电话:0755-1234567/r/n签到地点:主席台 ".round($object->               ChosenBeacon->Distance ,1)." 米范围内", "picurl"=>"http:// discuz.comli.               com/weixin/weather/icon/cartoon.jpg", "url" =>"");23             $result2 = $weixin->send_custom_message($openid, "news", $data);24             break;25         default:26             $content = "receive a new event: ".$object->Event;27             break;28     }29 30     if(is_array($content)){31         $result = $this->transmitNews($object, $content);32     }else{33         $result = $this->transmitText($object, $content);34     }35     return $result;36 }  

上述代码解读如下。

第10行:接收到摇一摇事件通知。

第11~18行:解析出摇一摇事件XML数据的参数。

第19~21行:引入微信类文件,创建新对象,解析出OpenID。

第22行:构造签到成功的图文消息,同时计算出用户离设备的距离并放入图文消息的描述字段中。

第23行:使用客服接口发送图文消息。

最终用户摇到的签到页面及收到的图文消息如图19-27所示。

图19-27 会议签到及室内定位

另外,本案例没有将用户记录写入数据库。在实际中,这样的需求一般是需要保存入库,以便统计人数的。读者可以自己完成该部分的代码。