113 lines
2.8 KiB
PHP
113 lines
2.8 KiB
PHP
<?php
|
||
|
||
namespace addons\smsbao\library;
|
||
|
||
class Smsbao
|
||
{
|
||
private $_params = [];
|
||
protected $error = '';
|
||
protected $config = [];
|
||
protected static $instance = null;
|
||
protected $statusStr = array(
|
||
"0" => "短信发送成功",
|
||
"-1" => "参数不全",
|
||
"-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
|
||
"30" => "密码错误",
|
||
"40" => "账号不存在",
|
||
"41" => "余额不足",
|
||
"42" => "帐户已过期",
|
||
"43" => "IP地址限制",
|
||
"50" => "内容含有敏感词"
|
||
);
|
||
|
||
public function __construct($options = [])
|
||
{
|
||
if ($config = get_addon_config('smsbao')) {
|
||
$this->config = array_merge($this->config, $config);
|
||
}
|
||
$this->config = array_merge($this->config, is_array($options) ? $options : []);
|
||
}
|
||
|
||
/**
|
||
* 单例
|
||
* @param array $options 参数
|
||
* @return Smsbao
|
||
*/
|
||
public static function instance($options = [])
|
||
{
|
||
if (is_null(self::$instance)) {
|
||
self::$instance = new static($options);
|
||
}
|
||
return self::$instance;
|
||
}
|
||
|
||
/**
|
||
* 立即发送短信
|
||
*
|
||
* @return boolean
|
||
*/
|
||
public function send()
|
||
{
|
||
$this->error = '';
|
||
$params = $this->_params();
|
||
$postArr = array(
|
||
'u' => $params['u'],
|
||
'p' => $params['p'],
|
||
'm' => $params['mobile'],
|
||
'c' => $params['msg']
|
||
);
|
||
$options = [
|
||
CURLOPT_HTTPHEADER => array(
|
||
'Content-Type: application/json; charset=utf-8'
|
||
)
|
||
];
|
||
$result = \fast\Http::sendRequest('http://api.smsbao.com/sms', $postArr, 'GET', $options);
|
||
if ($result['ret']) {
|
||
if (isset($result['msg']) && $result['msg'] == '0')
|
||
return TRUE;
|
||
$this->error = isset($this->statusStr[$result['msg']]) ? $this->statusStr[$result['msg']] : 'InvalidResult';
|
||
} else {
|
||
$this->error = $result['msg'];
|
||
}
|
||
return FALSE;
|
||
}
|
||
|
||
private function _params()
|
||
{
|
||
return array_merge([
|
||
'u' => $this->config['username'],
|
||
'p' => md5($this->config['password']),
|
||
], $this->_params);
|
||
}
|
||
|
||
/**
|
||
* 获取错误信息
|
||
* @return string
|
||
*/
|
||
public function getError()
|
||
{
|
||
return $this->error;
|
||
}
|
||
|
||
/**
|
||
* 接收手机
|
||
* @param string $mobile 手机号码
|
||
* @return Smsbao
|
||
*/
|
||
public function mobile($mobile = '')
|
||
{
|
||
$this->_params['mobile'] = $mobile;
|
||
return $this;
|
||
}
|
||
|
||
/**
|
||
* 短信内容
|
||
* @param string $msg 短信内容
|
||
* @return Smsbao
|
||
*/
|
||
public function msg($msg = '')
|
||
{
|
||
$this->_params['msg'] = $this->config['sign'] . $msg;
|
||
return $this;
|
||
}
|
||
} |