>  기사  >  백엔드 개발  >  Yunpian.com을 사용하여 PHP에서 SMS 인증 코드 기능을 구현하는 방법

Yunpian.com을 사용하여 PHP에서 SMS 인증 코드 기능을 구현하는 방법

墨辰丷
墨辰丷원래의
2018-05-17 10:58:521743검색

본 글에서는 SMS 인증코드 기능을 구현하기 위해 Yunpian.com을 이용한 PHP의 샘플 코드를 주로 소개하고 있는데, 편집자께서 꽤 괜찮다고 생각하셔서 지금 공유하고 참고용으로 올려드리겠습니다. 편집자를 따라가서 살펴보겠습니다

이 글에서는 PHP를 예로 들어 웹 SMS 인증 코드 기능의 구현을 소개합니다.

많은 타사 SMS 서비스 제공업체 중에서 저는 Yunpian.com을 SMS 서비스 제공업체로 선택했습니다. 이 기사에서는 개발자가 SMS 인증 코드 기능 모듈의 구현을 해결할 수 있도록 가능한 가장 간단한 방법을 사용합니다.

또 대부분의 온라인 블로그 등을 참고했습니다. 대부분은 Yunpian.com의 데모를 그대로 옮겼습니다. 프론트 엔드 직원인 저는 전혀 모르므로 자세히 설명하겠습니다. 내 소스코드를 운영하고 제공하는 방법.

제 업무 프로세스는 인증코드 보내기 버튼을 눌러 ajax 요청 이벤트를 발생시키고, 휴대폰 번호를 백엔드로 보내고, 백엔드에서 인증코드를 생성하여 휴대폰으로 보내고, 이 인증코드를 에게 돌려주는 것입니다. 인증번호 확인을 위해 프런트로 가주세요.

요청된 PHP 백엔드 코드는 다음과 같습니다

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

?>

이 PHP 백엔드는 공식 데모에서 음성 확인 기능을 삭제하고 SMS 확인만 유지했습니다. 4자리 확인 코드만 유지하므로 프런트 엔드에서 확인 코드를 쉽게 확인할 수 있습니다.

공식 원본 데모 링크는 다음과 같습니다... 링크

index.html

다음 코드는 ajax 요청을 클릭하여 전송하고, 요청한 인증 코드를 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); 
  } 
});

에 저장하여 인증하는 코드입니다. 코드 확인

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

관련 권장 사항:

php는 멋진 4자리 확인 코드를 생성합니다. php SMS 확인 코드 소프트웨어 php SMS 확인 코드 플랫폼 php SMS 확인 코드 전달

PHP를 기반으로 하는 기능은 다음과 같습니다. 제품 완성 시 SMS 발송 실현 php SMS 인증코드 플랫폼 php SMS 인증코드 소프트웨어 php SMS 인증코드 통과

php SMS 인터페이스 케이스 공유

위 내용은 Yunpian.com을 사용하여 PHP에서 SMS 인증 코드 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.