Completed
Push — master ( daa55e...283203 )
by lan tian
9s
created

YunTongXunAgent::sendContentSms()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
eloc 1
nc 1
nop 2
1
<?php
2
3
namespace Toplan\PhpSms;
4
5
use REST;
6
7
/**
8
 * Class YunTongXunAgent
9
 *
10
 * @property string $serverIP
11
 * @property string $serverPort
12
 * @property string $accountSid
13
 * @property string $accountToken
14
 * @property string $appId
15
 * @property int    $playTimes
16
 * @property string $voiceLang
17
 * @property string $displayNum
18
 */
19
class YunTongXunAgent extends Agent implements TemplateSms
20
{
21
    public function sendSms($to, $content, $tempId, array $data)
22
    {
23
        $this->sendTemplateSms($to, $tempId, $data);
24
    }
25
26
    public function sendTemplateSms($to, $tempId, array $data)
27
    {
28
        $data = array_values($data);
29
        $result = $this->rest()->sendTemplateSMS($to, $data, $tempId);
30
        $this->setResult($result);
31
    }
32
33
    public function voiceVerify($to, $code, $tempId, array $data)
34
    {
35
        $playTimes = intval($this->playTimes ?: 3);
36
        $displayNum = $this->displayNum ?: null;
37
        $lang = $this->voiceLang ?: 'zh';
38
        $result = $this->rest()->voiceVerify($code, $playTimes, $to, $displayNum, null, $lang);
39
        $this->setResult($result);
40
    }
41
42
    protected function rest()
43
    {
44
        $rest = new REST($this->serverIP, $this->serverPort, '2013-12-26', 'json');
45
        $rest->setAccount($this->accountSid, $this->accountToken);
46
        $rest->setAppId($this->appId);
47
48
        return $rest;
49
    }
50
51
    protected function setResult($result)
52
    {
53
        if (!$result) {
54
            return;
55
        }
56
        $code = $info = (string) $result->statusCode;
57
        $success = $code === '000000';
58
        if (isset($result->statusMsg)) {
59
            $info = (string) $result->statusMsg;
60
        } elseif (isset($result->TemplateSMS)) {
61
            $info = 'smsSid:' . $result->TemplateSMS->smsMessageSid;
62
        } elseif (isset($result->VoiceVerify)) {
63
            $info = 'callSid:' . $result->VoiceVerify->callSid;
64
        }
65
        $this->result(Agent::SUCCESS, $success);
66
        $this->result(Agent::CODE, $code);
67
        $this->result(Agent::INFO, $info);
68
    }
69
}
70