加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php利用云片网实现短信验证码功能的示例代码

发布时间:2021-03-15 18:05:46 所属栏目:PHP教程 来源:网络整理
导读:本文将以php举例,介绍网页短信验证码功能的实现。 在众多的第三方短信服务商中我选择了云片网这个短信服务商,本文也将尽可能利用最简单的方式去帮助广大开发者解决短信验证码功能模块的实现。 再次之前我也参考了大部分网上的博客等,大多数都是把云片网

本文将以php举例,介绍网页短信验证码功能的实现。

在众多的第三方短信服务商中我选择了云片网这个短信服务商,本文也将尽可能利用最简单的方式去帮助广大开发者解决短信验证码功能模块的实现。

再次之前我也参考了大部分网上的博客等,大多数都是把云片网的demo原封不动搬上去,对于我这个前端人员来说,根本毫无头绪,故此我将细致的讲解如何操作,以及献上我的源码。

我的业务流程就是通过点击发送验证码这个按钮,触发一个ajax请求事件,将手机号发送到后台,后台生成验证码发送到手机端,并返回这个验证码给前台进行验证码的验证。

请求的php后端代码如下

post.php

/ 设置验证方式 /
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 '

';print_r($array);

// 发送短信
$data=array('text'=>$text,'apikey'=>$apikey,'mobile'=>$mobile);
$json_data = send($ch,$data);
$array = json_decode($json_data,true);
// echo '

';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,true);

echo $num;

// 发送语音验证码
// $data=array('code'=>$num,'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,'mobile'=>$mobile);
$json_data = notify_send($ch,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,'https://sms.yunpian.com/v2/sms/single_send.json');
curl_setopt($ch,http_build_query($data));
$result = curl_exec($ch);
$error = curl_error($ch);
checkErr($result,$error);
return $result;
}
function tpl_send($ch,'https://sms.yunpian.com/v2/sms/tpl_single_send.json');
curl_setopt($ch,$error);
return $result;
}
function voice_send($ch,'http://voice.yunpian.com/v2/voice/send.json');
curl_setopt($ch,$error);
return $result;
}
function notify_send($ch,'https://voice.yunpian.com/v2/voice/tpl_notify.json');
curl_setopt($ch,$error);
return $result;
}

function checkErr($result,$error) {
if($result === false)
{
echo 'Curl error: ' . $error;
}
else
{
//echo '操作完成没有任何错误';
}
}

?>

这个php后台是我在官方提供的demo上进行修改的,删除了语音验证这个功能,只保留了短信验证,并将返回给前端的数据只保留了四位数字的验证码,方便前端进行验证码的验证。

官方原demo连接如下···链接

index.html

如下代码是进行点击并发送ajax请求,将请求的验证码并保存到localStorage中

进行验证码验证

以上验证码功能讲解完毕,如需源码请点击(源码) 自行下载,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读