TP5快速使用腾讯短信接口封装的方法
来源:互联网 发布:c语言计算最大公约数 编辑:程序博客网 时间:2024/05/19 06:36
1.请自行下载附件(SmsMultiSender.php ,SmsSenderUtil.php,SmsSingleSender)有三个文件,请注意我的命名空间为namespace sms;下载解压出来放在sms文件夹里(注意三个文件放在sms根目录下)
2.把sms文件夹放在TP5目录下的extend 展类库目录即可。
3.如何使用:在需要发短信的controller程序页面头先引入
use sms\SmsMultiSender;
use sms\SmsSenderUtil;
use sms\SmsSingleSender; 这样就可以使用了。
4.我在附件里加了一个官方的demo,标题已注明哦,切记不可以直接运行哦,你可把它复制出来制作成一个函数来调用即可,顺便我把生成验证码的函数也贴在里面了,具体使用方法自己看注解吧。
function sendsms($tel){
try {
// 请根据实际 appid 和 appkey 进行开发,以下只作为演示 sdk 使用
$appid = 000000;//请自己申请填入
$appkey = "d0000000"; //请自己申请填入
$templId = 0000000;//请自己申请填入
$singleSender = new \sms\SmsSingleSender($appid, $appkey);//不用解说了吧
// 指定模板单发
// 假设模板内容为:测试短信,{1},{2},{3},
$mobilelz=$this->generate_code();//生成验证码
//把手机号码和验证码写入数据库
$where['mobile']=$tel;
$user=Db::name('mobile')->where($where)->find();//写放数据库前查询一下是否有登记
if(!$user){//没有登记就先登记
$member['mobile']=$tel;
$member['mobilelz']=$mobilelz;
$member['credate']=date('Y-m-d H:i:s');//创建时间
$member['enddate']=date('Y-m-d H:i:s',strtotime('+180 second'));//验证码失效时间我这里设置3分钟后失效
$mobid=Db::name('mobile')->insert($member,false,true);//写入数据库
if($mobid){//写入库成功才到验证码发送出去
$params = array($mobilelz, "3");//我申请的短信模板只有两个参数 $mobilelz这个是生成的随机验证码 “3” 收到短信上显示3分钟后失效
$result = $singleSender->sendWithParam("86", $member['mobile'], $templId, $params, "", "", "");//开始发短信
$rsp = json_decode($result);
if($result=null){ //如果发送出去没有返回数据,表示短信没有发送成功 这里好像有点问题,还得查看下官方解释才能完善,希望大家提出很好处理方法
Db::name('mobile')->where('mobile',$tel)->delete(); //没有发送成功,应该把已写入的数据 清除
return false;
}else{
return $result; //返回短信有关信息 你可以用dump 显示看下返回了那些信息
}
}else{
return false;//数据写有问题的话返回假
}
}elseif((date('Y-m-d H:i:s')>$user['enddate'])){//当前时候大于失效时间
Db::name('mobile')->where('mobile',$tel)->delete();//如果失效先删除 避免重复产生冗余
return ['error'=>'手机验证码失效'];
}
} catch (\Exception $e) {
echo var_dump($e);
}
}
修正了
function sendsms($tel){
try {
// 请根据实际 appid 和 appkey 进行开发,以下只作为演示 sdk 使用
$appid = 00000;
$appkey = "0000000";
$templId = 00000;
//$phoneNumber1 = $tel;
$singleSender = new \sms\SmsSingleSender($appid, $appkey);
// 指定模板单发
// 假设模板内容为:测试短信,{1},{2},{3},
$mobilelz=$this->generate_code();//生成验证码
//把手机号码和验证码写入数据库
$where['mobile']=$tel;
$user=Db::name('mobile')->where($where)->find();
if(!$user){
$member['mobile']=$tel;
$member['mobilelz']=$mobilelz;
$member['credate']=date('Y-m-d H:i:s');//创建时间
$member['enddate']=date('Y-m-d H:i:s',strtotime('+180 second'));//验证码失效时间
$mobid=Db::name('mobile')->insert($member,false,true);//没有登记就写入
if($mobid){//写入库成功才到验证码发送出去
$params = array($mobilelz, "5");
$result = $singleSender->sendWithParam("86", $member['mobile'], $templId, $params, "", "", "");
$rsp = json_decode($result);
if($rsp['result']!=0){//放送失败的话
Db::name('mobile')->where('mobile',$tel)->delete();
return false;
}else{
return true; //返回短信信息
}
}else{
return false;
}
}elseif((date('Y-m-d H:i:s')>$user['enddate'])){//当前时候大于失效时间
Db::name('mobile')->where('mobile',$tel)->delete();
return false;
}
} catch (\Exception $e) {
echo var_dump($e);
}
}
- TP5快速使用腾讯短信接口封装的方法
- ThinkPHP5的安装使用/tp5快速入门
- tp5 的基本使用
- tp5的事物使用
- 玄武短信接口和移动MAS短信接口的API封装
- 接口的封装与使用
- TP5下导出exl封装的类
- Java的短信接口的使用
- C++短信接口快速入门
- tp5的一些小方法
- tp使用阿里大于的短信接口
- tp5控制器的基本使用/tp5前置操作/tp5控制器初始化/tp5空操作/tp5跳转和重定向
- tp5的whereOr查询使用
- tp5框架paginate的使用
- 封装通信接口数据的方法-json
- 封装通信接口数据的方法-xml
- 接口 DLL 封装 方法
- WebSocket 接口封装方法
- Java程序设计基础-第四章
- USACO-Section2.3 Cow Pedigrees【动态规划】
- 机器学习:K-近邻算法原理与Python代码实现
- 数据结构(Java)---队列
- javaweb学习总结(七)——HttpServletResponse对象(一)
- TP5快速使用腾讯短信接口封装的方法
- 属性动画
- JS 获取浏览器窗口大小
- python中itertools里的product和permutation
- 常见数据库连接池
- 经典田忌赛马算法JAVA解决代码
- 短实习---java数据类型(练习题)
- 对 Linux 文件名中有短横线“-”的操作
- JS内置对象1:数组