短信宝 php使用,[php] 使用 短信宝 发送短信(thinkphp)

/*** SmsBao实现类* @category Think* @package Think* @subpackage Sms*/classSmsBao {

private$account;//短信包账户private$password;//密码private$balance;//短信剩余条数constsendSmsUrl ="http://api.smsbao.com/sms";

constqueryBalanceUrl ="http://api.smsbao.com/query";

/***架构函数* @access public* @param string $account在短信宝注册的账户名* @param string $password在短信宝注册的账户名的密码*/public function__construct($account,$password) {

if(empty($account) || empty($password)) {

E("用户名和密码不可为空!");

}

$this->account =$account;

$this->password =$password;

}

/***发送短信函数* @access public* @param string $mobile手机号,多个手机号用英文逗号分隔* @param string $content发送内容* @return array返回值为数组,其中status为0表明发送成功,其他情况下发送失败,失败原因为msg*/public functionsendSms($mobile,$content){

$param['u'] =$this->account;

$param['p'] =md5($this->password);

$param['m'] =$mobile;

$param['c'] =$content;

$ret = self::http(self::sendSmsUrl, $param);

$data['status'] =$ret;

$data['msg'] =$ret ==0?'发送成功': self::getResult($ret);

return$data;

}

/***获取短信剩余条数函数* @access public*/public functiongetBalance(){

$param['u'] =$this->account;

$param['p'] =md5($this->password);

$ret = self::http(self::queryBalanceUrl, $param);

$retArr =split("\n", $ret);

$balanceArr =split(",", $retArr[1]);

$this->balance =$retArr[0] ==0?$balanceArr[1] : self::getResult($ret);

return$this->balance;

}

/***发送http请求* @access protected* @param string $url请求地址* @param string $param get方式请求内容,数组形式,post方式时无效* * @param string $data post请求方式时的内容,get方式时无效* @param string $method请求方式,默认get*/protected static functionhttp($url, $param, $data='', $method='GET'){

$opts = array(

CURLOPT_TIMEOUT => 30,

CURLOPT_RETURNTRANSFER => 1,

CURLOPT_SSL_VERIFYPEER => false,

CURLOPT_SSL_VERIFYHOST => false,

);

/*根据请求类型设置特定参数*/$opts[CURLOPT_URL] =$url.'?'.http_build_query($param);

if(strtoupper($method) =='POST'){

$opts[CURLOPT_POST] =1;

$opts[CURLOPT_POSTFIELDS] =$data;

if(is_string($data)){ //发送JSON数据$opts[CURLOPT_HTTPHEADER] = array(

'Content-Type: application/json; charset=utf-8',

'Content-Length: '.strlen($data),

);

}

}

/*初始化并执行curl请求*/$ch =curl_init();

curl_setopt_array($ch, $opts);

$data=curl_exec($ch);

$error =curl_error($ch);

curl_close($ch);

//发生错误,抛出异常if($error) throw new\Exception('请求发生错误:'.$error);

return$data;

}

private functiongetResult($key){

$rst['30'] ='密码错误';

$rst['40'] ='账号不存在';

$rst['41'] ='余额不足';

$rst['42'] ='帐号过期';

$rst['43'] ='IP地址限制';

$rst['50'] ='内容含有敏感词';

$rst['51'] ='手机号码不正确';

return$rst[$key];

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值