1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
// 发送短信验证码
require_once ("../user_include.inc");
// 参数取得
$mobile = ParamUtil::getRequestString("mobile");
$sms_type = ParamUtil::getRequestString("sms_type");
if($sms_type != "verify") {
responseNG("非法访问");
}
$ip = @ $_SERVER["REMOTE_ADDR"];
//一个IP一天最多10次,
$param = array();
$param['delete_flg'] = false;
$param['registration_date_MIN'] = date("Y-m-d 00:00:00");
$param['registration_date_MAX'] = date("Y-m-d 23:59:59");
$param['ip'] = $ip;
$ip_sms_list = SmsVerficationDat::getList($param);
if(count($ip_sms_list) >= 10){
//responseNG("短信发送IP次数超限");
}
//一个手机一天最多5次,
unset($param['ip']);
$param['phone'] = $mobile;
$phone_sms_list = SmsVerficationDat::getList($param,'registration_date','desc');
if(count($phone_sms_list) >= 5){
responseNG("手机号发送短信次数超限");
}
if(count($phone_sms_list) > 1){
//一个手机两次间隔不得少于120秒
$last_one_time = $phone_sms_list[0]->registration_date;
if(strtotime(date('Y-m-d H:i:s')) - strtotime($last_one_time) < 120){
responseNG("发送短信过于频发,请稍后重发");
}
//更新过期的短信为已使用
foreach($phone_sms_list as $sms){
$sms->is_used = true;
$sms->save();
}
}
//已经是注册用户,不发送
$tmp_user = UserHandler::getUserByMobile($mobile);
if(!empty($tmp_user)) {
responseNG("已经是注册用户,请直接登陆!");
}
// 发送短信
$code = PasswordMaker::numbers(4);
$sms_verfication_dat = new SmsVerficationDat();
$sms_verfication_dat->phone = $mobile;
$sms_verfication_dat->ip = $ip;
$sms_verfication_dat->code = $code;
$sms_verfication_dat->is_used = false;
$sms_verfication_dat->ok_flg = true;
$sms_verfication_dat->save();
// 需要发送短信的手机号码
$phoneNumbers = [$mobile];
$templateId = 441379;
$smsSign = "考拉在线";
try {
$ssender = new SmsSingleSender(SMS_APP_ID, SMS_APP_KEY);
$params[] = $code;
$result = $ssender->sendWithParam("86", $phoneNumbers[0], $templateId, $params, $smsSign, "", "");
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
echo var_dump($e);
}
//发送验证码给用户
responseOK("短信已发送,请查收。");
function responseNG($message) {
$result = array("status"=>"NG", "message"=>$message);
header("Access-Control-Allow-Origin: *");
print json_encode($result);
exit;
}
function responseOK($message) {
$result = array("status"=>"OK", "message"=>$message);
header("Access-Control-Allow-Origin: *");
print json_encode($result);
exit;
}