Maison >développement back-end >tutoriel php >PHP implémente le code de la méthode de vérification Ali SMS

PHP implémente le code de la méthode de vérification Ali SMS

小云云
小云云original
2018-02-08 09:28:171598parcourir

Récemment, je souhaite réaliser l'effet de la vérification SMS en PHP lors de la création d'un site Web PC, vous pouvez enregistrer des utilisateurs pour utiliser la vérification SMS, ou récupérer des mots de passe, vérifier les informations utilisateur et d'autres fonctions. Cet article vous présente principalement les informations pertinentes sur l'exemple de code d'implémentation de la vérification SMS d'Alibaba Dayu en PHP. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer.

La première étape

Connectez-vous à Alibaba pour créer un compte, créez une application dans le centre de gestion des utilisateurs, confirmez l'AppKEY et l'application Secret et configurez la signature

Étape 2

Sélectionnez le téléchargement du SDK dans gestion des applications, ou Cliquez directement sur http://www.jb51.net/softs/312325.html pour télécharger, c'est gratuit cher

Décompressez les ressources téléchargées et placez-les dans le répertoire ThinkPHPLibraryVendor comme indiqué

Tous les fichiers php ne sont pas nécessaires. Utilisez simplement les fichiers php sous le dossier Alidayu comme indiqué dans l'image pour ouvrir les fichiers php dans Alidayu séparément au début. Ajoutez une ligne de code (si vous l'avez téléchargé à partir du lien que j'ai envoyé, il n'est pas nécessaire d'ajouter ce code, car je l'ai déjà ajouté)


namespace Vendor\Alidayu;

Le but est d'éviter l'échec lors de l'appel

La troisième étape

Vous pouvez écrire du HTML


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

Étape 4

Écrivez le code JQ (la fonction est de décompter après l'envoi du code de vérification, et le POST est passé en arrière-plan. Les données 0, 1 et 2 renvoyées par l'arrière-plan correspondent respectivement à différentes fonctions) Ce code est basé sur les


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

Il y a deux paramètres admin et mobile représentant respectivement le nom d'utilisateur et le numéro de téléphone portable.

Étape 5

Écrire le code de fonction


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();
}//获取验证码

Connexe recommandé :

Comment utiliser PHP pour envoyer le code de vérification par SMS

Comment envoyer le code de vérification du service SMS Alibaba Cloud PHP SMS

JS implémente le code de vérification SMS

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn