Thinkphp5结合sms-bao短信宝手机短信接口使用

第一次做短信验证,弄了好几天才明白短信验证流程,希望能对小伙伴们有辣么一点点儿滴帮助

流程示意图(纯手绘)


Thinkphp5结合sms-bao短信宝手机短信接口使用_第1张图片

下面上干货:二话不说直接开撸

页面如下:(由于编辑器不能粘贴html代码,所以只能截图)


Thinkphp5结合sms-bao短信宝手机短信接口使用_第2张图片

JS代码:


function send_phone(){

var mobile_phone=$("#mobile_phone").val();

varmobile_code=$("#mobile_code").val();

if($("#mobile_phone").val()==""){

alert("手机号不能为空!");return false;

}

if(!/^(13[0-9]|14[0-9]|15[0-9]|18[0-9])\d{8}$/i.test($("#mobile_phone").val())){

alert("手机号码不对,请正确填写");return false;

}

varurl="{:url('Sms/index')}";

$.post(url,{"mobile_phone":mobile_phone},function(data){

alert(data);

console.log(data);

});

}

function submit(){

var mobile_phone=$("#mobile_phone").val();

var mobile_code=$("#mobile_code").val();

$.post("{:url('Index/yz')}",{"mobile_phone":mobile_phone,"mobile_code":mobile_code},function(data){

alert(data);

});

}

后台代码:两个控制器(Sms处理接口;Index处理页面显示和表单提交)


/**

* Created by PhpStorm.

* User: shzk

* Date: 2017/4/14

* Time: 10:13

*/

namespace app\index\controller;

use think\Controller;

use think\Cookie;

class Sms extends Controller {

public function index(){

if(request()->isPost()){

$mobile_phone=input('post.mobile_phone');

// 短信内容

$vacode=rand('111111','999999');

//设置验证码cookie为300秒,即五分钟内输入验证码都有效果

Cookie::set('mobile_vcode',$vacode,300);

$message="[SMS]您的验证码是:".$vacode."。请不要把验证码泄露给其他人。";

$sms_name='*****';//短信平台帐号

$sms_pwd='*****';//短信平台密码

$statusStr=array(

"0"=>"短信发送成功",

"-1"=>"参数不全",

"-2"=>"服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",

"30"=>"密码错误",

"40"=>"账号不存在",

"41"=>"余额不足",

"42"=>"帐户已过期",

"43"=>"IP地址限制",

"50"=>"内容含有敏感词"

);

$smsapi="http://api.smsbao.com/";

$user=$sms_name;//短信平台帐号

$pass=md5("$sms_pwd");//短信平台密码

$content=$message;//要发送的短信内容

$phone=$mobile_phone;//要发送短信的手机号码

$sendurl=$smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);

$result=file_get_contents($sendurl) ;

echo $statusStr[$result];

}

}

}



/*

*/

namespace app\index\controller;

usethink\Controller;

usethink\Cookie;

class Index extends Controller{

public function index(){

return$this->fetch("Index/index");

}

public function yz(){

if(request()->isPost()){

$phone=input('post.mobile_phone');

$code=input('post.mobile_code');

$cookie_code=Cookie::get('mobile_vcode');

if($code==$cookie_code){

$this->success("yes");

}else{

$this->error("error");

}

}else{

$this->error("error");

}

}

}

如果你看了这篇博文对你有收获,请在右下角给本尊点个喜欢,蟹蟹...

你可能感兴趣的:(Thinkphp5结合sms-bao短信宝手机短信接口使用)