短信驗證手機號

原理:javascript

用戶點擊獲取驗證碼時,發送手機號到後端接口,後端接受請求後,將手機號以及驗證碼發給短信網關,並將手機號和短信驗證碼保存起來。用戶收到短信後,輸入驗證碼,而後前端將驗證碼和手機號傳給後端,後端校驗手機號和驗證碼是否與以前保存的一致,若是一致,則驗證經過,向前端發送認證狀態,認證經過的狀態下前端進行頁面的跳轉或者是其餘的業務邏輯。css

代碼:html

html代碼前端

<div class="box">
<div class="center" style="padding-top:0.8rem;">
<ul>
<li class="clearfix">
<input type="number" class="sjh" placeholder="手機號" id="phonenum2" style="color:#535353;"/>
<button class="fyzm" id="embed-submit">發送驗證碼</button>
</li>
<li>
<input type="number" class="yzm" placeholder="驗證碼" id="vernum" style="color:#535353;"/>
</li>
</ul>
</div>
<div class="bottom">
<button class="btn" id="submit" href="javascript:">提交</button>
</div>
</div>

js代碼java

//點擊發送驗證碼    $("#embed-submit").unbind('click').bind('click',function(){        $("#vernum").val("");        var tel = $("#phonenum2").val();        var reg = /^0?1[3|4|5|7|8][0-9]\d{8}$/;        if (reg.test(tel)) {//驗證手機號碼            yzget_fn();        }else{            alert_('請輸入有效電話號碼');        }    });//發送手機號到後端接口    function yzget_fn(){        $("#embed-submit").attr('disabled','disabled');            $("#embed-submit").addClass("fyzmOn");    //發送驗證碼按鈕樣式變化        //獲取驗證碼        var phonenum = $("#phonenum2").val();//電話號碼        $.ajax({            url:"",            type: "get",            dataType: "json",            success:function(msg){                if(msg.message=='success'){                    var second = msg.term;   //秒數                    var embedSubmit = $("#embed-submit");                    var i = parseInt(second*1)+1;                    var time_ = setInterval(function(){                        if(i>0){                            i--;                            embedSubmit.html("正在獲取"+i);                        }else{                            clearInterval(time_);                            $("#embed-submit").attr('disabled',false);                            $("#embed-submit").removeClass("fyzmOn");                            embedSubmit.html('發送驗證碼');                        }                    },1000)                }else if(msg.message=='error'){                    alert_(msg.data);                    $("#embed-submit").attr('disabled',false);                    $("#embed-submit").removeClass("fyzmOn");                }            }        })    }    //提交驗證信息,點擊提交把手機號和驗證碼傳給後端    $('#submit').unbind('click').bind('click',function(){        var self_=$(this);        if(self_.attr("odisabled")=="odisabled"){            $(".buyFrame").css("display","block");            alert_("操做過於頻繁,請5秒以後重試");            var timeable = setTimeout(function(){                self_.attr('odisabled',false);                clearTimeout(timeable);            },5000)        }else{            var vernum = $("#vernum").val(); //驗證碼            var phonenum = $("#phonenum2").val();//電話號碼            var reg = /^0?1[3|4|5|7|8][0-9]\d{8}$/;            if (!reg.test(phonenum)) {//驗證手機號碼                alert_("請先輸入有效電話號碼");                return false            }else if(!vernum){                alert_('請輸入驗證碼');                return false;            }else{                $.ajax({                    //獲取id,challenge,success(是否啓用failback)                    url: "https://www.*******/dealwine/sendsmsverify?mobile="+phonenum+"&wxopenid=${wxopenid}"+"&smscode="+vernum,                    type: "post",                    dataType: "json",                    success: function (data) {                        if(data.message=='success'){                            alert_('驗證成功');                            $("#phonenum2").val($("#phonenum").val());                            self_.attr('odisabled','odisabled');                            var returnurl = "${returnurl}";                            history.go(-1);                        }else{                            alert_('驗證失敗');                            self_.attr('odisabled','odisabled');                        }                        $("#submit").attr('disabled',false);                    },error:function(){                        alert_('信息出錯,請從新嘗試!');                        $("#submit").attr('disabled',false);                        self_.attr('odisabled','odisabled');                    }                })            }        }    });
相關文章
相關標籤/搜索