Esempio n. 1
0
 /**
  * 获取来源数据
  *
  * @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;
 }