thinkpHP 3.2.3 문자 검증 보다 아 리 를 실현 하 는 방법

아 리 운 등록 및 등록
콘 솔 을 누 르 면 C>사용자 이름(오른쪽 마지막 두 번 째)으로 마우스 가 미 끄 러 집 니 다.C>accesskeys C>를 누 르 면 가 져 옵 니 다.
콘 솔 클릭 후 C>제품 및 서비스 C>클 라 우 드 컴 퓨 팅 기초 서비스 C>클 라 우 드 통신 C>문자 서비스
테스트 문자 서명 과 템 플 릿 을 보 내지 않 았 다 면 C>서명 추가 C>템 플 릿 추가
SDK 다운로드
https://help.aliyun.com/document_detail/55359.html?spm=5176.doc55451.6.569.0uXt4J
입장 후 PHP 를 선택 하면 dysmsapidemo_sdk__php.zip,압축 을 풀 면 다음 그림 디 렉 터 리 를 얻 을 수 있 습 니 다.
thinkPHP3.2.3实现阿里大于短信验证(阿里云合并后的版本)-
API 배치
TP 루트 디 렉 터 리 에 폴 더 Api 를 만 들 고 apisdk 전체 폴 더 를 복사 하여 dysms 로 이름 을 바 꿉 니 다(자 유 롭 게 이름 을 지 을 수 있 습 니 다)
thinkPHP3.2.3实现阿里大于短信验证(阿里云合并后的版本)- thinkPHP3.2.3实现阿里大于短信验证(阿里云合并后的版本)-
API 파일 도입
자신 이 호출 해 야 할 컨트롤 러 머리 에 다음 경 로 를 도입 합 니 다.

use Aliyun/Core/Config;
use Aliyun/Core/Profile/DefaultProfile;
use Aliyun/Core/DefaultAcsClient;
use Aliyun/Api/Sms/Request/V20170525/SendSmsRequest;
thinkPHP3.2.3实现阿里大于短信验证(阿里云合并后的版本)-
8.정 진 루 사이즈 지금부터 시작
원본 코드:

/**
*     
*/
public function send_message(){
$phone=I("post.phone");
//        
$user = D('User') -> where("user_phone = {$phone}") -> find();
if ($user) {
echo "      !";
}else{
$this->send_phone($phone);
}
// $this->ajaxReturn($data,"JSON");
}
/**
*        
* @paraminteger $length [     ]
*/
public function createSMSCode($length = 4){
$min = pow(10 , ($length - 1));
$max = pow(10, $length) - 1;
return rand($min, $max);
}
/**
*      
* @param[integer] $phone [   ]
*/
public function send_phone($phone){
$code=$this->createSMSCode($length = 4);
require_once'./Api/dysms/vendor/autoload.php';//      API   
Config::load();//        
$accessKeyId = '     ';
$accessKeySecret = '     ';
$templateCode = '     '; //    ID
//  API   (       ,    )
$product = "Dysmsapi";
//  API    (      ,    )
$domain = "dysmsapi.aliyuncs.com";
//      Region(     cn-hangzhou    )
$region = "cn-hangzhou";
//      Profile  
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
//       
DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
//    AcsClient      
$acsClient = new DefaultAcsClient($profile);
//    SendSmsRequest             
$request = new SendSmsRequest();
//   ,        
$request->setPhoneNumbers($phone);
//   ,      
$request->setSignName("     ");
//   ,    CODE
$request->setTemplateCode("     ");
$smsData = array('code'=>$code);//                          username    username
//  -                 (JSON  ),    :  JSON       ,      JSON         ,         /r/n    JSON      //r//n,     JSON        
$request->setTemplateParam(json_encode($smsData));
//      
$acsResponse = $acsClient -> getAcsResponse($request);
//      
$result = json_decode(json_encode($acsResponse), true);
$resp = $result['Code'];
$this->sendMsgResult($resp,$phone,$code);
}
/**
*               ajax,          , 50        
* @param[json] $resp[    ]
* @param[type] $phone [   ]
* @param[type] $code[   ]
* @return [type] [description]
*/
private function sendMsgResult($resp,$phone,$code){
if ($resp == "OK") {
$data['phone']=$phone;
$data['code']=$code;
$data['send_time']=time();
$result=D("Smsverif")->add($data);
if($result){
$data="    ";
}else{
$data="    ";
}
} else{
$data="    ";
}
return $data;
}
/**
*            ,   jquery validate remote
* @return [type] [description]
*/
public function checkSMSCode(){
$phone = $_POST['phone'];
$code = $_POST['verify'];
$nowTimeStr = time();
$smscodeObj = D("Smsverif")->where("phone={$phone} and code = {$code}")->find();
if($smscodeObj){
$smsCodeTimeStr = $smscodeObj['send_time'];
$recordCode = $smscodeObj['code'];
$flag = $this->checkTime($nowTimeStr, $smsCodeTimeStr);
if($flag!=true || $code !== $recordCode){
echo 'no';
}else{
echo 'ok';
}
}
}
/**
*             
*@param[json] $nowTimeStr[    ]
* @param[type] $smsCodeTimeStr [   ]
*/
public function checkTime ($nowTimeStr,$smsCodeTimeStr) {
$time = $nowTimeStr - $smsCodeTimeStr;
if ($time>900) {
return false;
}else{
return true;
}
}
전단 js 코드 좀 더 주세요.
훈훈 한 힌트:html 여러분 스스로 발휘 하 세 요
코드 가 생 겼 는데 효과 가 없 을 리 가 있 겠 어 요!예 를 들 어 사용자 등록 입 니 다.제 핸드폰 번 호 는 이미 등록 되 었 기 때문에 효 과 는 비밀 번 호 를 찾 는 것 입 니 다)
thinkPHP3.2.3实现阿里大于短信验证(阿里云合并后的版本)-
여기까지.OK.
총결산
위 에서 말 한 것 은 편집장 이 여러분 에 게 소개 한 thinkpHP 3.2.3 알 리 가 문자 메시지 검증 보다 큰 방법 을 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기