亚洲精品久久国产精品37p,亚洲av无码av制服另类专区,午夜直播免费看,玩弄人妻少妇500系列视频,无码人妻久久久一区二区三区

信息通知在當今網(wǎng)絡信息時代是非常重要的一個平臺對客戶的聯(lián)絡手段,對于多元化的網(wǎng)絡社會,不斷出現(xiàn)的新型通知手段越來越多,微信公眾號,語音通知,短信通知,郵件通知等等,對于中小型平臺,本人覺得最經(jīng)濟和實用而且送達率最高的還是最原始的短信通知。那么對于初級技術人員,對于短信通知這個部分肯定要有所了解,包括平臺質(zhì)量,發(fā)送要求和對接。

thinkphp 短信通知驗證碼接入【平臺怎么防止被刷短信】

從使用過的短信平臺來說,第一,阿里云短信,費用最便宜,送達及時,如果你有阿里云賬號,這是首選;第二,網(wǎng)建 sms,不用報備,短信相對價格還可以,送達速度只要找客服轉(zhuǎn)到 106 通道之后基本 5 秒內(nèi),如果不想認證的用戶推薦用網(wǎng)建的,也不用實名,短信也不用報備,對接也非常方便,送達速度和價格都能接受。

那么我就以 thinkphp 為例子,從短信注冊驗證碼開始演示一下怎么對接短信平臺。注冊驗證碼相對來說要復雜一點,這里不得不說一點,怎么來防止被別人盜刷短信呢?因為如果要從嚴謹?shù)慕嵌葋碚f,注冊環(huán)節(jié)是暴露在所有用戶面前的部分,是最有可能被盜刷短信的地方,一般情況下是在發(fā)送之前加一個圖形驗證碼,如果圖形驗證碼和手機號碼判斷正確,那么就能成功發(fā)送;發(fā)送成功,收到驗證碼之后,又必須做兩個判斷,第一,判斷接收的手機號碼是否為輸入的那個號碼,第二,判斷驗證碼是否和發(fā)送時候生成的一致。話不多說,直接上代碼,第一部分,thinkphp 前臺 html 頁面直接嵌入代碼,通過 js 觸發(fā)驗證碼的發(fā)送,以及倒計時重新發(fā)送。


<script type="text/javascript">

var wait = 60;

function time(o) {

if ($("#phone").val() == "") {
layer.msg("請?zhí)顚懯謾C號");
return false;
}

if ($("#code").val() == "") {
layer.msg("請?zhí)顚憟D形驗證碼");
return false;
}
$.post("{:U('Reg/sendPhone')}", { phone: $("#phone").val() ,code: $("#code").val()}, function(msg) {

if(msg.sf==0){
layer.msg("驗證碼已經(jīng)發(fā)送,注意查收");
}else{
layer.msg("發(fā)送失敗");
}
},'json');

okssss(o);
}
var wait = 60;
function okssss(o) {
if (wait == 0) {
$(o).removeAttr("disabled");
$(o).val("免費獲取驗證碼");
wait = 120;
} else {
$(o).attr("disabled", true);
$(o).val("重新發(fā)送(" + wait + ")");
wait--;
setTimeout(function() {
okssss(o);
},
1000);
}
}
</script>

前臺 html 頁面通過{:U('Reg/sendPhone')}方法來提交發(fā)送請求,sendphone 里面要加一個圖形驗證碼的判斷,然后 session 保存此次請求的手機號碼和隨機生成的驗證碼,以備提交表格的時候使用。

sendPhone 方法的代碼如下:

if (IS_POST) {if (IS_POST) {        $phone = $_POST['phone'];  $code = $_POST['code'];if(!$this->check_verify($code)){                $this->ajaxReturn( array('nr'=>'驗證碼錯誤!','sf'=>1) );             } else{         $rand =rand(100000,900000);                session('CHECK_CODE',$rand);        session('PHONE_NUM',$phone);        $info = sendSMS($phone,"你的驗證碼是".$rand.",請勿泄露?!緟R鑫聯(lián)華社區(qū)】");        preg_match('/stat=([\d]{3})/', $info, $matches);        if(is_array($matches) && $matches[1] == 100){            session('check_status',1);        }else{             session('check_status',0);        }     $this->ajaxReturn(array('nr'=>'發(fā)送成功!','sf'=>0)); }}

上面是整個核心發(fā)送流程,那么其中 sendSMS 是短信平臺的 API 發(fā)送接口,不同的平臺可能發(fā)送的方法不一樣,有 post 和 get 一般這兩種方法發(fā)送,然后返回結(jié)果也要根據(jù)不同的短信平臺返回值來判斷是否發(fā)送成功,上面案例中返回值是 100 就證明發(fā)送成功。以下附一段 sendSMS 代碼


function sendSMS($mobile,$content,$mobileids='',$http='http://xxxx 短信平臺 API 接口/'){
$uid = 'xxx';////短信平臺賬號
$pwd = 'xxxx';////短信平臺密鑰
return send($http,$uid,$pwd,$mobile,$content,$mobileids);

}

function send($http,$uid,$pwd,$mobile,$content,$mobileids,$time='',$mid='')
{

$data = array(
'uid'=> $uid, //用戶賬號
'pwd'=>md5($pwd.$uid), //MD5 位 32 密碼,密碼和用戶名拼接字符
'mobile'=>$mobile, //號碼
'content'=>$content, //內(nèi)容
'mobileids'=>$mobileids,
'time'=>$time, //定時發(fā)送
);
$re= postSMS($http,$data); //POST 方式提交
file_put_contents("sms.txt", $re.$content);
return $re;
}

function postSMS($url,$data='')
{
$port="";
$post="";
$row = parse_url($url);
$host = $row['host'];
$port = $row['port'] ? $row['port']:80;
$file = $row['path'];
while (list($k,$v) = each($data))
{
$post .= rawurlencode($k)."=".rawurlencode($v)."&"; //轉(zhuǎn) URL 標準碼
}
$post = substr( $post , 0 , -1 );
$len = strlen($post);
$fp = @fsockopen( $host ,$port, $errno, $errstr, 10);
if (!$fp) {
return "$errstr ($errno)\n";
} else {
$receive = '';
$out = "POST $file HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: Close\r\n";
$out .= "Content-Length: $len\r\n\r\n";
$out .= $post;
fwrite($fp, $out);
while (!feof($fp)) {
$receive .= fgets($fp, 128);
}
fclose($fp);
$receive = explode("\r\n\r\n",$receive);
unset($receive[0]);
return implode("",$receive);
}
}

上面是某短信平臺的 API 發(fā)送接口 demo,特別要注意的是,在發(fā)送的時候有的短信平臺要求的編碼不一樣,一定要按照短信平臺編碼要求來預處理發(fā)送的內(nèi)容,不然發(fā)送出去是亂碼。接下來提交表格的時候,我們就直接判斷短信驗證碼和接收的手機號碼是否和發(fā)送請求的手機號碼一樣就可以了。

綜上所述,短信接口中要注意幾點:1、防止短信被盜刷,最好添加一個圖形驗證碼。2、添加手機號碼是否一致的判斷來避免手機代接收的情況。


評論(0條)

刀客源碼 游客評論