Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie Yunpian.com, um die SMS-Bestätigungscodefunktion in PHP zu implementieren

So verwenden Sie Yunpian.com, um die SMS-Bestätigungscodefunktion in PHP zu implementieren

墨辰丷
墨辰丷Original
2018-05-17 10:58:521693Durchsuche

In diesem Artikel wird hauptsächlich der Beispielcode von PHP vorgestellt, der Yunpian.com zur Implementierung der SMS-Bestätigungscodefunktion verwendet. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor und werfen wir einen Blick darauf.

In diesem Artikel wird PHP als Beispiel verwendet, um die Implementierung der Web-SMS-Bestätigungscodefunktion vorzustellen.

Unter den vielen Drittanbietern von SMS-Diensten habe ich Yunpian.com als SMS-Dienstanbieter ausgewählt. In diesem Artikel wird auch die einfachste Möglichkeit verwendet, um Entwicklern bei der Lösung der Implementierung des SMS-Verifizierungscode-Funktionsmoduls 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, durch Klicken auf die Schaltfläche „Bestätigungscode senden“ ein Ajax-Anforderungsereignis auszulösen, die Mobiltelefonnummer an das Backend zu senden, im Backend einen Bestätigungscode zu generieren, ihn an das Mobiltelefon zu senden und zurückzukehren Geben Sie diesen Verifizierungscode zur Verifizierung an die Rezeption.

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[&#39;mobile&#39;]; //获取传入的手机号
// $mobile = "xxxxxxxxxxx"; //请用自己的手机号代替
$num = rand(1000,9999);   //随机产生四位数字的验证码
setcookie(&#39;shopCode&#39;,$num);
$text="【蒙羊羊】您的验证码是".$num."。";
$ch = curl_init();

/* 设置验证方式 */
curl_setopt($ch, CURLOPT_HTTPHEADER, array(&#39;Accept:text/plain;charset=utf-8&#39;,
&#39;Content-Type:application/x-www-form-urlencoded&#39;, &#39;charset=utf-8&#39;));
/* 设置返回结果为流 */
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 &#39;<pre class="brush:php;toolbar:false">&#39;;print_r($array);

// 发送短信
$data=array(&#39;text&#39;=>$text,&#39;apikey&#39;=>$apikey,&#39;mobile&#39;=>$mobile);
$json_data = send($ch,$data);
$array = json_decode($json_data,true);
// echo &#39;<pre class="brush:php;toolbar:false">&#39;;print_r($array);

// 发送模板短信
// 需要对value进行编码
$data = array(&#39;tpl_id&#39; => &#39;1&#39;, &#39;tpl_value&#39; => (&#39;#code#&#39;).
&#39;=&#39;.urlencode($num).
&#39;&&#39;.urlencode(&#39;#company#&#39;).
&#39;=&#39;.urlencode(&#39;蒙羊羊&#39;), &#39;apikey&#39; => $apikey, &#39;mobile&#39; => $mobile);
// print_r ($data);
$json_data = tpl_send($ch,$data);
$array = json_decode($json_data,true);


echo $num;


// 发送语音验证码
// $data=array(&#39;code&#39;=>$num,&#39;apikey&#39;=>$apikey,&#39;mobile&#39;=>$mobile);
// $json_data =voice_send($ch,$data);
// $array = json_decode($json_data,true);
// echo $num;

// 发送语音通知,务必要报备好模板
/* 
模板: 课程#name#在#time#开始。 最终发送结果: 课程深度学习在14:00开始
 */

$tpl_id = &#39;xxxxxxx&#39;; //修改为你自己后台报备的模板id
$tpl_value = urlencode(&#39;#time#&#39;).&#39;=&#39;.urlencode($num).&#39;&&#39;.urlencode(&#39;#name#&#39;).&#39;=&#39;.urlencode(&#39;蒙羊羊&#39;);
$data=array(&#39;tpl_id&#39;=>$tpl_id,&#39;tpl_value&#39;=>$tpl_value,&#39;apikey&#39;=>$apikey,&#39;mobile&#39;=>$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, &#39;https://sms.yunpian.com/v2/user/get.json&#39;);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(&#39;apikey&#39; => $apikey)));
$result = curl_exec($ch);
$error = curl_error($ch);
checkErr($result,$error);
return $result;
}
function send($ch,$data){
curl_setopt ($ch, CURLOPT_URL, &#39;https://sms.yunpian.com/v2/sms/single_send.json&#39;);
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, 
&#39;https://sms.yunpian.com/v2/sms/tpl_single_send.json&#39;);
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, &#39;http://voice.yunpian.com/v2/voice/send.json&#39;);
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, &#39;https://voice.yunpian.com/v2/voice/tpl_notify.json&#39;);
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 &#39;Curl error: &#39; . $error;
}
else
{
//echo &#39;操作完成没有任何错误&#39;;
}
}

?>

Dieses PHP-Backend wird offiziell von mir bereitgestellt Durch die an der Demo vorgenommenen Änderungen wurde die Sprachüberprüfungsfunktion entfernt, nur die SMS-Überprüfung beibehalten und nur der vierstellige Bestätigungscode in den an das Frontend zurückgegebenen Daten beibehalten, um dem Frontend die Überprüfung des Bestätigungscodes zu erleichtern.

Der offizielle Original-Demo-Link lautet wie folgt...Link

index.html

Der folgende Code dient zum Klicken und Senden einer Ajax-Anfrage sowie zum Speichern der angeforderten Überprüfung Code zu localStorage

 $.ajax({ 
  type: "post", 
  url: "post.php", //后台代码文件名 
  data: {
  mobile:$(&#39;#phone&#39;).val()//获取输入的手机号
  }, 
  // dataType: "json", 
  success:function(data){ 
  console.log(data);
  layer.msg(&#39;验证码发送成功,请注意查收!&#39;);
  localStorage.setItem(&#39;code&#39;, JSON.stringify(data))
  }, 
  error:function(err){ 
  console.log(err); 
  } 
});

Mit Bestätigungscode bestätigen

var code = JSON.parse(localStorage.getItem(&#39;code&#39;))
if($(&#39;#code&#39;).val() != code ){
  layer.msg(&#39;验证码输入错误&#39;);
  return false;
 }

Verwandte Empfehlungen:

php generiert einen coolen vierstelligen Bestätigungscode, PHP-SMS-Bestätigungscode-Software, PHP-SMS-Bestätigungscode-Plattform, PHP-SMS-Bestätigungscode-Pass

Basierend auf PHP, die Funktion von Senden von SMS, wenn ein Produkt fertiggestellt ist, PHP-SMS-Bestätigungscode-Plattform, PHP-SMS-Bestätigungscode-Software, PHP-SMS-Bestätigungscode-Pass

PHP-SMS-Schnittstelle, Case-Sharing

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Yunpian.com, um die SMS-Bestätigungscodefunktion in PHP zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn