Heim > Artikel > Backend-Entwicklung > So verwenden Sie PHP zum Senden eines SMS-Bestätigungscodes
Ich habe mich unter vielen Drittanbietern von SMS-Diensten für Yunpian.com entschieden. Ich werde auch mein Bestes geben, um Entwicklern bei der Lösung der Implementierung des SMS-Verifizierungscodes zu helfen.
Auch hier habe ich auf die meisten Online-Blogs verwiesen, die intakt waren. Für mich als Front-End-Mitarbeiter hatte ich überhaupt keine Ahnung, also werde ich es erklären wie man es im Detail bedient und meinen Quellcode bereitstellt.
Mein Geschäftsprozess besteht darin, auf die Schaltfläche zu klicken, um den Bestätigungscode zu senden, ein Ajax-Anfrage--Ereignis auszulösen, die Mobiltelefonnummer in den Hintergrund zu senden und den Hintergrund zu aktivieren generiert den Bestätigungscode, sendet ihn an das Mobiltelefon und sendet diesen Bestätigungscode zur Überprüfung des Bestätigungscodes an die Rezeption zurück.
Der angeforderte PHP-Backend-Code lautet wie folgt
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 '操作完成没有任何错误'; } } ?>
Dieses PHP-Backend wurde von mir in der offiziellen Demo geändert, löschen Ohne die Sprachüberprüfungsfunktion wird nur die SMS-Überprüfung beibehalten und in den an das Front-End zurückgegebenen Daten wird nur der vierstellige Bestätigungscode beibehalten, um die Überprüfung des Bestätigungscodes durch das Front-End zu erleichtern.
Der offizielle Original-Demo-Link lautet wie folgt... Link
index.html
Der folgende Code dient zum Klicken und Senden einer Ajax-Anfrage und zum Speichern des angeforderten Bestätigungscodes in 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); } });
Verifizierung des Bestätigungscodes durchführen
var code = JSON.parse(localStorage.getItem('code')) if($('#code').val() != code ){ layer.msg('验证码输入错误'); return false; }
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie diese Fälle gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Verwandte Lektüre:
Ajax-Technologie für asynchrone Anforderungen anhand von Beispielen erklärt
PHP-Optimierung für großen Datenverkehr?
So generieren Sie ein kartesisches Produkt mit einer benutzerdefinierten PHP-Funktion
Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP zum Senden eines SMS-Bestätigungscodes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!