说到短信,我们现在在哪个平台上都会收到这样或者那样的短信,今天就把经常用的聚合短信代码贴一下,方便以后开发及时找到:
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;
}
}