La colonne tutorielle suivante du framework thinkphp vous présentera la vérification Alibaba SMS sous thinkphp. J'espère qu'elle sera utile aux amis qui en ont besoin !
Cette méthode est basée sur Thinkphp et utilise jquery.validate. Bien sûr, elle ne peut pas être utilisée dans des projets spécifiques. J'écrirai les étapes ci-dessous.
1. Connectez-vous à
http://www.alidayu.com et accédez au site Web
Connectez-vous avec votre compte Taobao
2. Entrez dans le centre de gestion
3. Configuration
(1) Configurer la signature SMS
(2) Configurer le modèle SMS
Une fois construit, tout ce dont vous avez besoin est APPkey APPsecret
Vous pouvez également tester
Introduction
Téléchargez le fichier de classe Alidayu et placez-le dans /Thinkphp/Library/org/Alidayu (le dossier doit être en majuscule, ce sera un piège pour vous-même, un problème est survenu après le déploiement sur le serveur)
En général classe
// 生成短信验证码 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; } } }
Dans la classe utilisée, je le mets dans la classe d'inscription et j'appelle
//Envoyer un message texte et appelez la méthode dans BaseController, car d'autres modules doivent également l'utiliser. Cette méthode
public function send_message(){ $phone=I("post.phone"); //data返回失败 但不影响使用 $data=$this->send_phone($phone); $this->ajaxReturn($data,"JSON"); }
//发送手机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"); } }
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!