久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

php利用云片網(wǎng)實(shí)現(xiàn)短信驗(yàn)證碼功能的示例代碼

這篇文章主要介紹了php利用云片網(wǎng)實(shí)現(xiàn)短信驗(yàn)證碼功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文將以php舉例,介紹網(wǎng)頁短信驗(yàn)證碼功能的實(shí)現(xiàn)。

在眾多的第三方短信服務(wù)商中我選擇了云片網(wǎng)這個短信服務(wù)商,本文也將盡可能利用最簡單的方式去幫助廣大開發(fā)者解決短信驗(yàn)證碼功能模塊的實(shí)現(xiàn)。

再次之前我也參考了大部分網(wǎng)上的博客等,大多數(shù)都是把云片網(wǎng)的demo原封不動搬上去,對于我這個前端人員來說,根本毫無頭緒,故此我將細(xì)致的講解如何操作,以及獻(xiàn)上我的源碼。

我的業(yè)務(wù)流程就是通過點(diǎn)擊發(fā)送驗(yàn)證碼這個按鈕,觸發(fā)一個ajax請求事件,將手機(jī)號發(fā)送到后臺,后臺生成驗(yàn)證碼發(fā)送到手機(jī)端,并返回這個驗(yàn)證碼給前臺進(jìn)行驗(yàn)證碼的驗(yàn)證。

請求的php后端代碼如下

post.php

<?php
header("Content-Type:text/html;charset=utf-8");
$apikey = "xxxxxxxxxxxxxxx"; //修改為您的apikey(https://www.yunpian.com)登錄官網(wǎng)后獲取
$mobile =$_POST['mobile']; //獲取傳入的手機(jī)號
// $mobile = "xxxxxxxxxxx"; //請用自己的手機(jī)號代替
$num = rand(1000,9999);   //隨機(jī)產(chǎn)生四位數(shù)字的驗(yàn)證碼
setcookie('shopCode',$num);
$text="【蒙羊羊】您的驗(yàn)證碼是".$num."。";
$ch = curl_init();

/* 設(shè)置驗(yàn)證方式 */
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/plain;charset=utf-8',
'Content-Type:application/x-www-form-urlencoded', 'charset=utf-8'));
/* 設(shè)置返回結(jié)果為流 */
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

/* 設(shè)置超時時間*/
curl_setopt($ch, CURLOPT_TIMEOUT, 10);

/* 設(shè)置通信方式 */
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>';print_r($array);

// 發(fā)送短信
$data=array('text'=>$text,'apikey'=>$apikey,'mobile'=>$mobile);
$json_data = send($ch,$data);
$array = json_decode($json_data,true);
// echo '<pre>';print_r($array);

// 發(fā)送模板短信
// 需要對value進(jìn)行編碼
$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;


// 發(fā)送語音驗(yàn)證碼
// $data=array('code'=>$num,'apikey'=>$apikey,'mobile'=>$mobile);
// $json_data =voice_send($ch,$data);
// $array = json_decode($json_data,true);
// echo $num;

// 發(fā)送語音通知,務(wù)必要報備好模板
/* 
模板: 課程#name#在#time#開始。 最終發(fā)送結(jié)果: 課程深度學(xué)習(xí)在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 '操作完成沒有任何錯誤';
}
}

?> 

這個php后臺是我在官方提供的demo上進(jìn)行修改的,刪除了語音驗(yàn)證這個功能,只保留了短信驗(yàn)證,并將返回給前端的數(shù)據(jù)只保留了四位數(shù)字的驗(yàn)證碼,方便前端進(jìn)行驗(yàn)證碼的驗(yàn)證。

官方原demo連接如下···鏈接

index.html

【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

這篇文章主要介紹了PHP定義字符串的四種方式,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
下面小編就為大家分享一篇php 替換文章中的圖片路徑,下載圖片到本地服務(wù)器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP給源代碼加密的幾種方法匯總(推薦),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇php打開本地exe程序,js打開本地exe應(yīng)用程序,并傳遞相關(guān)參數(shù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP類的反射來實(shí)現(xiàn)依賴注入過程以及相關(guān)知識點(diǎn)分享,對此有興趣的朋友跟著小編學(xué)習(xí)下吧。
php遍歷一個文件夾內(nèi)的所有文件和文件夾,并刪除所有文件夾和子文件夾下的所有文件的代碼,通過遞歸方式實(shí)現(xiàn)達(dá)到清空一個目錄的效果。本文給大家分享實(shí)例代碼,需要的朋友參考
主站蜘蛛池模板: 精品视频久久久久久 | 日本精品999 | 91精品国产91久久久久久 | 亚洲精品视频一区二区三区 | 亚洲精品一区二三区不卡 | 国产一区二区三区四区 | 国产99视频精品免费播放照片 | 久久久久91| 日韩成人一区 | 亚洲日韩中文字幕一区 | 久久亚洲一区二区三区四区 | 欧美精品一区二区三区在线播放 | 精品福利av导航 | 精品国产一级 | 精品免费国产一区二区三区四区介绍 | 欧美成人不卡 | 亚洲热在线视频 | 国产在线观看不卡一区二区三区 | 网页av| 久久综合一区二区 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | av中文字幕在线观看 | 日韩三级电影在线看 | 久久99精品久久久久久 | 欧美videosex性极品hd | 欧美成人h版在线观看 | 天天摸天天干 | 久久精品青青大伊人av | 欧洲精品视频一区 | 国产日韩精品一区 | 欧美极品在线观看 | www精品美女久久久tv | 国产成人精品免高潮在线观看 | 99婷婷 | 色播久久久 | 99国产精品一区二区三区 | 国产福利91精品一区二区三区 | 日韩在线中文 | 日韩一区二区在线观看视频 | 精品国产精品三级精品av网址 | 在线欧美一区 |