對接接口-聚合短信接口對接

說到短信,我們現在在哪個平臺上都會收到這樣或者那樣的短信,今天就把經常用的聚合短信代碼貼一下,方便以後開發及時找到:


function juhecurl($url,$params=false,$ispost=0){
    $httpInfo = array();
    $ch = curl_init();
    curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
    curl_setopt( $ch, CURLOPT_USERAGENT , 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22' );
    curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 30 );
    curl_setopt( $ch, CURLOPT_TIMEOUT , 30);
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
    if( $ispost )
    {
        curl_setopt( $ch , CURLOPT_POST , true );
        curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
        curl_setopt( $ch , CURLOPT_URL , $url );
    }
    else
    {
        if($params){
            curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
        }else{
            curl_setopt( $ch , CURLOPT_URL , $url);
        }
    }
    $response = curl_exec( $ch );
    if ($response === FALSE) {
        //echo "cURL Error: " . curl_error($ch);
        return false;
    }
    $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
    $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );
    curl_close( $ch );
    return $response;
}


//    /**
//     * 發送短信
//     * @param $mobile  手機號碼
//     * @param $code    驗證碼
//     * @return bool    短信發送成功返回true失敗返回false
//     */

function sendSMS($mobile, $code)
{

    $sendUrl = 'http://v.juhe.cn/sms/send'; //短信接口的URL
    $config = F('sms', '', TEMP_PATH);
    //短信內容:公司名/名牌名/產品名
    $smsConf = array(
        'key' => $config['sms_appkey'], //您申請的APPKEY
        'mobile' => $mobile, //接受短信的用戶手機號碼
        'tpl_id' => $config['sms_templateCode'], //您申請的短信模板ID,根據實際情況修改
        'tpl_value' => '#code#=' . $code //您設置的模板變量,根據實際情況修改
    );

    $content = juhecurl($sendUrl, $smsConf, 1); //請求發送短信
    if ($content) {
        $result = json_decode($content, true);
        //如果發送短信驗證碼失敗可在此處打印截止$result參數,一般發送驗證碼失敗原因爲聚合上未配置IP白名單造成的.
        $error_code = $result['error_code'];
        if ($error_code == 0) {
            //狀態爲0,說明短信發送成功
            // 從數據庫中查詢是否有驗證碼
            $data = M('驗證碼記錄表')->where("code = '$code' and add_time > " . (time() - 60 * 60))->find();
            // 沒有就插入驗證碼,供驗證用
            empty($data) && M('驗證碼記錄表')->add(array('mobile' => $mobile, 'code' => $code, 'add_time' => time(), 'session_id' => SESSION_ID));
            return true;
        } else {
            //狀態非0,說明失敗
            $msg = $result['reason'];
            return false;
        }
    } else {
        //返回內容異常,以下可根據業務邏輯自行修改
        return false;
    }

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章