/** * 获取来源数据 * * @param Server $server * @param Media $media * @param Request $request * @return mixed * @throws \Overtrue\Wechat\Exception */ public function serverAction(Server $server, Media $media, Request $request) { /** * 关注 */ $server->on('event', 'subscribe', function ($event) { $weiXinUser = WeiXinUsers::where('open_id', $event['FromUserName'])->get(); if ($weiXinUser->count() < 1) { $weiXinUser = new WeiXinUsers(); $weiXinUser->open_id = $event['FromUserName']; // $weiXinUser->event = base64_encode($event); $weiXinUser->save(); } return Message::make('text')->content('感谢您关注 嘟嘟噜(*^_^*)。'); }); /** * 监听所有类型 */ $server->on('message', function ($message) use($media) { $message = json_decode($message, true); $apiMessage = []; if (!empty($message['Content']) and $message['Content'] == '嘟嘟噜最帅了') { return Message::make('text')->content('是的,嘟嘟噜爱你 ☆*:.。. o(≧▽≦)o .。.:*☆'); } switch ($message['MsgType']) { case Message::TEXT: // $makeReturn = $this->setTextItem( $msg ); if (in_array($message['Content'], ['猿猿照片', '嘟嘟噜帅照', '嘟嘟噜丑照'])) { $makeReturn = Message::make(Message::IMAGE)->media('j70Om05TV1DVLzgRbmaJzuyj32RsZ4BeKirKfwGTACmLkojSvcvndsVwddVxOJwG'); } else { if (in_array($message['Content'], ['蛋蛋照片', '蛋蛋美照', '蛋蛋女神美照'])) { $messageImage = \App\Models\Message::getRandMessageImageByFromUserName('oKHdSuP0V6HD6C6HauhdTOyWUpqk'); if ($messageImage) { $makeReturn = Message::make(Message::IMAGE)->media($messageImage->getAttributes()['media_id']); } else { $apiMessage = $this->getMessage($message['Content'], $message['FromUserName']); } } else { $apiMessage = $this->getMessage($message['Content'], $message['FromUserName']); } } if (!empty($apiMessage)) { switch ($apiMessage['code']) { case '302000': $response = $this->setArticleItem($apiMessage); $makeReturn = Message::make(Message::NEWS)->items($response); break; case '308000': $response = $this->setNewsItem($apiMessage); $makeReturn = Message::make(Message::NEWS)->items($response); break; case '200000': $makeReturn = Message::make(Message::TEXT)->content($apiMessage['url']); break; default: $makeReturn = Message::make(Message::TEXT)->content($apiMessage['text']); } } else { if (empty($makeReturn)) { $makeReturn = Message::make('text')->content('我已收到你的' . $message['MsgType'] . '信息了,可我不知道要怎么处理,你可以试着输入 "嘟嘟噜最帅了"'); } } break; case Message::IMAGE: $makeReturn = Message::make('text')->content('我收到你可爱的靓照啦!(*^_^*)'); break; default: $makeReturn = Message::make('text')->content('我已收到你的' . $message['MsgType'] . '信息了,可我不知道要怎么处理,你可以试着输入 "嘟嘟噜最帅了"'); } $this->saveMessage($message, $apiMessage); return $makeReturn; }); return $server->serve(); // 或者 return $server; }