阿里大鱼 php sdk下载,思梦PHP-阿里大鱼手机验证码

首先,我们要明白短信发送是什么原理,其实我们使用的第三方是一个通讯的短信协议,然后把我们随机生成的一个验证码发送到用户的手机上,之后我们发送的同时在数据库里面要保存相应的信息用来验证,原理就是这样的了,下来我们就开始一步一步的教大家去玩这个功能!

(1)我们要去建一个保存短信消息的数据表

DROP TABLE IF EXISTS `tb_record`;

CREATE TABLE `tb_record` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `tel` varchar(255) NOT NULL COMMENT '手机号',  `vc` varchar(255) NOT NULL,  `time` varchar(255) NOT NULL,  `ctime` varchar(255) NOT NULL COMMENT '最后一次发送验证码的时间',  PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='短信发送记录表';

(2)我们要去使用第三方的类文件,当然这个类文件你可以去平台下载,上面有PHP的demo,然后我们整合到thinkphp里面就行了,加入放在类库里面不要忘记声明命名空间!

(3)我们在配置文件里面配置一些辅助变量

​'url'=>'http://www.etuocloud.com/gatetest.action', //这个是测试的调用地址,上限之后要更改'app_key'=>'XXXXXXXXXX', // key,你申请之后创建应用会得到'app_secret'=>'XXXXXXXXXXXX', // 密匙,你申请之后创建应用会得到'format'=>'json', // 返回值的格式,分为XML和json​

(4)这步就是我们开始写逻辑操作了

$_POST['tel'] = "18522713541";$tel= $_POST['tel'];$w['tel'] = $tel;$res1= D("Record")->where($w)->find();$gap= time()-$res1['ctime'];if($gap>=86400){

$data['time'] = 0;D("Record")->where($w)->save($data);}

$res1= D("Record")->where($w)->find();if($res1['time']>=3){

echo"短信上限!";}else{

$num= rand(1000,9999);$ecd= newEcd(C('url'),C('app_key'),C('app_secret'),C('format'));//发送验证码短信$res= $ecd->send_sms_code("$tel",'1',"$num",'');$arr= json_decode($res,true);if($arr['result'] == 0&& $arr['msg'] == "成功") {

$w['tel'] = $tel;$res1= D("Record")->where($w)->find();if($res1) {

$data['vc'] = $num;$data['time'] = $res1['time'] + 1;$data['ctime'] = time();$res2= D("Record")->where($w)->save($data);if($res2) {

echo"发送成功";} else{

echo"发送失败";}

} else{

$data['tel'] = $tel;$data['vc'] = $num;$data['time'] = 1;$data['ctime'] = time();$res3= D("Record")->add($data);if($res3) {

echo"发送成功";} else{

echo"发送失败";}

}

}

}

(5)那就是收到短信,然后用户提交的时候我们根据用户的手机号去查相关的验证码好了!

$_POST['tel'] = "18522713XXX";

$tel = $_POST['tel'];$w['tel'] = $tel;

$res1 = D("Record")->where($w)->find();//一天之内只能有三次机会(验证)

​$gap = time()-$res1['ctime'];

​if($gap>=86400){

$data['time'] = 0;

​D("Record")->where($w)->save($data);

}

$res1 = D("Record")->where($w)->find();

​if($res1['time']>=3){

echo "短信上限!";

}else {

//随机发送的验证码的值 $num = rand(1000, 9999);

//实例化一个对象

​$ecd = new Ecd(C('url'), C('app_key'),      C('app_secret'), C('format'));

//发送验证码短信      //第一个参数是手机号,第二个是模板的id,在应用管理有      一个模板的管理,第三个就是我们发送的随机的验证码,第      四个是订单号,咟䦕不填

​$res = $ecd->send_sms_code("$tel", '1', "$num", '');

$arr = json_decode($res, true);

if ($arr['result'] == 0 && $arr['msg'] == "成功") {

$w['tel'] = $tel;

$res1 = D("Record")->where($w)->find();

if ($res1) { $data['vc'] = $num;

​$data['time'] = $res1['time'] + 1;

$data['ctime'] = time();

$res2 = D("Record")->where($w)->save($data);

​if ($res2) {

echo "发送成功";

} else { echo "发送失败";

}

} else { $data['tel'] = $tel;

$data['vc'] = $num;

$data['time'] = 1;

​$data['ctime'] = time();

​$res3 = D("Record")->add($data);

if ($res3) { echo "发送成功";

​} else {

echo "发送失败";

} } }}​

还有就是小伙伴要注意的就是,阿里大鱼未认证的用户,只能给白名单的用户发送短信,所以你要去配置一下白名单,以保证我们发送的成功!还有就是刚申请的时候是有免费的100条使用的条数的,供我们测试使用!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值