首页
开发手册
应用中心
工具
用户中心
开发自己的 FoundPHP 类库
中文简体
中文简体
English
上一篇
下一篇
### 开发自己的 FoundPHP 类库 FoundPHP 是一个极其迷你的核心库,我们如果想开发属于自己的库可以非常容易扩展,遵循系统的标准规范你也可以开发自己的优秀开源类库。 #### PHP核心库 | 路径 | | | 说明 | | ------------ | ------------ | ------------ | ------------ | | plugin | | | | | | class | | **系统类库** | | | | sms |
**短信验证码类**
| #### 短信验证码类库开发 为了让你开发的库更具真实性,我们采用实战sms 类库加入在FoundPHP 类库中。 我们需要在`plugin/class/`目录下建立`sms`目录,在建立一个utf8格式的php文件,命名为`sms.php`。 类库结构: 类名:FoundPHP_sms 发送方法:send() 日志方法:logs() 调用的短信发送接口腾讯短信平台 SDK参考: https://github.com/TencentCloud/tencentcloud-sdk-php 手册参考: https://cloud.tencent.com/document/product/382/43070 类库文件 plugin/class/sms/sms.php ``` id = $ary['id']; $this->nationcode = empty($ary['code'])?'86':$ary['code']; //国内区段 $this->key = $ary['key']; $this->sign = $ary['sign']; $this->logs_dir = $ary['logs_dir']; } /* 发送消息 phone 接收信息手机 txt 短信内容 tplid 模版id */ function send($phone='',$txt='',$tplid=''){ $logs = 'Date:'.dates(time())."\r\n"; $logs .= 'Phone:'.$phone."\r\n"; $logs .= 'Msg:'.$txt."\r\n"; $logs .= 'TPLid:'.$tplid."\r\n"; $logs .= 'Sign:'.$this->sign."\r\n"; $data = new \stdClass();//创建一个没有成员方法和属性的空对象 $tel = new \stdClass(); $tel->nationcode = "86"; $tel->mobile = "".$phone; $data->tel = $tel; $nowtime = time(); $random = rand(100000, 999999);//生成随机数 $data->sig =hash("sha256", "appkey=".$this->key."&random=".$random."&time=".$nowtime."&mobile=".$phone);// 生成签名 $data->tpl_id = $tplid; $data->params = array($txt); $data->sign = $this->sign; $data->time = $nowtime; $data->extend = ''; $data->ext = ''; //请求 $res = json($GLOBALS['tpl']->curl("https://yun.tim.qq.com/v5/tlssmssvr/sendsms". "?sdkappid=" . $this->id . "&random=" . $random,$data,1)); if($res['result']==0){ $logs .= 'Info:'.$res['errmsg']."\r\n---------------------------\r\n"; $this->logs($logs); return json_out(1,array('msg'=>$res['errmsg']),1); }else{ $logs .= 'Code:'.$res['result']."\r\n"; $logs .= 'Info:'.$res['errmsg']."\r\n---------------------------\r\n"; $this->logs($logs); return json_out($res['result'],array('msg'=>$res['errmsg']),1); } } //日志 function logs($txt=''){ if (is_dir($this->logs_dir) && $this->logs_dir==true){ $GLOBALS['tpl']->writer($this->logs_dir.'/'.dates(time(),$this->filename).'_sms.txt',$txt,'a+'); } } } ``` ------------ **调用方法:** plugin/model/default.php ``` send('19102021188',$rand_code,$tpl_id)); if ($res['code']==1){ echo '成功'; } ?> ``` 到这里封装的类库与使用就完成了。 填写真实的手机号,验证码采用随机数,模版id采用真实的即可发送短信,几秒后就可以收到验证码。