/** * 插入并发送短讯记录 */ public function sendSMS($smsSrc, $phoneNumber, $content, $smsFunc, $smsCode) { $rv = array('status' => -1); $USER = session('WST_USER'); $userId = empty($USER) ? 0 : $USER['userId']; $m = M('log_sms'); //检测是否超过每日短信发送数 $date = date('Y-m-d'); $rsCount = $m->where('smsPhoneNumber=%s and createTime>"%s 00:00:00" and createTime<="%s 23:59:59"', array($phoneNumber, $date, $date))->getField("count(smsId) counts"); if ($rsCount < (int) $GLOBALS['CONFIG']['smsLimit']) { $code = WSTSendSMS($phoneNumber, $content); $data = array(); $data['smsSrc'] = $smsSrc; $data['smsUserId'] = $userId; $data['smsPhoneNumber'] = $phoneNumber; $data['smsContent'] = $content; $data['smsReturnCode'] = $code; $data['smsCode'] = $smsCode; $data['smsFunc'] = $smsFunc; $data['createTime'] = date('Y-m-d H:i:s'); $m->add($data); $rv['status'] = $code == 1 ? 1 : -1; } else { $rv = array('status' => -2); } return $rv; }
/** * 插入并发送短讯记录 */ public function sendSMS($smsSrc, $phoneNumber, $content, $smsFunc, $verfyCode) { $USER = session('WST_USER'); $userId = empty($USER) ? 0 : $USER['userId']; $m = M('log_sms'); $ip = get_client_ip(); //检测短信验证码验证是否正确 if ($GLOBALS['CONFIG']['smsVerfy'] == 1) { $smsverfy = I('smsVerfy'); $verify = new \Think\Verify(array('reset' => false)); $rs = $verify->check($smsverfy); if (!$rs) { return array('status' => -29999, 'msg' => '验证码不正确!'); } } //检测是否超过每日短信发送数 $date = date('Y-m-d'); $sql = 'select count(smsId) counts,max(createTime) createTime from __PREFIX__log_sms where smsPhoneNumber=' . $phoneNumber . ' and createTime>"' . $date . ' 00:00:00" and createTime<="' . $date . ' 23:59:59"'; $smsRs = $this->queryRow($sql); if ($smsRs['counts'] > (int) $GLOBALS['CONFIG']['smsLimit']) { return array('status' => -20000, 'msg' => '请勿频繁发送短信验证!'); } if ($smsRs['createTime'] != '' && time() - strtotime($smsRs['createTime']) < 120) { return array('status' => -20001, 'msg' => '请勿频繁发送短信验证!'); } //检测IP是否超过发短信次数 $sql = 'select count(smsId) counts,max(createTime) createTime from __PREFIX__log_sms where smsIP="' . $ip . '" and createTime>"' . $date . ' 00:00:00" and createTime<="' . $date . ' 23:59:59"'; $ipRs = $this->queryRow($sql); if ($ipRs['counts'] > (int) $GLOBALS['CONFIG']['smsLimit']) { return array('status' => -20003, 'msg' => '请勿频繁发送短信验证!'); } if ($ipRs['createTime'] != '' && time() - strtotime($ipRs['createTime']) < 120) { return array('status' => -20004, 'msg' => '请勿频繁发送短信验证!'); } $code = WSTSendSMS($phoneNumber, $content); $data = array(); $data['smsSrc'] = $smsSrc; $data['smsUserId'] = $userId; $data['smsPhoneNumber'] = $phoneNumber; $data['smsContent'] = $content; $data['smsReturnCode'] = $code; $data['smsCode'] = $verfyCode; $data['smsIP'] = $ip; $data['smsFunc'] = $smsFunc; $data['createTime'] = date('Y-m-d H:i:s'); $m->add($data); $xml = simplexml_load_string($code); if ($xml->State == 1) { return array('status' => 1, 'msg' => '短信发送成功!'); } else { return array('status' => -1, 'msg' => '短信发送失败!'); } }