thinkphp의 Alibaba SMS 확인 정보

藏色散人
풀어 주다: 2020-12-18 09:07:07
앞으로
2498명이 탐색했습니다.

다음 튜토리얼 칼럼인 thinkphp 프레임워크에서는 thinkphp의 Alibaba SMS 확인 방법을 소개합니다. 필요한 친구들에게 도움이 되길 바랍니다!

이 방법은 Thinkphp를 기반으로 하며 jquery.validate를 사용합니다. 물론 특정 프로젝트에서는 사용하지 않을 수도 있습니다.

1. 준비

1. 로그인
http://www.alidayu.com에 접속하세요.
타오바오 계정으로 로그인하세요
2. 관리센터에 들어가세요

thinkphp의 Alibaba SMS 확인 정보

3. (1) SMS 서명 구성


thinkphp의 Alibaba SMS 확인 정보

thinkphp의 Alibaba SMS 확인 정보 (2) SMS 템플릿 구성

thinkphp의 Alibaba SMS 확인 정보

thinkphp의 Alibaba SMS 확인 정보구축 후 필요한 것은 APPkey APPsecret

thinkphp의 Alibaba SMS 확인 정보

thinkphp의 Alibaba SMS 확인 정보 테스트

thinkphp의 Alibaba SMS 확인 정보2.Database

thinkphp의 Alibaba SMS 확인 정보3.Backend

    Introduction
  • Alidayu 클래스 파일을 다운로드하여 /Thinkphp/Library/org/Alidayu에 넣으세요(폴더는 대문자여야 합니다. 질문)


thinkphp의 Alibaba SMS 확인 정보

    일반수업에서
  •   // 生成短信验证码
        public function createSMSCode($length = 4){
            $min = pow(10 , ($length - 1));
            $max = pow(10, $length) - 1;
            return rand($min, $max);
        }
    
        //发送验证码
        public function send_phone($phone){
            $code=$this->createSMSCode($length = 4);
            import('Org.Alidayu.top.TopClient');
            import('Org.Alidayu.top.ResultSet');
            import('Org.Alidayu.top.RequestCheckUtil');
            import('Org.Alidayu.top.TopLogger');
            import('Org.Alidayu.top.request.AlibabaAliqinFcSmsNumSendRequest');
            $c = new \TopClient;
            $appkey="你的appkey";
            $secret="你的secret;
            $c ->appkey = $appkey ;
            $c ->secretKey = $secret ;
            $req = new \AlibabaAliqinFcSmsNumSendRequest;
            $req ->setExtend( "" );
            $req ->setSmsType( "normal" );
            $req ->setSmsFreeSignName( "阿尚测试" );
            $req ->setSmsParam( "{name:'客户',code:'".$code."',time:'5分钟'}" );
            $req ->setRecNum( $phone);
            $req ->setSmsTemplateCode( "SMS_71300157" );
            $resp = $c ->execute( $req );
            $this->sendMsgResult($resp,$phone,$code);
        }
        
        //验证手机号是否发送成功  前端用ajax,发送成功则提示倒计时,如50秒后可以重新发送
        private function sendMsgResult($resp,$phone,$code){
            if ($resp->result->success && !$resp->result->code) {
                $data['phone']=$phone;
                $data['code']=$code;
                $data['send_time']=time();
                $result=M("code")->add($data);
                if($result){
                    $data="发送成功";
                }else{
                    $data="发送失败";
                }
            } else if ($resp->code || $resp->msg == "Remote service error") {
                $data="发送失败";
            } else {
                $data="发送失败";
            }
            return $data;
        }
        
        // 验证短信验证码是否有效,前端用jquery validate的remote
        public function checkSMSCode(){
            $mobile = $_POST['mobile'];
            $code = $_POST['code'];
            $nowTimeStr = date('Y-m-d H:i:s');
            $smscodeObj = M("code")->where("mobile='$mobile'")->find();
            if($smscodeObj){
                $smsCodeTimeStr = $smscodeObj['send_time'];
                $recordCode = $smscodeObj['code'];
                $flag = $this->checkTime($nowTimeStr, $smsCodeTimeStr);
                if($flag&&$code==$recordCode){
                    echo true;
                }else{
                    echo false;
                }
            }
        }
    로그인 후 복사
    이 사용하는 클래스에서는 등록클래스에 넣어서
  • // 다른 모듈도 이 메소드를 사용해야 하기 때문에 문자 메시지를 보내고 BaseController에서 메소드를 호출하세요
  public function send_message(){
     $phone=I("post.phone");
     //data返回失败 但不影响使用
     $data=$this->send_phone($phone);
     $this->ajaxReturn($data,"JSON");
 }
로그인 후 복사

4. 프론트 엔드 ajax의 일부 기능은 이미 사용 가능하며 개선이 필요합니다

//发送手机ajax
function send_message() {
        if($("#phone input").valid()){
            var phone=$("#phone input").val();
            $.post("{:U('Register/send_message')}","phone="+phone,function(data){
                
            });    
            $("#send_message").html("发送成功");
            $("#send_message").css("background-color","#2f9cff");
        }

}
로그인 후 복사

위 내용은 thinkphp의 Alibaba SMS 확인 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!