1
0
Files
lkafu/app/Http/WechatHandlers/EventMessageHandler.php
2020-08-06 14:45:56 +08:00

110 lines
2.7 KiB
PHP

<?php
namespace App\Http\WechatHandlers;
use App\Models\User;
use EasyWeChat\Kernel\Contracts\EventHandlerInterface;
use EasyWeChat\Kernel\Messages\Text;
class EventMessageHandler implements EventHandlerInterface
{
private $payload;
public function handle($payload = null)
{
if (method_exists($this, $payload['Event'])) {
$this->payload = $payload;
return call_user_func_array([$this, $payload['Event']], []);
} else {
return '暂不支持的消息类型';
}
}
/**
* 扫码事件
* @Author:<C.Jason>
* @Date:2018-11-12T16:28:19+0800
*/
private function SCAN()
{
}
/**
* 主菜单点击
* @Author:<C.Jason>
* @Date:2018-11-12T16:28:06+0800
*/
private function CLICK()
{
return false;
}
/**
* 关注事件
* @Author:<C.Jason>
* @Date:2018-11-12T16:27:51+0800
*/
private function subscribe()
{
$app = app('wechat.official_account');
$user = $app->user->get($this->payload['FromUserName']);
// 先查找用户是否存在,不存在再注册
$existUser = User::where('openid', $this->payload['FromUserName'])->first();
if ($existUser) {
$existUser->update([
'info' => [
'headimgurl' => $user['headimgurl'],
'sex' => $user['sex'],
'country' => $user['country'],
'province' => $user['province'],
'city' => $user['city'],
'subscribe_at' => $user['subscribe_time'],
'subscribe_scene' => $user['subscribe_scene'],
// 'qr_scene' => $user['qr_scene'],
// 'qr_scene_str' => $user['qr_scene_str'],
],
]);
return $this->firstSubscribeMessage($existUser);
}
}
public function VIEW()
{
#Todo..
}
public function LOCATION()
{
#Todo..
}
/**
* 取消关注事件
* @Author:<Leady>
* @Date:2018-12-12T13:44:54+0800
* @return [type] [description]
*/
private function unsubscribe()
{
$existUser = User::where('openid', $this->payload['FromUserName'])->first();
if ($existUser) {
$existUser->update([
'info' => [
'subscribe_at' => null,
// 'subscribe_scene' => null,
],
]);
}
}
private function firstSubscribeMessage($user)
{
$text = new Text('您好,欢迎关注连卡蝠');
return $text;
}
}