php之手机短信验证码

昨天有个客户要求提交订单,加个手机验证码下单,防止恶意刷单,于是就有了下面的代码:

前端form表单:

 <div class="wfbdbox">
          <label class="wfbdxx"><em>*</em>手机号码</label>
          <div class="wftextbox">
            <input type="text" name="mobile" id="wfmob">
          </div>
        </div>
         <div class="wfbdbox">
          <label class="wfbdxx"><em>*</em>验证码</label>
          <div class="wftextcode">
            <input type="text" name="yzm" id="yzm">
            <button type="button" class="yzmps">获取验证码</button>
          </div>
</div>

ajax异步请求短信接口,发送短信验证码:

$('.yzmps').click(function () {
    $.ajax({
        type: "post",
        url: "smsyzm.php", //后台代码文件名
        data: {
            yzmtel:$('#wfmob').val()//获取输入的手机号
        },
        // dataType: "json",
        success:function(data){
            console.log(data);
			alert('验证码发送成功,请注意查收!');
			//alert(data);
			$('.yzmps').attr('disabled',"true");
			tcode = setInterval("ReSend()", 1000);//设置定时器,60秒后容许再次发送
			localStorage.setItem('code',JSON.stringify(data));
        },
        error:function(err){
            console.log(err);
        }
    });
});
//定时器
function ReSend() {
       var Wait60Second="60秒后重发";
            var TotalCount = $("#hf_timecount").val();
            TotalCount = TotalCount - 1;
            $("#hf_timecount").val(TotalCount);
 
            if (TotalCount == 0) {
                ReSetSend();
            }
            else {
                $(".yzmps").text(Wait60Second.replace("60", TotalCount));
            }
}
//清除定时器
function ReSetSend() {
            clearInterval(tcode);
            $("#hf_timecount").val("60");
            $(".yzmps").text("获取验证码");
			$('.yzmps').removeAttr("disabled");
}	
//提交表单验证输入验证码是否正解
function checkForm(){
.......中间省略其它代码.....
    var code = parseInt(JSON.parse(localStorage.getItem('code')));
	var yzm =parseInt($('#yzm').val());
	if (yzm==""){
			alert('验证码不能为空!');
			document.wfform.yzm.focus();
			return false;
		}
    if(yzm != code){
        alert('验证码输入错误');
		document.wfform.yzm.focus();
        return false;
    }
.......中间省略其它代码.....
}

php后端请求接口返回短信验证码:(需要先找第三方平台申请短信接口,下载sdk文档,api接口使用大同小异,以下仅代参考)

//载入ucpass类
require_once('lib/Ucpaas.class.php');
require_once('serverSid.php');


$appid = "******************";	//应用的ID,可在开发者控制台内的短信产品下查看
$templateid = "111111";    //可在后台短信产品→选择接入的应用→短信模板-模板ID,查看该模板ID

$num = rand(1000,9999);   //随机产生四位数字的验证码

$param = $num; //多个参数使用英文逗号隔开(如:param=“a,b,c”),如为参数则留空
$mobile = $_POST['yzmtel'];
$uid = "";

$res = $ucpass->SendSms($appid,$templateid,$param,$mobile,$uid);
$res=json_decode($res,true);

if($res['code']=='000000'){
	echo $num;
	//return ['code'=>1,'msg'=>'验证码发送,请查收!','data'=>$num];	
}else{
	//return ['code'=>-1,'msg'=>'验证码发送失败,请重新获取!'];
	echo '验证码发送失败';
}

好了,以上就是手机短信验证码开发流程。写下此文以记之,以便后来者不便之时用之!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值