如何實現直播間原始碼重要的簡訊驗證碼功能

雲豹科技阿星發表於2021-08-31

要說直播間原始碼的重要功能,使用者註冊肯定是其中之一,而實現使用者註冊,就離不開簡訊驗證碼的接受,那麼直播間原始碼是怎麼實現傳送簡訊驗證碼的呢?

直播間原始碼使用者透過手機號註冊,首頁獲取驗證碼,呼叫阿里大魚簡訊驗證碼,介面thinkphp5.2寫的,可以判斷手機號是否註冊,簡訊傳送是否成功。

<!DOCTYPE html>
<html>
        <head>
                <meta charset="utf-8">
                <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
                <meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
                <title>title</title>
                <link rel="stylesheet" type="text/css" href="../css/api.css"/>
                <link rel="stylesheet" type="text/css" href="../css/style.css" />
                <link rel="stylesheet" type="text/css" href="../css/aui.2.0.css" />

        </head>
        <body>

                <div class="aui-content aui-margin-b-15">
                        <ul class="aui-list aui-form-list">
                                <li class="aui-list-item">
                                        <div class="aui-list-item-inner">
                                                <div class="aui-list-item-label-icon">
                                                        <i class="aui-iconfont aui-icon-mobile"></i>
                                                </div>
                                                <div class="aui-list-item-input">
                                                        <input type="text" placeholder="手機號" id="mobile">
                                                </div>
                                        </div>
                                </li>
                                <li class="aui-list-item">
                                        <div class="aui-list-item-inner">
                                                <div class="aui-list-item-label-icon">
                                                        <i class="aui-iconfont aui-icon-lock"></i>
                                                </div>
                                                <div class="aui-list-item-input">
                                                        <input type="text" placeholder="驗證碼" id="code">
                                                </div>
                                                <div class="aui-list-item-label-icon">
                                                        <i class="aui-iconfont aui-icon-display"></i>
                                                </div>
                                        </div>
                                </li>
                        </ul>
                </div>
                <div align="center">
                        <button type="button"  οnclick="get_code();">
                                獲取驗證碼
                        </button>
                        <button type="button"  οnclick="next_reg();">
                                下一步
                        </button>
                </div>

        </body>
        <script type="text/javascript" src="../script/api.js"></script>
        <script type="text/javascript">
                var mobile = document.getElementById("mobile");
                var code = document.getElementById("code");
                var code_str = "";
                for (var i = 0; i < 6; i++) {
                        code_str += Math.round(Math.random() * 10);
                }
                var getcode = document.getElementById("getcode");
                //                alert(code_str);
                function get_code() {
                        //                alert(mobile.value);
                        //                alert();
                        if (mobile.value.length == 0) {
                                alert("手機號不能為空");
                                return;
                        }
                        api.ajax({
                                url : '
                                method : 'post',
                                data : {
                                        values : {
                                                mobile : mobile.value,
                                                code_str : code_str,
                                                signature : '*******'
                                        }
                                }
                        }, function(data) {
                                //                        alert(data.code);
                                if (data) {
                                        if (data.code == 1) {
                                                //                                                alert('驗證碼傳送成功');
                                                api.toast({
                                                        msg : '驗證碼傳送成功'
                                                });
                                        } else if (data.code == 2) {
                                                alert('驗證碼傳送失敗');
                                        } else if (data.code == 3) {
                                                alert('手機號已註冊');
                                        }
                                } else {
                                        alert('111');
                                }
                        });
                }

                //使用者註冊
                function next_reg() {
                        if (code.value != code_str) {
                                alert("驗證碼錯誤");
                                return;
                        }
//                        api.openWin({
//                                name : 'personer_regsetpass',
//                                url : 'personer_regsetpass.html',
//                                pageParam : {
//                                        mobile : mobile.value
//                                }
//                        });
                        api.openWin({
                                name : 'personer_regsetpass',
                                url : './a_headbackindex.html',
                                pageParam : {
                                        title : '註冊',
                                        url : 'personer_regsetpass',
                                        mobile : $api.setStorage('mobile', mobile.value)
                                }
                        });
                }

//                function backtoIndex() {
//                        api.closeToWin({
//                                name : 'root'
//                        });
//                }

                apiready = function() {
//                $api.fixStatusBar($api.dom('header'));
//                        api.addEventListener({
//                                name : 'keyback'
//                        }, function(ret, err) {
//                                backtoIndex();
//                        });
                };
        </script>
</html>

php介面程式碼:

//註冊獲取手機驗證碼介面
    public function getCode()
    {
        $code = Request::instance()->post('code_str');
        $mobile = Request::instance()->post('mobile');
        $signature = Request::instance()->post('signature');
        $str = Db::table('member')->where('phone', $mobile)->find();
        if ($str) {
            // echo 3;
            $res['code'] = 3;
        } else {
            if ($signature == '************') {
                Loader::import('AlibabaAliqinFcSmsNumSendRequest', EXTEND_PATH);
                Loader::import('TopClient', EXTEND_PATH);
                Loader::import('ResultSet', EXTEND_PATH);
                Loader::import('RequestCheckUtil', EXTEND_PATH);
                Loader::import('TopLogger', EXTEND_PATH);
                $c = new \TopClient;
                $c->appkey = '';//換成自己的
                $c->secretKey = '';//換成自己的
                $req = new \AlibabaAliqinFcSmsNumSendRequest;
                $req->setExtend("123456");
                $req->setSmsType("normal");
                $req->setSmsFreeSignName("");//換成自己的
                $req->setSmsParam("{\"code\":\"$code\",\"product\":\"註冊\"}");
                $req->setRecNum("$mobile");
                $req->setSmsTemplateCode("SMS_2575466");
                $resp = $c->execute($req);
                if ($resp) {
                    // echo 1;
                    $res['code'] = 1;
                } else {
                    // echo 2;
                    $res['code'] = 2;
                }
            } else {
                // echo 3;
                $res['code'] = 3;
            }
        }
        echo json_encode($res);
    }

這樣我們就可以實現傳送簡訊驗證碼的功能啦。

宣告:本文由雲豹科技轉發自API_Cloud部落格,如有侵權請聯絡作者刪除


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69982461/viewspace-2789706/,如需轉載,請註明出處,否則將追究法律責任。

相關文章