網易雲信-網易驗證碼簡訊,網易通知類簡訊的使用
阿新 • • 發佈:2019-01-31
簡訊驗證碼是網站必不可少的,基本每個公司都會用到,之前用的簡訊驗證碼是互易無線的,現在新公司又使用了網易雲信的簡訊驗證,
這些平臺的使用基本都類似,都是基於curl請求
這次我就記錄下我對網易雲信驗證碼的使用過程
一:註冊網易雲信,獲取appkey和appsert
設定配置檔案,我們知道一般配置項都要寫在配置檔案中,方便管理
<?php return array ( 'netEasyMessage' => array( 'AppKey' => 'bc07*********f4c805460', 'AppSecret' => '658ab****0d9b', ), );
二:把網易雲信的php的包引入
我使用的是thinkphp3.2,直接放在THinkphp/Library/Org/Util/下載,注意修改檔名和類名,加上名稱空間
三:使用過程我只記錄兩種場景
第一種:固定類驗證碼
為什麼說是固定類呢?因為介面提供直接傳送驗證碼,不需要你提供任何引數.不需要生成驗證碼,這種只要呼叫就能自動傳送一個四位的簡訊驗證碼,非常方便,當然也有弊端
弊端:驗證碼位數預設為4位數字,在設定的時間間隔內,同一手機號返回的驗證碼是相同的
使用方法
api中提供的介面傳送驗證碼方法是sendSmsCode();有三個引數,下面是該方法public function sendVerify(){ $phone = I('post.phone'); $feiMessage = new \Org\Util\Message(C('SHORT_MESSAGE.AppKey'),C('SHORT_MESSAGE.AppSecret')); $re = $feiMessage->sendSmsCode($phone); }
/** * 傳送簡訊驗證碼 * @param $mobile [目標手機號] * @param $deviceId [目標裝置號,可選引數] * @return $result [返回array陣列物件] */ public function sendSmsCode($mobile,$deviceId=''){ $url = 'https://api.netease.im/sms/sendcode.action'; $data= array( 'mobile'=> $mobile, 'deviceId' => $deviceId ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; }
驗證也是非常容易的,也是直接呼叫該方法
// 簡訊驗證碼驗證
$feiMessage = new \Org\Util\Message(C('SHORT_MESSAGE.AppKey'),C('SHORT_MESSAGE.AppSecret'));
$re = $feiMessage->verifycode($data['phone'],$data['verify']);
根據返回值再寫邏輯程式碼
第二種:使用簡訊模板來擴充套件自己的驗證碼
簡訊模板就是帶有變數的簡訊,變數部分自定義代替
先新建個通知類模板,如下圖
登稽核通過後會得到模板id,模板內容自定義,注意變數可以有多個
假如使用模板來發送驗證碼,這個過程還是很容易的,直接使用sendSMSTemplate()來發送,這個函式三個引數分別為
/** * 傳送模板簡訊 * @param $templateid [模板編號(由客服配置之後告知開發者)] * @param $mobiles [驗證碼] * @param $params [簡訊引數列表,用於依次填充模板,JSONArray格式,如["xxx","yyy"];對於不包含變數的模板,不填此引數表示模板即簡訊全文內容] * @return $result [返回array陣列物件] */ public function sendSMSTemplate($templateid,$mobiles=array(),$params=array()){ $url = 'https://api.netease.im/sms/sendtemplate.action'; $data= array( 'templateid' => $templateid, 'mobiles' => json_encode($mobiles), 'params' => json_encode($params) ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; }
使用方法
// 簡訊模板傳送
$feiMessage = new \Org\Util\Message(C('SHORT_MESSAGE.AppKey'),C('SHORT_MESSAGE.AppSecret'));
$re = $feiMessage->sendSMSTemplate('模板id',array($phone),$params);
注意:這裡的$params 使用的是jsonArray格式!!!
網易雲信提供的api果然很強大,針對im做個大量的封裝,使用起來方便多了