123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- namespace App\Wechat\Official;
- use App\Services\Auth\AuthService;
- use App\Services\Common\WechatService;
- use EasyWeChat\Kernel\Contracts\EventHandlerInterface;
- class EventHandle implements EventHandlerInterface
- {
-
- private $authService;
-
- private $wechatService;
-
- public function __construct()
- {
- $this->authService=app('App\Services\Auth\AuthService');
- $this->wechatService=app('App\Services\Common\WechatService');
- }
-
- public function handle($payload = null)
- {
- switch ($payload['Event']) {
- case 'subscribe':
-
- return $this->wakeUp("App\\Wechat\\Official\\Event\\", "SubscribeEvent", $payload);
- break;
- case 'SCAN':
-
- return $this->wakeUp("App\\Wechat\\Official\\Event\\Scan\\", $payload['EventKey'], $payload);
- break;
- case 'CLICK':
-
- return $this->wakeUp("App\\Wechat\\Official\\Event\\Click\\", $payload['EventKey'], $payload);
- break;
- case 'VIEW':
-
-
- break;
- case 'scancode_push':
-
- return $this->wakeUp("App\\Wechat\\Official\\Event\\ScanCodePush\\", $payload['EventKey'], $payload);
- break;
- case 'scancode_waitmsg':
-
- return $this->wakeUp("App\\Wechat\\Official\\Event\\ScanCodeWaitmsg\\", $payload['EventKey'], $payload);
- break;
- case 'pic_sysphoto':
-
- return $this->wakeUp("App\\Wechat\\Official\\Event\\PicSysPhoto\\", $payload['EventKey'], $payload);
- break;
- case 'pic_photo_or_album':
-
- return $this->wakeUp("App\\Wechat\\Official\\Event\\PicPhotoOrAlbum\\", $payload['EventKey'], $payload);
- break;
- case 'pic_weixin':
-
- return $this->wakeUp("App\\Wechat\\Official\\Event\\PicWeixin\\", $payload['EventKey'], $payload);
- break;
- case 'location_select':
-
- return $this->wakeUp("App\\Wechat\\Official\\Event\\LocationSelect\\", $payload['EventKey'], $payload);
- break;
- case 'view_miniprogram':
-
-
- break;
- }
- }
- private function wakeUp($namespace, $classname, $payload)
- {
- $official=$this->wechatService->getOfficialAccount();
- $wechatUser=$official->user->get($payload['FromUserName']);
- $user=$this->authService->wechatCheck($wechatUser);
- $class =$namespace.$classname;
- if (!class_exists($class)) {
- return "";
- }
- $class =app($class);
- return $class->handle($wechatUser, $user, $payload);
- }
- }
|