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