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

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

手机验证码php思梦PHP阿里年夜鱼手机验证码 CSS

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'] = \公众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 \"大众发送失落败\"大众; } } }}

(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条利用的条数的,供我们测试利用!