1. 程式人生 > >網易雲信-網易驗證碼簡訊,網易通知類簡訊的使用

網易雲信-網易驗證碼簡訊,網易通知類簡訊的使用

簡訊驗證碼是網站必不可少的,基本每個公司都會用到,之前用的簡訊驗證碼是互易無線的,現在新公司又使用了網易雲信的簡訊驗證,

這些平臺的使用基本都類似,都是基於curl請求

這次我就記錄下我對網易雲信驗證碼的使用過程

一:註冊網易雲信,獲取appkey和appsert


設定配置檔案,我們知道一般配置項都要寫在配置檔案中,方便管理

<?php
    return  array (
            'netEasyMessage' => array(
                  'AppKey' => 'bc07*********f4c805460',
                  'AppSecret' => '658ab****0d9b',
            ),

);


二:把網易雲信的php的包引入

我使用的是thinkphp3.2,直接放在THinkphp/Library/Org/Util/下載,注意修改檔名和類名,加上名稱空間

三:使用過程我只記錄兩種場景

第一種:固定類驗證碼

為什麼說是固定類呢?因為介面提供直接傳送驗證碼,不需要你提供任何引數.不需要生成驗證碼,這種只要呼叫就能自動傳送一個四位的簡訊驗證碼,非常方便,當然也有弊端

弊端:驗證碼位數預設為4位數字,在設定的時間間隔內,同一手機號返回的驗證碼是相同的

使用方法

    public function sendVerify(){
        $phone = I('post.phone');
         $feiMessage = new \Org\Util\Message(C('SHORT_MESSAGE.AppKey'),C('SHORT_MESSAGE.AppSecret'));
         $re = $feiMessage->sendSmsCode($phone);
    }
api中提供的介面傳送驗證碼方法是sendSmsCode();有三個引數,下面是該方法
/**
 * 傳送簡訊驗證碼
* @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做個大量的封裝,使用起來方便多了