Informationen zur Alibaba SMS-Verifizierung unter thinkphp

藏色散人
Freigeben: 2020-12-18 09:07:07
nach vorne
2528 Leute haben es durchsucht

Die folgende Tutorial-Kolumne des thinkphp-Frameworks stellt Ihnen die Alibaba-SMS-Verifizierung unter thinkphp vor. Ich hoffe, dass sie Freunden, die sie benötigen, hilfreich sein wird!

Diese Methode basiert auf Thinkphp und verwendet jquery.validate. Natürlich kann sie nicht in bestimmten Projekten verwendet werden.

1. Vorbereitung

1. Melden Sie sich an
http://www.alidayu.com, melden Sie sich einfach mit Ihrem Taobao-Konto an

Informationen zur Alibaba SMS-Verifizierung unter thinkphp3 (1) Konfiguration der SMS-Signatur


Informationen zur Alibaba SMS-Verifizierung unter thinkphp

(2) Konfiguration der SMS-Vorlage Informationen zur Alibaba SMS-Verifizierung unter thinkphp

Informationen zur Alibaba SMS-Verifizierung unter thinkphp

Nach der Erstellung benötigen Sie nur noch APPkey APPsecretInformationen zur Alibaba SMS-Verifizierung unter thinkphp

Informationen zur Alibaba SMS-Verifizierung unter thinkphp

Testen Informationen zur Alibaba SMS-Verifizierung unter thinkphp

2. Datenbank wird nach der Bereitstellung auf dem Server angezeigt Frage)

Informationen zur Alibaba SMS-Verifizierung unter thinkphp

Informationen zur Alibaba SMS-Verifizierung unter thinkphp

In der von

  •   // 生成短信验证码
        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;
                }
            }
        }
    Nach dem Login kopieren


    verwendeten Klasse in der allgemeinen Klasse habe ich es in die Registrierungsklasse eingefügt, um

Informationen zur Alibaba SMS-Verifizierung unter thinkphp// aufzurufen Senden Sie eine Textnachricht und rufen Sie die Methode in BaseController auf, da auch andere Module diese Methode verwenden müssen

  public function send_message(){
     $phone=I("post.phone");
     //data返回失败 但不影响使用
     $data=$this->send_phone($phone);
     $this->ajaxReturn($data,"JSON");
 }
Nach dem Login kopieren
    4 Einige Funktionen von Front-End-Ajax sind bereits verfügbar und müssen verbessert werden
  • //发送手机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");
            }
    
    }
    Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonInformationen zur Alibaba SMS-Verifizierung unter thinkphp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage