讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 25.5.3 關注時更新用戶 >

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 }