1. 程式人生 > >傳送手機驗證碼,驗證手機驗證碼,包括資料表的設計

傳送手機驗證碼,驗證手機驗證碼,包括資料表的設計

/**
     * 驗證手機驗證碼
     */
    public function validateMobileCode($post)
    {
        $mc = new MobileCodeModel();
        if(empty($post['mobile'])){
            $this->apiResponse(0,'缺少必要引數:MOBILE','');
        }
        if(empty($post['mobile_code'])){
            $this->apiResponse(0,'缺少必要引數:MOBILE_CODE','');
        }
        $res_find = $mc->where([
            'mobile' => $post['mobile'],
            'mobile_code' => $post['mobile_code'],
            'is_use' => 0,
            'expire_time' => ['gt',time()]
        ])->find();
        if($res_find){
            $res_update = $mc->where('id',$res_find['id'])->setField('is_use',1);
            if($res_update){
                return true;
            }
        }else{
            $this->apiResponse(0,'驗證未通過','');
        }
    }

    /**
     * 傳送手機驗證碼
     * @param $mobile
     * @param $code
     * @return mixed
     */
    private function sendCode($mobile,$content){
        date_default_timezone_set('PRC');//設定時區
        $url 		= "http://www.ztsms.cn/sendNSms.do";//提交地址
        $username 	= Config::get('MB_USERNAME');//使用者名稱
        $password 	= Config::get('MB_PASSWORD');//原密碼
        $data = array(
            'content' 	=> $content,//簡訊內容
            'mobile' 	=> $mobile,//手機號碼
            'productid' => '676767',//產品id
            'xh'		=> ''//小號
        );
        $isTranscoding = false;
        $data['content'] = $isTranscoding === true ? mb_convert_encoding($data['content'], "UTF-8") : $data['content'];
        $data['username']=$username;
        $data['tkey'] 	= date('YmdHis');
        $data['password'] = md5(md5($password) . $data['tkey']);
        $curl = curl_init();// 啟動一個CURL會話
        curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 對認證證書來源的檢查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 從證書中檢查SSL加密演算法是否存在
        curl_setopt($curl, CURLOPT_POST, true); // 傳送一個常規的Post請求
        curl_setopt($curl, CURLOPT_POSTFIELDS,  http_build_query($data)); // Post提交的資料包
        curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設定超時限制防止死迴圈
        curl_setopt($curl, CURLOPT_HEADER, false); // 顯示返回的Header區域內容
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 獲取的資訊以檔案流的形式返回
        $result = curl_exec($curl); // 執行操作
        return $result;
    }