您好,欢迎访问一九零五行业门户网

php使用短信宝发送短信的方法

本文主要和大家分享php使用短信宝发送短信的方法,使用短信宝需要先在官网上注册一个用户名密码,希望能帮助到大家。
注意:如果没有购买短信,则只用来测试短信速度,短信内容不可编辑,只可修改验证码数字。。
测试操作如图:
进入正题:
使用短信宝,需要一个smsbao.class.php文件,这个文件会放在org目录下,文件内容在最下方
调用代码:
<?phpnamespace home\controller;use think\controller;use org\sms\smsbao;class indexcontroller extends controller { public function index(){ $sms = new smsbao("账号", "密码"); $msg = $sms->sendsms("1537539****", "这是一个测试短信!"); if($msg['status'] == 0) { echo '发送成功!'; } else { echo '发送失败!'; } echo $sms->getbalance(); // 返回剩余条数 } }
访问后会显示
登录短信宝,进入请求记录会看到
如果从短信宝测试入口测试,可以在手机上看到短信,然后在官网的发送记录会看到内容
回复的话,会在回复记录中看到回复的内容
附加:
smsbao.class.php 内容
<?php// +----------------------------------------------------------------------// | smsbao for thinkphp// +----------------------------------------------------------------------// | copyright (c) 2005 http://smsbao.com all rights reserved.// +----------------------------------------------------------------------// | licensed ( http://smsbao.com )// +----------------------------------------------------------------------namespace org\sms;/** * smsbao实现类 * @category think * @package think * @subpackage sms */class smsbao { private $account;//短信包账户 private $password;//密码 private $balance;//短信剩余条数 const sendsmsurl = "http://api.smsbao.com/sms"; const querybalanceurl = "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 function sendsms($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 function getbalance(){ $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 function http($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 function getresult($key){ $rst['30'] = '密码错误'; $rst['40'] = '账号不存在'; $rst['41'] = '余额不足'; $rst['42'] = '帐号过期'; $rst['43'] = 'ip地址限制'; $rst['50'] = '内容含有敏感词'; $rst['51'] = '手机号码不正确'; return $rst[$key]; } }
以上就是php使用短信宝发送短信的方法的详细内容。
其它类似信息

推荐信息