Home  >  Article  >  Backend Development  >  How to use Yunpian.com to implement SMS verification code function in PHP

How to use Yunpian.com to implement SMS verification code function in PHP

墨辰丷
墨辰丷Original
2018-05-17 10:58:521760browse

This article mainly introduces the sample code of PHP using Yunpian.com to implement the SMS verification code function. The editor thinks it is quite good, so I will share it with you now and give it as a reference. Let’s follow the editor and take a look.

This article will use PHP as an example to introduce the implementation of the web SMS verification code function.

Among the many third-party SMS service providers, I chose the SMS service provider Yunpian.com. This article will also use the simplest way possible to help developers solve the implementation of the SMS verification code function module.

Before again, I also referred to most online blogs, etc. Most of them moved the demo of Yunpian.com intact. For me, a front-end person, I had no clue at all, so I I will explain how to operate it in detail and provide my source code.

My business process is to click the button to send verification code, trigger an ajax request event, send the mobile phone number to the background, generate the verification code in the background and send it to the mobile phone, and return this verification code to the front desk for verification. Code verification.

The requested php backend code is as follows

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;;
}
}

?>

This php backend is provided by me officially The modifications made on the demo removed the voice verification function, only retained SMS verification, and only retained the four-digit verification code in the data returned to the front end to facilitate the front end to verify the verification code.

The official original demo link is as follows...Link

index.html

The following code is to click and send an ajax request, and save the requested verification code to 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); 
  } 
});

Perform verification code verification

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

Related recommendations:

php generates a cool four-character verification code php SMS verification code software php SMS verification code platform php SMS verification code pass

Based on PHP, the function of sending SMS when a product is completed is realized php SMS verification code platform php SMS verification code software php SMS verification code pass

php SMS interface case sharing

The above is the detailed content of How to use Yunpian.com to implement SMS verification code function in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn