126 lines
4.4 KiB
PHP
126 lines
4.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @author Any
|
|
* @description KISS
|
|
* @date 2020-11-3
|
|
* @version 1.0.0
|
|
*
|
|
* _____LOG_____
|
|
*
|
|
*/
|
|
namespace app\components\sms;
|
|
|
|
use AlibabaCloud\Client\AlibabaCloud;
|
|
use AlibabaCloud\Client\Exception\ClientException;
|
|
use AlibabaCloud\Client\Exception\ServerException;
|
|
|
|
|
|
class AliSmsMsgSender
|
|
{
|
|
public $access_key_id;
|
|
public $access_secret;
|
|
public $signname;
|
|
public $tpl_code;
|
|
|
|
/**
|
|
* 短信发送
|
|
* @param array $params 短信模板参数
|
|
*/
|
|
public function sender($mobile, $params, $mobile_prefix)
|
|
{
|
|
AlibabaCloud::accessKeyClient($this->access_key_id, $this->access_secret)
|
|
->regionId('cn-hangzhou')
|
|
->asGlobalClient();
|
|
try {
|
|
$result = AlibabaCloud::rpcRequest()
|
|
->product('Dysmsapi')
|
|
// ->scheme('https') // https | http
|
|
->version('2017-05-25')
|
|
->action('SendSms')
|
|
->method('POST')
|
|
->options([
|
|
'query' => [
|
|
'RegionId' => 'cn-hangzhou',
|
|
'SignName' => $this->signname,
|
|
'PhoneNumbers' => $mobile,
|
|
'TemplateCode' => $this->tpl_code,
|
|
'TemplateParam' => json_encode($params),
|
|
],
|
|
])
|
|
->request();
|
|
$res = $result->toArray();
|
|
if(isset($res['Code']) && $res['Code'] == 'OK'){
|
|
return [
|
|
'code' => 0,
|
|
'msg' => isset($res['Message']) ? $res['Message'] : 'OK',
|
|
];
|
|
} else {
|
|
return [
|
|
'code' => 1,
|
|
'msg' => isset($res['Message']) ? $res['Message'] : 'FAILED',
|
|
];
|
|
}
|
|
} catch (ClientException $e) {
|
|
return [
|
|
'code' => 1,
|
|
'msg' => $e->getErrorMessage(),
|
|
];
|
|
} catch (ServerException $e) {
|
|
return [
|
|
'code' => 1,
|
|
'msg' => $e->getErrorMessage(),
|
|
];
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @TODO 短信批量发送
|
|
*/
|
|
public function batchSender($mobiles, $signname,$params, $mobile_prefix)
|
|
{
|
|
AlibabaCloud::accessKeyClient($this->access_key_id, $this->access_secret)
|
|
->regionId('cn-hangzhou')
|
|
->asGlobalClient();
|
|
try {
|
|
$result = AlibabaCloud::rpcRequest()
|
|
->product('Dysmsapi')
|
|
// ->scheme('https') // https | http
|
|
->version('2017-05-25')
|
|
->action('SendBatchSms')
|
|
->method('POST')
|
|
->options([
|
|
'query' => [
|
|
'RegionId' => 'cn-hangzhou',
|
|
'SignNameJson' => json_encode($signname,JSON_UNESCAPED_UNICODE),
|
|
'PhoneNumberJson' => json_encode($mobiles,JSON_UNESCAPED_UNICODE),
|
|
'TemplateCode' => $this->tpl_code,
|
|
'TemplateParamJson' => json_encode($params),
|
|
],
|
|
])
|
|
->request();
|
|
$res = $result->toArray();
|
|
if(isset($res['Code']) && $res['Code'] == 'OK'){
|
|
return [
|
|
'code' => 0,
|
|
'msg' => isset($res['Message']) ? $res['Message'] : 'OK',
|
|
];
|
|
} else {
|
|
return [
|
|
'code' => 1,
|
|
'msg' => isset($res['Message']) ? $res['Message'] : 'FAILED',
|
|
];
|
|
}
|
|
} catch (ClientException $e) {
|
|
return [
|
|
'code' => 1,
|
|
'msg' => $e->getErrorMessage(),
|
|
];
|
|
} catch (ServerException $e) {
|
|
return [
|
|
'code' => 1,
|
|
'msg' => $e->getErrorMessage(),
|
|
];
|
|
}
|
|
}
|
|
} |