Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert den Code der Ali-SMS-Überprüfungsmethode

PHP implementiert den Code der Ali-SMS-Überprüfungsmethode

小云云
小云云Original
2018-02-08 09:28:171522Durchsuche

Vor kurzem möchte ich die Wirkung der SMS-Verifizierung in PHP erkennen. Beim Erstellen einer PC-Website können Sie Benutzer für die Verwendung der SMS-Verifizierung registrieren oder Kennwörter abrufen, Benutzerinformationen überprüfen und andere Funktionen nutzen. Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen zur Implementierung der Alibaba Dayu SMS-Überprüfung in PHP vor. Ich hoffe, dass er allen helfen kann.

Der erste Schritt

Melden Sie sich bei Alibaba an, um ein Konto zu registrieren, erstellen Sie eine Anwendung im Benutzerverwaltungscenter und bestätigen Sie den AppKEY und die App Geheime und konfigurieren Sie die Signatur

Schritt 2

SDK-Download auswählen in Anwendungsverwaltung, oder klicken Sie direkt auf http://www.jb51.net/softs/312325.html, um es herunterzuladen, es ist kostenlos, Schatz

Entpacken Sie die heruntergeladenen Ressourcen und legen Sie sie wie gezeigt im ThinkPHPLibraryVendor-Verzeichnis ab

Es werden nicht alle PHP-Dateien benötigt, wie im Bild gezeigt, um die PHP-Dateien in Alidayu separat zu öffnen Fügen Sie eine Codezeile hinzu (wenn Sie sie über den von mir gesendeten Link heruntergeladen haben, ist es nicht nötig, diesen Code hinzuzufügen, da ich ihn bereits hinzugefügt habe)


namespace Vendor\Alidayu;

Der Zweck besteht darin, Fehler beim Aufruf zu vermeiden

Der dritte Schritt

Sie können HTML schreiben


<p class="form-group">
 <p class="field field-icon-right">
  <input type="text" id="admin" class="input" name="admin" placeholder="用户名" data-validate="required:请填写用户名,length#>=5:用户长度不符合要求" />
  <span class="icon icon-user"></span>
 </p>
</p>


<p class="form-group">
 <p class="field field-icon-right">
  <input id="mobile" type="tel" class="input" name="mobile" placeholder="手机号码" onblur="checkmobile(this)" />
  <span class="icon icon-mobile"></span>
 </p>
</p>


 <button id="sendmsg">获取验证码</button>

Schritt 4

JQ-Code schreiben (die Funktion besteht darin, nach dem Senden des Bestätigungscodes herunterzuzählen und POST an den Hintergrund weiterzuleiten. Die vom Hintergrund zurückgegebenen Daten 0, 1 und 2 entsprechen jeweils unterschiedlichen Funktionen.) Dieser Code basiert auf anderen Personen


<script >

 /*-------------------------------------------*/
 var InterValObj; //timer变量,控制时间
 var count = 60; //间隔函数,1秒执行
 var curCount;//当前剩余秒数
 var code = ""; //验证码
 var codeLength = 6;//验证码长度

 $(function () {
  $(&#39;#sendmsg&#39;).click(function () {
   $.ajax({
    type: "POST",
    url: "/User/folder/child/obtainyzm",
    data: "admin=" + $(&#39;#admin&#39;).val()+"&mobile="+$("#mobile").val() ,
    success: function (result) {
     if(result==0){
      curCount = count;
      //设置button效果,开始计时
      $("#sendmsg").css("background-color", "LightSkyBlue");
      $("#sendmsg").attr("disabled", "true");
      $("#sendmsg").val("获取" + curCount + "秒");
      InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
      // alert("验证码发送成功,请查收!");
     }
     if(result==1){

      alert("用户名和手机号不匹配!");
     }
     if(result==2){

      alert("用户名不存在!");
     }

    },
    dataType: &#39;json&#39;

   })
  })
 })

 function SetRemainTime() {

  if (curCount == 0) {
   window.clearInterval(InterValObj);//停止计时器
   $("#sendmsg").removeAttr("disabled");//启用按钮
   $("#sendmsg").css("background-color", "");
   $("#sendmsg").val("重发验证码");
   code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
  }
  else {
   curCount--;
   $("#sendmsg").val("获取" + curCount + "秒");
  }
 }
</script>

Es gibt zwei Parameter admin und mobile, die den Benutzernamen bzw. die Mobiltelefonnummer darstellen.

Schritt 5

Funktionscode schreiben


public function obtainyzm(){

 $mobile = $_POST[&#39;mobile&#39;];//获取手机号码
 $admin =$_POST[&#39;admin&#39;];//获取用户名

 $user = M(&#39;db_admin&#39;)->where(array(&#39;admin&#39;=>$admin))->find();

 /************引入*************/
 Vendor(&#39;Alidayu.TopClient&#39;);
 Vendor(&#39;Alidayu.AlibabaAliqinFcSmsNumSendRequest&#39;);
 Vendor(&#39;Alidayu.ResultSet&#39;);
 Vendor(&#39;Alidayu.RequestCheckUtil&#39;);

 $c = new \Vendor\Alidayu\TopClient;
 $req = new \Vendor\Alidayu\AlibabaAliqinFcSmsNumSendRequest;

 /*************配置***************/
 $code = randCode(4);//随机验证码
 $c->appkey = &#39;23******&#39;;
 $c->secretKey = &#39;6f73a******************&#39;;
 $req->setSmsType("normal");
 $req->setSmsFreeSignName("xx的测试");
 $req->setSmsParam("{code:&#39;$code&#39;}");
 $req->setRecNum("$mobile");
 $req->setSmsTemplateCode("SMS_3******");

 if($user)
 {
  if($user[&#39;mobile&#39;] == $mobile)
  {
   /*************发送验证码短信,并把验证码作为新密码保存到服务器上***************/
   //$c->execute($req); //不要开启,开启后就会有短信到账,一次几分钱..在服务器上看新密码就好
   $newpwd[&#39;pwd&#39;] = md5($code);
   D(&#39;db_admin&#39;)->where(array(&#39;admin&#39;=>$user[&#39;admin&#39;]))->save($newpwd);
   $this->ajaxreturn(0);//用户名密码匹配
  }
  else
  {
   $this->ajaxreturn(1);//用户名和手机号不匹配
  }
 }
 else
 {
  $this->ajaxreturn(2); //用户名不存在
 }
 $this->display();
}//获取验证码

Verwandte Empfehlungen:

So verwenden Sie PHP zum Senden eines SMS-Bestätigungscodes

So senden Sie einen Alibaba Cloud PHP SMS-Bestätigungscode für den SMS-Dienst

JS implementiert SMS-Bestätigungscode

Das obige ist der detaillierte Inhalt vonPHP implementiert den Code der Ali-SMS-Überprüfungsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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