Exemplo n.º 1
0
 /**
  * 插入并发送短讯记录
  */
 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;
 }
Exemplo n.º 2
0
    /**
     * 插入并发送短讯记录
     */
    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' => '短信发送失败!');
        }
    }