Maison >développement back-end >tutoriel php >PHP implémente le code de la méthode de vérification Ali SMS
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 () { $('#sendmsg').click(function () { $.ajax({ type: "POST", url: "/User/folder/child/obtainyzm", data: "admin=" + $('#admin').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: 'json' }) }) }) 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['mobile'];//获取手机号码 $admin =$_POST['admin'];//获取用户名 $user = M('db_admin')->where(array('admin'=>$admin))->find(); /************引入*************/ Vendor('Alidayu.TopClient'); Vendor('Alidayu.AlibabaAliqinFcSmsNumSendRequest'); Vendor('Alidayu.ResultSet'); Vendor('Alidayu.RequestCheckUtil'); $c = new \Vendor\Alidayu\TopClient; $req = new \Vendor\Alidayu\AlibabaAliqinFcSmsNumSendRequest; /*************配置***************/ $code = randCode(4);//随机验证码 $c->appkey = '23******'; $c->secretKey = '6f73a******************'; $req->setSmsType("normal"); $req->setSmsFreeSignName("xx的测试"); $req->setSmsParam("{code:'$code'}"); $req->setRecNum("$mobile"); $req->setSmsTemplateCode("SMS_3******"); if($user) { if($user['mobile'] == $mobile) { /*************发送验证码短信,并把验证码作为新密码保存到服务器上***************/ //$c->execute($req); //不要开启,开启后就会有短信到账,一次几分钱..在服务器上看新密码就好 $newpwd['pwd'] = md5($code); D('db_admin')->where(array('admin'=>$user['admin']))->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!