redis->get($redisKey); if ($robotInfo === false) { $WeChatService = WeChatService::instance(); // 如果 Redis 连接失败或没有找到机器人信息,从数据库中获取 $robotInfo = $WeChatService->getInfo($token); if($robotInfo && $robotInfo['status'] == 1){ // 将获取到的信息存入 Redis,以便下次快速访问 $this->redis->set($redisKey, json_encode($robotInfo), 3600); } else { return false; } } else { $robotInfo = json_decode($robotInfo, true); } return $robotInfo; } public function Call() { $RobotService = new WeChatBotC($this->app); $data = input(); if(isset($data['token'])){ $robotInfo = $this->getRobotInfo($data['token']); if($robotInfo){ $this->robotInfo = $robotInfo; }else{ return $this->response(['code'=>-1,'msg'=>'机器人不存在']); } }else{ return $this->response(['code'=>-1,'msg'=>'参数错误']); } # 判断是否为群组 if($data['is_group']){ $roomid = $data['roomid']; if($roomid == '47576792968@chatroom' && str_contains($data['xml'],'wxid_9iv1hha8g3ok29')){ $AllContacts = $RobotService->get_all_contacts(); // var_dump($AllContacts);die; $Contacts_array = json_decode($AllContacts,true); $acc = $Contacts_array['data']['contacts']; // var_dump($acc);die; $ac = ''; foreach ($acc as $k=>$v){ if($v['wxid'] == $data['sender']){ $ac = $v['name']; } } // var_dump($data['sender']);die; return $RobotService->send_text('测试自动回复 @'.$ac,$data['roomid'],$data['sender']); } if($roomid == '47576792968@chatroom' && str_contains($data['xml'],'wxid_9iv1hha8g3ok29')){ $AllContacts = $RobotService->get_all_contacts(); // var_dump($AllContacts);die; $Contacts_array = json_decode($AllContacts,true); $acc = $Contacts_array['data']['contacts']; // var_dump($acc);die; $ac = ''; foreach ($acc as $k=>$v){ if($v['wxid'] == $data['sender']){ $ac = $v['name']; } } // var_dump($data['sender']);die; return $RobotService->send_text('测试自动回复 @'.$ac,$data['roomid'],$data['sender']); } $this->response(['code'=>1]); } $this->response($data); } public function response($result) { throw new HttpResponseException(json($result)); } protected function maketime($v): float|false|int|string { if (!$v) { return ''; } if (is_numeric($v)) { return $v; } if (is_array($v)) { $v = $v[1]; } if (strstr($v, ' ')) { $t = explode(' ', $v); $v = $t[0]; $s = explode(':', $t[1]); } else { $s = array(0, 0, 0); } if (!isset($s[1])) { $s[1] = 0; } if (!isset($s[2])) { $s[2] = 0; } if (strstr($v, '-')) { $t = explode('-', $v); } elseif (strstr($v, '/')) { $u = explode('/', $v); $t[0] = $u[2]; $t[1] = $u[0]; $t[2] = $u[1]; } if (!isset($t)) { $t = array(0, 0, 0); } if (!isset($t[1])) { $t[1] = 0; } if (!isset($t[2])) { $t[2] = 0; } $v = mktime($s[0], $s[1], $s[2], $t[1], $t[2], $t[0]); return $v; } }