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

《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》25.5.3 关注时更新用户

关灯直达底部

对于新关注的用户,在其关注时直接将其用户信息插入数据库表,方法与同步信息时类似。对于取消关注的用户,使用db助手函数将其从表中删除。其相应代码如下。


 1 // 接收事件消息 2 private function receiveEvent($object) 3 { 4     $weixin = new /weixin/Wxapi; 5     $openid = strval($object->FromUserName); 6     $content = ""; 7     switch ($object->Event) 8     { 9         case "subscribe":10             $info = $weixin->get_user_info($openid);11             $municipalities = array("北京", "上海", "天津", "重庆", "香港", "澳门");12             $sexes = array("", "男", "女");13             $data = array;14             $data['openid'] = $openid;15             $data['nickname'] = str_replace("'", "", $info['nickname']);16             $data['sex'] = $sexes[$info['sex']];17             $data['country'] = $info['country'];18             $data['province'] = $info['province'];19             $data['city'] = (in_array($info['province'], $municipalities))?$info               ['province'] : $info['city'];20             $data['scene'] = (isset($object->EventKey) && (stripos(strval($object->               EventKey),"qrscene_")))?str_replace("qrscene_","",$object->EventKey):"0";21             $data['headimgurl'] = $info['headimgurl'];22             $data['subscribe'] = $info['subscribe_time'];23             $data['heartbeat'] = time;24             $data['remark'] = $info['remark'];25             $data['score'] = 1;26             $data['tagid'] = $info['tagid_list'];27             Db::name('user')->insert($data);28             $content = "欢迎关注,".$info['nickname'];29             break;30         case "unsubscribe":31             db('user')->where('openid',$openid)->delete;32             break;33         default:34             $content = "";35             break;36     }37     if(is_array($content)){38         $result = $this->transmitNews($object, $content);39     }else{40         $result = $this->transmitText($object, $content);41     }42     return $result;43 }