0
0
Files
Babyclass/app/Http/WechatHandlers/EventMessageHandler.php
2020-08-04 10:09:42 +08:00

113 lines
2.8 KiB
PHP

<?php
namespace App\Http\WechatHandlers;
use App\User;
use EasyWeChat\Kernel\Contracts\EventHandlerInterface;
// use EasyWeChat\Kernel\Messages\News;
// use EasyWeChat\Kernel\Messages\NewsItem;
use EasyWeChat\Kernel\Messages\Image;
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)
{
$mediaId = 'fysQHODFoeIoO-ZEDRFVBmtkCAjqXnYco1HeyFKy_kg';
$text = new Image($mediaId);
return $text;
}
}