Issues (35)

src/WeChat.php (1 issue)

Labels
Severity
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: hugh.li
5
 * Date: 2021/4/20
6
 * Time: 4:21 下午.
7
 */
8
9
namespace HughCube\Laravel\WeChat;
10
11
use HughCube\Laravel\WeChat\Contracts\Message\Event\Event;
12
use HughCube\Laravel\WeChat\Contracts\Message\Event\TemplateMessageEventSendJobFinish;
13
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserEventLocation;
14
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserEventMenuClickButton;
15
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserEventMenuClickMiniProgram;
16
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserEventMenuClickView;
17
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserEventScan;
18
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserEventSubscribe;
19
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserEventSubscribeWithScan;
20
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserEventUnsubscribe;
21
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserMessageImage;
22
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserMessageLink;
23
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserMessageLocation;
24
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserMessageShortVideo;
25
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserMessageText;
26
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserMessageVideo;
27
use HughCube\Laravel\WeChat\Contracts\Message\Event\UserMessageVoice;
28
use Illuminate\Support\Str;
29
use Overtrue\LaravelWeChat\EasyWeChat;
0 ignored issues
show
The type Overtrue\LaravelWeChat\EasyWeChat was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
30
use Overtrue\LaravelWeChat\Facade as EasyWeChatFacade;
31
32
/**
33
 * @mixin EasyWeChat
34
 * @mixin EasyWeChatFacade
35
 * @phpstan-ignore-next-line
36
 */
37
class WeChat extends Facade
38
{
39
    /**
40
     * @param  array  $message
41
     * @return Event
42
     * @throws
43
     * @phpstan-ignore-next-line
44
     */
45
    public static function createOfficialAccountEvent(array $message): Event
46
    {
47
        $type = $message['MsgType'] ?? '';
48
        $event = $message['Event'] ?? '';
49
        $eventKey = $message['EventKey'] ?? '';
50
51
        /** 用户发送的消息 */
52
        if ('text' === $type) {
53
            return static::$app->make(UserMessageText::class, ['message' => $message]);
54
        } elseif ('image' === $type) {
55
            return static::$app->make(UserMessageImage::class, ['message' => $message]);
56
        } elseif ('voice' === $type) {
57
            return static::$app->make(UserMessageVoice::class, ['message' => $message]);
58
        } elseif ('video' === $type) {
59
            return static::$app->make(UserMessageVideo::class, ['message' => $message]);
60
        } elseif ('shortvideo' === $type) {
61
            return static::$app->make(UserMessageShortVideo::class, ['message' => $message]);
62
        } elseif ('location' === $type) {
63
            return static::$app->make(UserMessageLocation::class, ['message' => $message]);
64
        } elseif ('link' === $type) {
65
            return static::$app->make(UserMessageLink::class, ['message' => $message]);
66
        }
67
68
        /** 用户行为事件 */
69
        if ('event' === $type && $event === 'subscribe' && Str::startsWith($eventKey, 'qrscene_')) {
70
            return static::$app->make(UserEventSubscribeWithScan::class, ['message' => $message]);
71
        } elseif ('event' === $type && $event === 'subscribe') {
72
            return static::$app->make(UserEventSubscribe::class, ['message' => $message]);
73
        } elseif ('event' === $type && $event === 'unsubscribe') {
74
            return static::$app->make(UserEventUnsubscribe::class, ['message' => $message]);
75
        } elseif ('event' === $type && $event === 'SCAN') {
76
            return static::$app->make(UserEventScan::class, ['message' => $message]);
77
        } elseif ('event' === $type && $event === 'unsubscribe') {
78
            return static::$app->make(UserEventUnsubscribe::class, ['message' => $message]);
79
        } elseif ('event' === $type && $event === 'LOCATION') {
80
            return static::$app->make(UserEventLocation::class, ['message' => $message]);
81
        } elseif ('event' === $type && $event === 'CLICK') {
82
            return static::$app->make(UserEventMenuClickButton::class, ['message' => $message]);
83
        } elseif ('event' === $type && $event === 'VIEW') {
84
            return static::$app->make(UserEventMenuClickView::class, ['message' => $message]);
85
        } elseif ('event' === $type && $event === 'view_miniprogram') {
86
            return static::$app->make(UserEventMenuClickMiniProgram::class, ['message' => $message]);
87
        }
88
89
        /** 模版消息 */
90
        if ('event' === $type && $event === 'TEMPLATESENDJOBFINISH') {
91
            return static::$app->make(TemplateMessageEventSendJobFinish::class, ['message' => $message]);
92
        }
93
94
        return static::$app->make(Event::class, ['message' => $message]);
95
    }
96
}
97