手機短信驗證功能實戰(zhàn)開發(fā)

開發(fā)環(huán)境準(zhǔn)備

  1. 本功能以LAMP為開發(fā)環(huán)境,請確保電腦上已安裝LAMP,具體安裝過程參見ubuntu下 LAMP的安裝。
  2. 安裝LAMP后,還要確保安裝curl。安裝過程如下
sudo apt-get install curl libcurl3 libcurl3-dev php5-curl
sudo /etc/init.d/apache2 restart //重啟Apache服務(wù)器

實際場景

生活中,我們經(jīng)常會遇到利用手機驗證碼驗證身份的情況。其大致流程如下:

  1. 輸入手機號碼,點擊獲取驗證碼后,服務(wù)器生成一個驗證碼,將手機號和驗證碼作為一條記錄插入到數(shù)據(jù)庫中,同時調(diào)用第三方短信接口,將驗證碼發(fā)送到手機上。
  2. 我們接收到驗證碼后,在網(wǎng)頁上填寫驗證碼,點擊提交。服務(wù)器接受驗證碼和手機號,在數(shù)據(jù)庫中進行查找,若有符合的記錄,則可以確定是本人操作,可放行讓其進行余下操作。否則不允許繼續(xù)操作。

實戰(zhàn)過程

  1. 尋找合適的短信接口。
    本文以API Store中的凱德通短信接口為例。



    點擊獲取apikey,獲取屬于你的apikey。

  2. 獲取驗證碼的頁面


  3. 輸入手機號碼,點擊獲取驗證碼



    此部分的代碼為

<?php
    header('Content-type:text/html;charset=utf-8');
    $phonenum=$_POST["phonenumber"];
    $code=rand(100000,999999);
    $content="【snoweek學(xué)習(xí)過程】".$code;
    $ch = curl_init();
    $url = 'http://apis.baidu.com/kingtto_media/106sms/106sms?mobile='.$phonenum.'&content='.$content;
    $header = array(
        'apikey:27a3d37cb57bcd235e9253abcda3b66b',
    );
    // 添加apikey到header
    curl_setopt($ch, CURLOPT_HTTPHEADER  , $header);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // 執(zhí)行HTTP請求
    curl_setopt($ch , CURLOPT_URL , $url);
    $res = curl_exec($ch);
    //print_r($res);
    if(strpos("$#".$res,"ok")){
        require "./functions/connect_mysql.php"; 
        require "./functions/code_function.php"; 
        insert_code($phonenum,$code);
        $message['send']='success';
        $json_message=json_encode($message);
        echo $json_message;
        //echo "發(fā)送成功";
    }else{
        $message['send']='fail';
        $json_message=json_encode($message);
       echo $json_message;
        //echo "發(fā)送失敗";
    }
?>

其實現(xiàn)的功能有兩部分:
. 給手機發(fā)送驗證碼
. 將驗證碼和手機號存入數(shù)據(jù)庫

  1. 填寫驗證碼,點擊提交



    此部分的功能是,將手機號和驗證碼一起提交,在數(shù)據(jù)庫中進行查找,若有符合的記錄,則可以確定是本人操作,可放行讓其進行余下操作。否則不允許繼續(xù)操作。

補充:

  1. 以上實戰(zhàn)開發(fā)忽略了實際情況的細節(jié)部分,如時間限制等。著重講解手機短信驗證功能的流程。
  2. 此項目的完整代碼可以到我的github,php-message-test進行下載。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容