RequestFriend.php
1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
/**
* Created by PhpStorm.
* User: Hanson
* Date: 2017/1/15
* Time: 12:29
*/
namespace Hanson\Vbot\Message\Entity;
use Hanson\Vbot\Message\MessageInterface;
class RequestFriend extends Message implements MessageInterface
{
/**
* @var array 信息
*/
public $info;
public $avatar;
const ADD = 2;
const VIA = 3;
public function __construct($msg)
{
parent::__construct($msg);
$this->make();
}
public function make()
{
$this->info = $this->msg['RecommendInfo'];
$this->parseContent();
}
private function parseContent()
{
$isMatch = preg_match('/bigheadimgurl="(.+?)"/', $this->msg['Content'], $matches);
if ($isMatch) {
$this->avatar = $matches[3];
}
}
/**
* 验证通过好友
*
* @param $code
* @param null $ticket
* @return bool
*/
public function verifyUser($code, $ticket = null)
{
$url = sprintf(server()->baseUri . '/webwxverifyuser?lang=zh_CN&r=%s&pass_ticket=%s', time() * 1000, server()->passTicket);
$data = [
'BaseRequest' => server()->baseRequest,
'Opcode' => $code,
'VerifyUserListSize' => 1,
'VerifyUserList' => [$ticket ?: $this->verifyTicket()],
'VerifyContent' => '',
'SceneListCount' => 1,
'SceneList' => [33],
'skey' => server()->skey
];
$result = http()->json($url, $data, true);
return $result['BaseResponse']['Ret'] == 0;
}
/**
* 返回通过好友申请所需的数组
*
* @return array
*/
public function verifyTicket()
{
return [
'Value' => $this->info['UserName'],
'VerifyUserTicket' => $this->info['Ticket']
];
}
}