Cet article présente principalement l'exemple de code PHP utilisant Yunpian.com pour implémenter la fonction de code de vérification SMS. L'éditeur pense que c'est plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil.
Cet article utilisera PHP comme exemple pour présenter l'implémentation de la fonction de code de vérification Web SMS.
Parmi les nombreux fournisseurs de services SMS tiers, j'ai choisi Yunpian.com comme fournisseur de services SMS. Cet article utilisera également la manière la plus simple possible pour aider les développeurs à résoudre la mise en œuvre du module de fonction de code de vérification SMS.
Encore une fois, j'ai également fait référence à la plupart des blogs en ligne auparavant. La plupart d'entre eux ont déplacé les démos de Yunpian.com intactes. Pour moi, un personnel front-end, je n'en avais aucune idée, alors je vais vous expliquer. comment l'utiliser en détail et fournir mon code source.
Mon processus métier consiste à déclencher un événement de demande ajax en cliquant sur le bouton Envoyer le code de vérification, à envoyer le numéro de téléphone mobile au backend, à générer un code de vérification dans le backend et à l'envoyer au téléphone mobile, puis à le renvoyer. ce code de vérification à la réception pour vérification du code.
Le code du backend php demandé est le suivant
post.php
<?php header("Content-Type:text/html;charset=utf-8"); $apikey = "xxxxxxxxxxxxxxx"; //修改为您的apikey(https://www.yunpian.com)登录官网后获取 $mobile =$_POST['mobile']; //获取传入的手机号 // $mobile = "xxxxxxxxxxx"; //请用自己的手机号代替 $num = rand(1000,9999); //随机产生四位数字的验证码 setcookie('shopCode',$num); $text="【蒙羊羊】您的验证码是".$num."。"; $ch = curl_init(); /* 设置验证方式 */ curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/plain;charset=utf-8', 'Content-Type:application/x-www-form-urlencoded', 'charset=utf-8')); /* 设置返回结果为流 */ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); /* 设置超时时间*/ curl_setopt($ch, CURLOPT_TIMEOUT, 10); /* 设置通信方式 */ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 取得用户信息 $json_data = get_user($ch,$apikey); $array = json_decode($json_data,true); // echo '<pre class="brush:php;toolbar:false">';print_r($array); // 发送短信 $data=array('text'=>$text,'apikey'=>$apikey,'mobile'=>$mobile); $json_data = send($ch,$data); $array = json_decode($json_data,true); // echo '<pre class="brush:php;toolbar:false">';print_r($array); // 发送模板短信 // 需要对value进行编码 $data = array('tpl_id' => '1', 'tpl_value' => ('#code#'). '='.urlencode($num). '&'.urlencode('#company#'). '='.urlencode('蒙羊羊'), 'apikey' => $apikey, 'mobile' => $mobile); // print_r ($data); $json_data = tpl_send($ch,$data); $array = json_decode($json_data,true); echo $num; // 发送语音验证码 // $data=array('code'=>$num,'apikey'=>$apikey,'mobile'=>$mobile); // $json_data =voice_send($ch,$data); // $array = json_decode($json_data,true); // echo $num; // 发送语音通知,务必要报备好模板 /* 模板: 课程#name#在#time#开始。 最终发送结果: 课程深度学习在14:00开始 */ $tpl_id = 'xxxxxxx'; //修改为你自己后台报备的模板id $tpl_value = urlencode('#time#').'='.urlencode($num).'&'.urlencode('#name#').'='.urlencode('蒙羊羊'); $data=array('tpl_id'=>$tpl_id,'tpl_value'=>$tpl_value,'apikey'=>$apikey,'mobile'=>$mobile); $json_data = notify_send($ch,$data); $array = json_decode($json_data,true); // echo $num; curl_close($ch); /************************************************************************************/ //获得账户 function get_user($ch,$apikey){ curl_setopt ($ch, CURLOPT_URL, 'https://sms.yunpian.com/v2/user/get.json'); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('apikey' => $apikey))); $result = curl_exec($ch); $error = curl_error($ch); checkErr($result,$error); return $result; } function send($ch,$data){ curl_setopt ($ch, CURLOPT_URL, 'https://sms.yunpian.com/v2/sms/single_send.json'); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); $result = curl_exec($ch); $error = curl_error($ch); checkErr($result,$error); return $result; } function tpl_send($ch,$data){ curl_setopt ($ch, CURLOPT_URL, 'https://sms.yunpian.com/v2/sms/tpl_single_send.json'); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); $result = curl_exec($ch); $error = curl_error($ch); checkErr($result,$error); return $result; } function voice_send($ch,$data){ curl_setopt ($ch, CURLOPT_URL, 'http://voice.yunpian.com/v2/voice/send.json'); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); $result = curl_exec($ch); $error = curl_error($ch); checkErr($result,$error); return $result; } function notify_send($ch,$data){ curl_setopt ($ch, CURLOPT_URL, 'https://voice.yunpian.com/v2/voice/tpl_notify.json'); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); $result = curl_exec($ch); $error = curl_error($ch); checkErr($result,$error); return $result; } function checkErr($result,$error) { if($result === false) { echo 'Curl error: ' . $error; } else { //echo '操作完成没有任何错误'; } } ?>
Ce backend php est mon officiel Les modifications apportées à la démo fournie ont supprimé la fonction de vérification vocale, conservé uniquement la vérification par SMS et conservé uniquement le code de vérification à quatre chiffres dans les données renvoyées au frontal pour faciliter la vérification du code de vérification par le frontal.
Le lien de démonstration original officiel est le suivant...Lien
index.html
Le code suivant consiste à cliquer et à envoyer une requête ajax, et à enregistrer la vérification demandée code vers localStorage
$.ajax({ type: "post", url: "post.php", //后台代码文件名 data: { mobile:$('#phone').val()//获取输入的手机号 }, // dataType: "json", success:function(data){ console.log(data); layer.msg('验证码发送成功,请注意查收!'); localStorage.setItem('code', JSON.stringify(data)) }, error:function(err){ console.log(err); } });
Vérifiez avec le code de vérification
var code = JSON.parse(localStorage.getItem('code')) if($('#code').val() != code ){ layer.msg('验证码输入错误'); return false; }
Connexe recommandations :
Partage de cas d'interface SMS php
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!