短信验证-互亿短信

来源:互联网 发布:淘宝怎么贷款最高额度 编辑:程序博客网 时间:2024/05/29 03:16

第一步:

控制器

一个空的前端显示控制器

 //代理注册
    public function proxyreg(){

        $this->display();
    }


短信后台代码

//随机数产生函数
    private function GetRandStr($len, $rtype = 0){
        if ($rtype == 0) {
            $chars = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
                           "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
                           "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
                           "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
                           "S", "T", "U", "V", "W", "X", "Y", "Z", "1", "2",
                           "3", "4", "5", "6", "7", "8", "9");
        }else{
            $chars = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
        }
        $charsLen = count($chars) - 1;
        shuffle($chars);
        $output = "";
        for ($i=0; $i<$len; $i++){
            $output .= $chars[mt_rand(0, $charsLen)];
        }
        return $output;
    }


        // 发送短信
    public function sms(){
        $mobile_code = $this->GetRandStr(4,1);
        //$this->logger("aaaaaa");
        $unifiedOrder = new \UnifiedOrder_pub();

        $mobile = $_POST['mobile'];

        if($mobile=="18128826867" || $mobile=="15992875599"){
            $gets = array('code' => 2, 'msg' => '提交成功');
            $mobile_code = '1234';
        }else{
            $target = "http://106.ihuyi.cn/webservice/sms.php?method=Submit";
            $post_data = "account=cf_chenqiang&password=chenqiang&mobile=".$mobile."&content=".rawurlencode("您的验证码是:".$mobile_code."。请不要把验证码泄露给其他人。");

            //密码可以使用明文密码或使用32位MD5加密
            // $send = $this->Post($post_data, $target);
            $wechatUser = $this->wechatUser;
            $send = $wechatUser->request_post($target, $post_data);
            $gets = $unifiedOrder->xmlToArray($send);           
        }

        if($gets['code']==2){
            $smsjson="{\"rcode\":".$gets['code'].",\"rmsg\":".$mobile_code."}";
        }else{
            $smsjson="{\"rcode\":".$gets['code'].",\"rmsg\":\"".$gets['msg']."\"}";
        }
        $this->ajaxReturn($smsjson,'json');
    }

    //日志记录
    private function logger($content){
        $logSize=100000;
        $log="log.txt";
        if(file_exists($log) && filesize($log)  > $logSize){
            unlink($log);
        }
        file_put_contents($log,date('H:i:s')." ".$content."\n",FILE_APPEND);
    }


第二部:

前端部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>代理注册</title>
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <link rel="stylesheet" type="text/css" href="__PUBLIC__/Daikuan/New/js/duanxin.js">
<script type="text/javascript">
// 确认当前用户端的信息是否发生修改
    function vertifyModify(){
        var modify="";
        var passStyle = $('input:radio[name="passStyle"]:checked').val();

        
        if(''!=$.trim($('#telPhone').val())){
            modify = modify+"9,";
        }
        if(''!=passStyle){
            modify = modify+"10,";
        }
        modify = modify+"0";
        return modify;
    }


    // 注册提交
    var smsData;
    function proxyreg1() {
        var passStyle = $('input:radio[name="passStyle"]:checked').val();
        var jsdata=JSON.parse(smsData);
        var vertifystr = jsdata.rmsg;

        if($.trim(vertifystr)!=$.trim($('#vertifyCode').val())){
            alert("您输入的验收证码不对!");
            return false;
        }else{
            $.ajax({
                type : "POST",
                dataType:"text",
                url : "/Daikuan/Weixin/proxyreg1/",
                data : {
                    telPhone : $('#telPhone').val(),
                    flag : 1,
                    modify : vertifyModify()
                },
                success : function(res) {
                    var jsondata = eval('(' + res + ')');
                    var jsdata=JSON.parse(jsondata);
                    alert(jsdata.smsresult);
                    if(jsdata.result > 0){
                        WeixinJSBridge.call('closeWindow');
                    }
                }
            });
        }
    }

    // 短信发送
    function get_mobile_code(){
        var mobile = jQuery.trim($('#telPhone').val());
        var zphone = document.getElementById('zphone');
        
        if(mobile.length != 11){
            alert('手机号码!');
            $('#telPhone').focus();
        }else{
            if(vertifyModify()=="0"){
                alert("您的注册信息未发任何修改!");
            }else{
                document.getElementById('zphone').disabled = true;
                $.ajax({
                    type : "POST",
                    dataType:"text",
                    url : "Daikuan/Weixin/sms",
                    data : {mobile:mobile},
                    success : function(res) {
                       // alert(res);
                        var json = eval('(' + res + ')');
                        var jsonstr=JSON.parse(json);
                        if(jsonstr.rcode==2){
                            smsData = json;
                            RemainTime();
                        }else{
                            alert("发送短信失败原因:"+jsonstr.rmsg);
                            document.getElementById('zphone').disabled = false;
                            document.getElementById('showTooltips').disabled = true;
                        }
                    }
                });
            }
        }
    }

    var iTime = 59;
    var Account;
    function RemainTime(){
        var iSecond,sSecond="",sTime="";
        if (iTime >= 0){
            document.getElementById('zphone').disabled = true;
            document.getElementById('showTooltips').disabled = false;
            $('#telPhone').attr("readonly","readonly")//将input元素设置为readonly

            iSecond = parseInt(iTime%60);
            iMinute = parseInt(iTime/60);
            if (iSecond >= 0){
                if(iMinute>0){
                    sSecond = iMinute + "分" + iSecond + "秒";
                }else{
                    sSecond = "重新获取(" +iSecond + "S)";
                }
            }
            sTime=sSecond;
            if(iTime==0){
                clearTimeout(Account);
                sTime='获取验证码';
                iTime = 59;
                document.getElementById('zphone').disabled = false;
                document.getElementById('showTooltips').disabled = true;                
                $("#telPhone").removeAttr("readonly");//去除input元素的readonly属性
            }else{
                Account = setTimeout("RemainTime()",1000);
                iTime=iTime-1;
            }
        }else{
            sTime='没有倒计时';
        }
        document.getElementById('zphone').value = sTime;
    }

</script>
</head>
<body>
<div class="weui_cells weui_cells_form">
         <div class="tab-content">
            <div class="weui_cell">
                <div class="weui_cell_hd"><label class="weui_label">手机号码</label>
                </div>
                <div class="weui_cell_primary">
                    <input class="weui_input" type="number" id="telPhone" pattern="[0-9]*" placeholder="手机号">
                </div>
            </div>
          </div>

            <div class="weui_cell">
                <div class="weui_cell_hd"><label class="weui_label">验证码</label>
                </div>
                  <div class="weui_cell_bd weui_cell_primary">
                    <input class="weui_input" type="number" id="vertifyCode" pattern="[0-9]*" placeholder="请输入验证码">
                  </div>
                <input id="zphone" type="button" value=" 获取验证码 " class="weui_btn weui_btn_mini weui_btn_primary" onclick="javascript:get_mobile_code();"/>
            </div>
           
         <div class="weui_cell1">
            <input class="weui_btn weui_btn_primary" type="button" id="showTooltips" value="提交"   onclick="javascript:proxyreg1();"/>
        </div>
    </div>
  </form>
 </body>
</html>

注:

1:引入前端jquery

2.在引入Thinkphp\library\vendor 下引入demo和自己短信封装包

0 0