예제 #1
0
  /**
   *  取得授权信息
   */
  public function get_code(){
	include C('INTERFACE_PATH')."wxwappay/lib/WxPay.Api.php";
	include C('INTERFACE_PATH')."wxwappay/unit/WxPay.JsApiPay.php";

	//获取openid
	$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.WxPayConfig::APPID.'&secret='.WxPayConfig::APPSECRET.'&code='.$_GET['code'].'&grant_type=authorization_code';
	$json = httpGet($url);
	$array  = json_decode($json,1);
	$openid = $array['openid'];

	//获取用户信息
	$url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$array['access_token'].'&openid='.$openid.'&lang=zh_CN';
	$msg = json_decode(httpGet($url),1);
	$model = M('Member');
	$time = time();
	if($msg){
		//记录微信注册过
		cookie('wx_has',1,60*60*24*365);
		//查询用户是否存在
		$data['openid'] = $openid;
		$member = $model->field('id,logo,email,username,nickname,realname,province,city,district,create_time,salt')->where($data)->find();
		//用户存在则登录
		if($member){
			$sdata['last_login_time'] = time();
			$sdata['last_login_ip'] = $_SERVER['REMOTE_ADDR'];
			$model->where($data)->save($sdata);
			$member_msg = serialize($member);
			$member_msg = authcode($member_msg,'ENCODE');
			session('member_msg',$member_msg);
		}else{
			$parent = $this->parent();
			$region = $this->getcityid($msg['province'],$msg['city']);
			$data['openid'] = $openid;
			$data['nickname'] = $msg['nickname'];
			$data['from'] = 'wap';
			$salt = rand_string(6,-1);
			$data['salt'] = $salt;
			$data['pid'] = $parent ? $parent['id'] : 0;
			$data['pv_id'] = $region['pv_id'];
			$data['ct_id'] = $region['ct_id'];
			$data['province'] = $msg['province'];
			$data['city'] = $msg['city'];
			$data['logo'] = $msg['headimgurl'];
			$data['last_login_time'] = $time;
			$ip = _get_ip();
			$data['last_login_ip'] = $ip;
			$data['create_time'] = $time;
			$member_id = $model->add($data);
			//用户其他信息
			$model = M('Member_msg');
			$data2['member_id'] = $member_id;
			$data2['sex'] = $msg['sex'];
			$model->add($data2);
			//微信登录
			$member['id'] = $member_id;
			$member['logo'] = $msg['headimgurl'];
			$member['salt'] = $salt;
			$member['ip'] = $ip;
			$member['province'] = $msg['province'];
			$member['city'] = $msg['city'];
			$member['district'] = '';
			$member['create_time'] = $time;
			$member_msg = serialize($member);
			$member_msg = authcode($member_msg,'ENCODE');
			session('member_msg',$member_msg);
		}
		login_log($member);

	}

	//跳转回访问页
	//$origin_action = $_GET['origin_action'] ? $_GET['origin_action'] : 'index';
	//$go_url = __APP__.'?wx_login=1';
	$redirectURL = Cookie( '_redirectURL_');
	$go_url = $redirectURL ? $redirectURL : __APP__.'?wx_login=1';
	header("Location: ".$go_url);
	exit;
  }	
예제 #2
0
 public function login()
 {
     if (isset($_POST['ajax'])) {
         $location = WEB_PATH . '/' . ROUTE_M . '/index';
         $message = array("error" => false, 'text' => $location);
         $username = $_POST['username'];
         $password = $_POST['password'];
         $code = strtoupper($_POST['code']);
         if (empty($username)) {
             $message['error'] = true;
             $message['text'] = "请输入用户名!";
             echo json_encode($message);
             exit;
         }
         if (empty($password)) {
             $message['error'] = true;
             $message['text'] = "请输入密码!";
             echo json_encode($message);
             exit;
         }
         $info = $this->db->GetOne("SELECT * FROM `@#_admin` WHERE `username` = '{$username}' LIMIT 1");
         if (!$info) {
             $message['error'] = true;
             $message['text'] = "登录失败,请检查用户名或密码!";
             echo json_encode($message);
             exit;
         }
         if ($info['userpass'] != md5($password)) {
             $message['error'] = true;
             $message['text'] = "登陆失败!";
             echo json_encode($message);
             exit;
         }
         if (!$message['error']) {
             _setcookie("AID", _encrypt($info['uid'], 'ENCODE'));
             _setcookie("ASHELL", _encrypt(md5($info['username'] . $info['userpass']) . md5($_SERVER['HTTP_USER_AGENT'])));
             $this->AdminInfo = $info;
             $time = time();
             $ip = _get_ip();
             $this->db->Query("UPDATE `@#_admin` SET `logintime`='{$time}' WHERE (`uid`='{$info['uid']}')");
             $this->db->Query("UPDATE `@#_admin` SET `loginip`='{$ip}' WHERE (`uid`='{$info['uid']}')");
         }
         echo json_encode($message);
         exit;
     } else {
         include $this->tpl(ROUTE_M, 'user.login');
     }
 }
예제 #3
0
 public function reg_sms()
 {
     $tel = $_POST['tel'];
     if (!validateMobile($tel)) {
         $msg['error_code'] = 8002;
         $msg['notice'] = '手机号码不对!';
         echo json_encode($msg);
         exit;
     }
     $code = str_pad(rand(0, 9999), 4, 0, STR_PAD_LEFT);
     $content = '验证码:' . $code . ',请勿将验证码泄漏给其他人【夜猫圈】';
     $model = M('member_verify');
     $data['tel'] = $tel;
     $v_vo = $model->where($data)->find();
     if ($v_vo['status'] == 1) {
         $msg['error_code'] = 8002;
         $msg['notice'] = '用户已验证';
         echo json_encode($msg);
         exit;
     }
     if ($v_vo) {
         if (time() - $v_vo['update'] < 60) {
             $msg['error_code'] = 8002;
             $msg['notice'] = '请稍后再发';
             echo json_encode($msg);
             exit;
         } else {
             if ($v_vo['m'] == date('m') && $v_vo['d'] == date('d')) {
                 if ($v_vo['sent_num'] > 4) {
                     $msg['error_code'] = 80002;
                     $msg['notice'] = '每天最多发送5次,请明天再来';
                     echo json_encode($msg);
                     exit;
                 }
                 $sdata['sent_num'] = $v_vo['sent_num'] + 1;
                 //今天+1
             } else {
                 $sdata['sent_num'] = 1;
                 //其他重新统计
             }
             $sdata['y'] = date('Y');
             $sdata['m'] = date('m');
             $sdata['d'] = date('d');
             $sdata['code'] = $code;
             $sdata['tel'] = $tel;
             $sdata['msg'] = $content;
             $sdata['status'] = 0;
             $sdata['update_time'] = time();
             $model->where($data)->save($sdata);
             //echo $model->getlastsql();exit;
         }
     } else {
         $sdata['member_id'] = 0;
         $sdata['code'] = $code;
         $sdata['tel'] = $tel;
         $sdata['y'] = date('Y');
         $sdata['m'] = date('m');
         $sdata['d'] = date('d');
         $sdata['sent_num'] = 1;
         $sdata['msg'] = $content;
         $sdata['ip'] = _get_ip();
         $sdata['status'] = 0;
         $sdata['update_time'] = time();
         $v_vo['id'] = $model->add($sdata);
     }
     $result = sent_msm($tel, $content);
     if ($result) {
         $msg['error_code'] = 0;
         $msg['notice'] = '发送成功';
         $msg['id'] = $code;
         echo json_encode($msg);
         exit;
     } else {
         $msg['error_code'] = 2001;
         $msg['notice'] = '发送失败';
         echo json_encode($msg);
         exit;
     }
 }
예제 #4
0
function _get_ip_dizhi(){
	$opts = array(
		'http'=>array(
		'method'=>"GET",
		'timeout'=>5,)
	);		
	$context = stream_context_create($opts); 
	$ipmac=_get_ip();
	//$ipmac = '60.181.30.236';
	if(strpos($ipmac,"127.0.0.") === true)return '';
	$url_ip='http://ip.taobao.com/service/getIpInfo.php?ip='.$ipmac;
	$str = @file_get_contents($url_ip, false, $context);
	if(!$str) return false;
	$json=json_decode($str,true);
	//dump($json);exit;
	if($json['code']==0){
		$ipcity= $json['data']['region'].$json['data']['city'];
		$ip= $ipcity.','.$ipmac;
		$data['province'] = $json['data']['region'];
		$data['city'] = $json['data']['city'];
		$data['district'] = $json['data']['county'];
		$data['ip'] = $ipmac;
	}else{
		$ip="";
		$data['ip'] = false;
	}
	return $data;
}
예제 #5
0
 public function register()
 {
     $config_email = System::load_sys_config("email");
     $config_mobile = System::load_sys_config("mobile");
     $regconfig = System::load_app_config("user_reg_type", "", ROUTE_M);
     if ($this->userinfo) {
         header("Location:" . WEB_PATH . "/member/home/");
         exit;
     }
     if (isset($_POST['submit'])) {
         $name = isset($_POST['name']) ? $_POST['name'] : "";
         $userpassword = isset($_POST['userpassword']) ? $_POST['userpassword'] : "";
         $userpassword2 = isset($_POST['userpassword2']) ? $_POST['userpassword2'] : "";
         if ($name == null or $userpassword == null or $userpassword2 == null) {
             _message("帐号密码不能为空", null, 3);
         }
         if (!(_checkmobile($name) or _checkemail($name))) {
             _message("帐号不是手机或邮箱", null, 3);
         }
         if (strlen($userpassword) < 6 || strlen($userpassword) > 20) {
             _message("密码小于6位或大于20位", null, 3);
         }
         if ($userpassword != $userpassword2) {
             _message("两次密码不一致", null, 3);
         }
         $regtype = null;
         if (_checkmobile($name)) {
             $regtype = 'mobile';
             $cfg_mobile_type = 'cfg_mobile_' . $config_mobile['cfg_mobile_on'];
             $config_mobile = $config_mobile[$cfg_mobile_type];
             if (empty($config_mobile['mid']) && empty($config_email['mpass'])) {
                 _message("系统短信配置不正确!");
             }
         }
         if (_checkemail($name)) {
             $regtype = 'email';
             if (empty($config_email['user']) && empty($config_email['pass'])) {
                 _message("系统邮箱配置不正确!");
             }
         }
         //验证注册类型
         $regtype_arr = System::load_app_config("user_reg_type", "", ROUTE_M);
         $regtypes = 'reg_' . $regtype;
         if (empty($regtype) || $regtype_arr[$regtypes] == 0) {
             if ($regtype == 'email') {
                 _message("网站未开启邮箱注册!", null, 3);
             }
             if ($regtype == 'mobile') {
                 _message("网站未开启手机注册!", null, 3);
             }
             _message("您注册的类型不正确!", null, 3);
         }
         $member = $this->db->GetOne("SELECT * FROM `@#_member` WHERE `{$regtype}` = '{$name}' or `reg_key` = '{$name}' LIMIT 1");
         if (is_array($member) && $member[$regtype] == $name) {
             _message("该账号已被注册!", WEB_PATH . '/register');
         }
         $register_type = 'def';
         if (is_array($member) && $member['reg_key'] == $name) {
             $b_uid = $member['uid'];
             $b_user = $this->db->GetOne("SELECT * FROM `@#_member_band` WHERE `b_uid` = '{$b_uid}' LIMIT 1");
             if (is_array($b_user)) {
                 _message("该账号已被注册!", WEB_PATH . '/register');
             }
             $register_type = 'for';
             //未注册成功在次注册
         }
         $time = time();
         $userpassword = md5($userpassword);
         $codetype = $regtype . 'code';
         $regcode = $this->segment(4);
         $regcode = !empty($regcode) ? $regcode : $_COOKIE['regcode'];
         $decode = _encrypt($regcode, "DECODE");
         $decode = intval($decode);
         //邮箱验证 -1 代表未验证, 1 验证成功 都不等代表等待验证
         if ($register_type == 'def') {
             $ip = _get_ip();
             $day_time = strtotime(date("Y-m-d"));
             $member_reg_num = $this->db->GetNum("SELECT uid FROM `@#_member` where `time` > '{$day_time}' and `user_ip` LIKE '%{$ip}%'");
             if ($member_reg_num >= $regconfig['reg_num']) {
                 _message("您今日注册会员数已经达到上限!");
             }
             $user_ip = _get_ip_dizhi();
             $sql = "INSERT INTO `@#_member`(password,user_ip,img,emailcode,mobilecode,reg_key,yaoqing,time)VALUES('{$userpassword}','{$user_ip}','photo/member.jpg','-1','-1','{$name}','{$decode}','{$time}')";
             $sqlreg = $this->db->Query($sql);
             $check_code = serialize(array("name" => $name, "time" => $time));
             $check_code = _encrypt($check_code, "ENCODE", '', 3600 * 24);
         } elseif ($register_type == 'for') {
             $sqlreg = true;
             $check_code = serialize(array("name" => $name, "time" => $member['time']));
             $check_code = _encrypt($check_code, "ENCODE", '', 3600 * 24);
         }
         if ($sqlreg) {
             header("location:" . WEB_PATH . "/member/user/" . $regtype . "check" . "/" . $check_code);
             exit;
         } else {
             _message("注册失败!", WEB_PATH . '/register');
         }
     }
     $p_c = $this->segment(4);
     if (!empty($p_c)) {
         setcookie("regcode", $p_c, time() + 3600 * 24 * 7);
     }
     $title = "注册" . _cfg("web_name");
     include templates("user", "register");
 }
예제 #6
0
  public function notify_merge(){
	$time = time();
	$alipayNotify = new AlipayNotify($this->alipay_config);
	$verify_result = $alipayNotify->verifyNotify();
	if($verify_result && $_POST['trade_status'] == 'TRADE_SUCCESS') {
	  //商户订单号
	  $out_trade_no = $_POST['out_trade_no'];
	  //支付宝交易号
	  $trade_no = $_POST['trade_no'];
	  //交易状态
	  $trade_status = $_POST['trade_status'];
	  //买家支付宝账号
	  $buyer_email = $_POST['buyer_email'];
	  //$array_ids = explode(',',$_POST['out_trade_no']);
	  $model = M('order');
	  $olist_data['mo_id'] = $out_trade_no;
	  $orderlist = $model->field('id,order_id,type,sourceid,total_fee,total_num,bond,other_pay,member_id,member_name,realname,user_id,title,goods,status')->where($olist_data)->order('id asc')->select();
	  $odmodel = M('order_detail');
	  $rmodel = M('record');
	  $wallet_model = M('member_wallet');
	  $wlmodel = M('member_wallet_log');
	  $model->startTrans();//启用事务
	  if($_POST['extra_common_param']){
		$paramstr = $_POST['extra_common_param'];
		if($paramstr){
			$arr = explode(',',$paramstr);
			foreach($arr as $val){
			  $ar = explode('|',$val);
			  $key = $ar[0];
			  $v = $ar[1];
			  $$key = $v;
			}
		}
	  }
	  //支付渠道
	  if($payment_channel){
		$this->payment_channel = $payment_channel;
	  }
	  foreach($orderlist as $vo){
		/*
		$data['id'] = $id;
		$vo = $model->field('id,order_id,type,sourceid,total_fee,total_num,bond,other_pay,member_id,member_name,realname,user_id,title,goods,status')->where($data)->find();
		*/
		//已支付
		if($vo['status']>0){
		  $model->rollback();
		  $this->update_remark('已支付');
		  echo "success";exit;	
		}
		if($vo['type']==2){
		  //云购直接完成交易
		  $sdata['confirm_time'] = $time;
		}
		//订单状态修改
		$wdata['id'] = $vo['id'];
		$sdata['status'] = 1;
		$sdata['payment_mode'] = '1';
		$sdata['payment_company'] = $this->payment_company;
		$sdata['payment_channel'] = $this->payment_channel;
		$sdata['pay_order_id'] = $trade_no;
		$sdata['pay_time'] = $time;
		$result = $model->where($wdata)->save($sdata);
		if(!$result){
		  $model->rollback();
		  $this->update_remark('订单状态修改失败');
		  echo "success";exit;			
		}
		unset($rdata);
		//买家账户记录
		$rdata['member_id'] = $vo['member_id'];
		$wallet = $wallet_model->where($rdata)->find();
		$rdata['pay_type'] = $pay_type ? $pay_type : 2;
		$rdata['member_name'] = $vo['member_name'];
		$rdata['realname'] = $vo['realname'];
		$rdata['payment_mode'] = '1';
		$rdata['payment_company'] = '支付宝';
		$rdata['order_id'] = $vo['order_id'];
		$rdata['pay_order_id'] = $trade_no;
		$rdata['buyer'] = $buyer_email;
		$rdata['balance'] = $wallet['balance'] ? $wallet['balance'] : 0;
		$rdata['content'] = $_POST['body'] ? $_POST['body'] : '';
		if($vo['bond']){
		    $rdata['content'] .= '共支付:'.$vo['total_fee'].';支付宝支付'.$_POST['total_fee'].';保证金支付'.$vo['bond'];
		}else{
		    $rdata['content'] .= '共支付:'.$vo['total_fee'];
		}
		$rdata['pay'] = $_POST['total_fee'];
		$rdata['create_time'] = $time;
		$rdata['status'] = 1;
		$rdata['pay_time'] = $_POST['gmt_payment'] ? strtotime($_POST['gmt_payment']) : $time;
		$rid = $rmodel->add($rdata);
		if(!$rid){
			  $model->rollback();
			  $this->update_remark('买家账户记录失败');
			  exit;	
		}
		//扣除买家保证金
		if($vo['bond']){
			  $wallet_data2['member_id'] = $vo['member_id'];
			  if($result)$result=$wallet_model->where($wallet_data2)->setDec('frozen',$vo['bond']);
			  //记录变化
			  $wl_data['title'] = '扣除保证金并完成支付,订单号:'.$vo['order_id'];
			  $wl_data['member_id'] = $vo['member_id'];
			  $wl_data['oid'] = $vo['id'];
			  $wl_data['pay_type'] = 3;
			  $wl_data['pay'] = $vo['bond'];
			  $wl_data['content'] = '扣除保证金并完成支付,订单号:<a href="'.C('MEMBER_SITE_URL').'/index.php/Orders/index/order_id/'.$vo['order_id'].'">'.$vo['order_id'].'</a>;扣除保证金:'.$vo['bond'];
			  $wl_data['create_time'] = time();
			  $result=$wlmodel->add($wl_data);
			  if(!$result){
				  $model->rollback();
				  $this->update_remark('保证金操作失败');
				  exit;	
			  }
		}
		//减去冻结资金
		if($vo['other_pay']){
			  $wallet_data2['member_id'] = $vo['member_id'];
			  if($result)$result=$wallet_model->where($wallet_data2)->setDec('frozen',$vo['bond']);
			  //记录变化
			  $wl_data['title'] = '扣除冻结资金并完成支付,订单号:'.$vo['order_id'];
			  $wl_data['member_id'] = $vo['member_id'];
			  $wl_data['oid'] = $vo['id'];
			  $wl_data['pay_type'] = 3;
			  $wl_data['pay'] = $vo['bond'];
			  $wl_data['content'] = '扣除冻结资金并完成支付,订单号:<a href="'.C('MEMBER_SITE_URL').'/index.php/Orders/index/order_id/'.$vo['order_id'].'">'.$vo['order_id'].'</a>;扣除保证金:'.$vo['bond'];
			  $wl_data['create_time'] = time();
			  $result=$wlmodel->add($wl_data);
			  if(!$result){
				  $model->rollback();
				  $this->update_remark('冻结资金操作失败');
				  exit;	
			  }
		}
	    //卖家资金记录
	    if($vo['seller_id']){
	  
	    }
		if($result && $rid){
			//支付成功
			  $log['order_sn'] = $vo['order_sn'];
			  $log['utype'] = 1;
			  $log['user_id'] = $vo['member_id'];
			  $log['user_name'] = $vo['member_name'];
			  $log['msg'] = '支付宝支付';
			  $log['action'] = '完成支付';
			  $log['create_time'] = $time;
			  $log['ip'] = _get_ip();
			  order_log($log);
		  }else{
			$model->rollback();
			echo "success";exit;
			$rstatus = 0;
		}
	  }
	  $model->commit();
	  $rstatus = 1;
	  //记录淘宝传值信息
	  $rrmodel = M('pay_notify');
	  $rrwdata['order_id'] = $_POST['trade_no'];
	  //$rrdata['rid'] = $rid ? $rid : 0;
	  $rrdata['oid'] = $_POST['out_trade_no'];
	  $rrdata['rstatus'] = $rstatus;
	  $rrdata['create_time'] = $time;
	  $rrmodel->where($rrwdata)->save($rrdata);
	  echo "success";
	}else{
	  echo "fail";
	}
  }
예제 #7
0
 public function checked_option()
 {
     $mysql_model = System::load_sys_class('model');
     $title = "投票";
     $curtime = time();
     $option_id = abs(intval($_POST['radio']));
     $vote_id = abs(intval($_POST['vote_id']));
     $clientip = _get_ip();
     $sqlallowguest = '';
     $sqlinterval = 0;
     //查询投票项的规则和规定时间
     $vote_subjects = $mysql_model->GetOne("select * from `@#_vote_subject` where `vote_id`='{$vote_id}'");
     $sqlallowguest = $vote_subjects['vote_allowguest'];
     //1允许游客投票 0不允许游客投票
     $sqlinterval = $vote_subjects['vote_interval'];
     //N天后可再次投票,0 表示此IP地址只能投一次
     if (1 == $sqlallowguest) {
         //判断是否允许游客投票
         $vote_activer = $mysql_model->GetOne("select * from `@#_vote_activer` where `vote_id`='{$vote_id}' and `ip`='{$clientip}' order by subtime desc");
         if (!empty($vote_activer)) {
             //判断该ip用户已经投过票
             //上次投票间隔天数
             $datenum = ($curtime - $vote_activer['subtime']) / (60 * 60 * 24);
             if ($sqlinterval == 0 || $datenum <= $sqlinterval) {
                 //0 表示此IP地址只能投一次
                 _message("您已参加此次投票活动", null, 3);
             } else {
                 //查出新增加的票数
                 $vote_option = $mysql_model->GetList("select * from `@#_vote_option` where  `option_id`='{$option_id}' ");
                 $option_number = $vote_option[0]['option_number'] + 1;
                 $mysql_model->Query("UPDATE `@#_vote_option` SET option_number='{$option_number}' where `vote_id`='{$vote_id}' and `option_id`='{$option_id}' ");
                 $mysql_model->Query("INSERT INTO `@#_vote_activer`(option_id,vote_id,userid,ip,subtime) VALUES('{$option_id}','{$vote_id}','{$this->userid}','{$clientip}','{$curtime}') ");
                 _message("投票成功,感谢您的参与", null, 3);
             }
         } else {
             //查出新增加的票数
             $vote_option = $mysql_model->GetList("select * from `@#_vote_option` where  `option_id`='{$option_id}' ");
             $option_number = $vote_option[0]['option_number'] + 1;
             $mysql_model->Query("UPDATE `@#_vote_option` SET option_number='{$option_number}' where `vote_id`='{$vote_id}' and `option_id`='{$option_id}' ");
             $mysql_model->Query("INSERT INTO `@#_vote_activer`(option_id,vote_id,userid,ip,subtime) VALUES('{$option_id}','{$vote_id}','{$this->userid}','{$clientip}','{$curtime}') ");
             _message("投票成功,感谢您的参与", null, 3);
         }
     } else {
         if ($this->userid == '') {
             _message("您没有投票权限,请登录后投票!", null, 3);
             exit;
         }
         $vote_activer = $mysql_model->GetOne("select * from `@#_vote_activer` where `vote_id`='{$vote_id}' and `userid`='{$this->userid}'");
         if (!empty($vote_activer)) {
             //判断该用户已经投过票
             //上次投票间隔天数
             $datenum = ($curtime - $vote_activer['subtime']) / (60 * 60 * 24);
             if ($sqlinterval == 0 || $datenum <= $sqlinterval) {
                 //0 表示此IP地址只能投一次
                 _message("您已参加此次投票活动", null, 3);
             } else {
                 //查出新增加的票数
                 $vote_option = $mysql_model->GetList("select * from `@#_vote_option` where  `option_id`='{$option_id}' ");
                 $option_number = $vote_option[0]['option_number'] + 1;
                 $mysql_model->Query("UPDATE `@#_vote_option` SET option_number='{$option_number}' where `vote_id`='{$vote_id}' and `option_id`='{$option_id}' ");
                 $mysql_model->Query("INSERT INTO `@#_vote_activer`(option_id,vote_id,userid,ip,subtime) VALUES('{$option_id}','{$vote_id}','{$this->userid}','{$clientip}','{$curtime}') ");
                 _message("投票成功,感谢您的参与", null, 3);
             }
         } else {
             //查出新增加的票数
             $vote_option = $mysql_model->GetList("select * from `@#_vote_option` where  `option_id`='{$option_id}' ");
             $option_number = $vote_option[0]['option_number'] + 1;
             $mysql_model->Query("UPDATE `@#_vote_option` SET option_number='{$option_number}' where `vote_id`='{$vote_id}' and `option_id`='{$option_id}' ");
             $mysql_model->Query("INSERT INTO `@#_vote_activer`(option_id,vote_id,userid,ip,subtime) VALUES('{$option_id}','{$vote_id}','{$this->userid}','{$clientip}','{$curtime}') ");
             _message("投票成功,感谢您的参与", null, 3);
         }
     }
 }
예제 #8
0
function _get_ip_dizhi($ip = null)
{
    $opts = array('http' => array('method' => "GET", 'timeout' => 5));
    $context = stream_context_create($opts);
    if ($ip) {
        $ipmac = $ip;
    } else {
        $ipmac = _get_ip();
        if (strpos($ipmac, "127.0.0.") === true) {
            return '';
        }
    }
    $url_ip = 'http://ip.taobao.com/service/getIpInfo.php?ip=' . $ipmac;
    $str = @file_get_contents($url_ip, false, $context);
    if (!$str) {
        return "";
    }
    $json = json_decode($str, true);
    if ($json['code'] == 0) {
        $json['data']['region'] = addslashes(_htmtocode($json['data']['region']));
        $json['data']['city'] = addslashes(_htmtocode($json['data']['city']));
        $ipcity = $json['data']['region'] . $json['data']['city'];
        $ip = $ipcity . ',' . $ipmac;
    } else {
        $ip = "";
    }
    return $ip;
    // return filter_var($ip, FILTER_VALIDATE_IP) ? $ip : '';
}
예제 #9
0
  /**
   * 退款订单发货
   */
  public function return_item(){
	$model = M('OrderDetail');
	$sn = $_REQUEST['order_sn'];
	$ar = explode('_',$sn);
	$order_sn = $ar[0];
	$od_id = $ar[1];
	$data['a.order_sn'] = $order_sn;
	$count = $model->where($data)->count();
	$data['a.id'] = $od_id-8000;
	$vo = $model->field('a.*,b.actual_paid,b.pay_status,b.discount_fee,b.coupons_fee,b.confirm_time,create_time')->alias('a')->join('`'.C('DB_PREFIX').'order` as b on a.order_id=b.id')->where($data)->find();
	if(!$vo){
	  $this->error('订单不存在');
	}
	//已申请退款或未支付不可申请
	if($vo['refund_status']!=2){
	  if(IS_AJAX){
	    ajaxErrReturn('状态错误');
	  }
	  $this->error('状态错误');
	}
	if($count==1){
	  $vo['pay_amount'] = $vo['actual_paid'];
	  $vo['pay_msg'] = '';
	}else{
	  $info = refund_pay($vo);
	  $vo['pay_amount'] = $info['pay_amount'];
	  $vo['pay_msg'] = $info['msg'];
	}
	//快递公司
	$s_model = M('Shipping');
    if(IS_POST){
	  $d_model = M('OrderDelivery');
	  $d_data['order_sn'] = $vo['order_sn'];
	  $d_data['item_id'] = $vo['id'];
	  $d_data['item_name'] = $vo['product_name'];
	  $d_data['type'] = 2;
	  $d_data['shipping_id'] = $_POST['shipping_id'];
	  if($_POST['shipping_id']==0){
	    $d_data['shipping_company'] = $_POST['shipping_company'];
	  }else{
	    $s_data['id'] = $_POST['shipping_id'];
		$shipping = $s_model->where($s_data)->find();
		$d_data['shipping_company'] = $shipping['name'];
		$d_data['shipping_code'] = $shipping['code'];
	  }
	  $d_data['shipping_no'] = $_POST['shipping_no'];
	  $d_data['memo'] = $_POST['memo'];
	  $delivery_id = $d_model->add($d_data);
	  $wdata['id'] = $vo['id'];
	  $sdata['refund_status'] = 4;
	  $sdata['delivery_id'] = $delivery_id;
	  //$model->startTrans();//启用事务
	  $result = $model->where($wdata)->save($sdata);
	  if(!$result){
		ajaxErrReturn('提交失败');
	  }
	  //记录订单日志
	  $ot_data['order_sn'] = $vo['order_sn'];
	  $ot_data['utype'] = 2;
	  $ot_data['user_id'] = $this->user['id'];
	  $ot_data['user_name'] = $this->user['username'];
	  $ot_data['msg'] = '商品:'.$vo['product_name'].' '.$vo['spec'].' * '.$vo['num'].' 退款金额:'.$vo['pay_amount'];
	  $ot_data['action'] = '退款快递填写';
	  $ot_data['create_time'] = time();
	  $ot_data['issystem'] = 0;
	  $ot_data['ip'] = _get_ip();
	  order_log($ot_data);
	  $msg['notice'] = '提交成功';
	  $msg['gourl'] = U('Order/index',array('order_sn'=>$vo['order_sn']));
	  ajaxSucReturn($msg);
	}
	$s_data['status'] = 1;
	$shippings = $s_model->where($s_data)->select();
	$this->assign('shippings',$shippings);
	$this->assign('vo',$vo);
	$this->assign('headerTitle','退款快递填写');
	$this->assign('headerKeywords','退款快递填写');
	$this->assign('headerDescription','退款快递填写');
	$this->assign('wx_title','退款快递填写');
	$this->assign('wx_desc','微信分享');
	$this->display();
  }
예제 #10
0
 /**
  * 购买产品
  */
 function buy_pay()
 {
     $s_id = $_POST['s_id'] = 1;
     $s_num = $_POST['s_num'] = 100;
     $member_id = 3;
     $member_name = '8yong8';
     $realname = '阿勇';
     $address_id = 7;
     $model = M('shoplist');
     $data['id'] = $s_id;
     $vo = $model->field('id,name,lit_pic,yunjiage,qishu,status')->where($data)->find();
     if ($vo['status'] == 2) {
         $this->error('此商品交易已完成');
     }
     if ($vo['status'] == 0) {
         $this->error('此商品交易关闭');
     }
     $time = time();
     $ip = _get_ip();
     $model->startTrans();
     //启用事务
     //获得云码
     $codes = pay_get_shop_codes($s_num, $vo['id']);
     if ($codes['code_len'] < $s_num) {
         $s_num = $codes['code_len'];
     }
     if ($codes == false || $codes['code_len'] == 0) {
         $this->error('下单失败');
         exit;
     }
     $pay = $vo['yunjiage'] * $s_num;
     $mwmodel = M('member_wallet');
     $mw_data['member_id'] = $member_id;
     $mw_vo = $mwmodel->where($mw_data)->find();
     if ($mw_vo['balance'] < $pay) {
         $this->error('余额不够');
     }
     $mamodel = M('member_address');
     $ma_data['id'] = $address_id;
     $address = $mamodel->where($ma_data)->find();
     //生成订单
     $omodel = M('order');
     $o_data['type'] = 2;
     $o_data['source'] = 'Shoplist';
     $o_data['sourceid'] = $s_id;
     $o_data['title'] = '购买' . $vo['name'];
     $goods[] = $vo;
     $o_data['goods'] = serialize($goods);
     $order_id = build_order_no($member_id);
     $o_data['order_id'] = $order_id;
     $o_data['payment_mode'] = 1;
     $o_data['payment_company'] = '网站余额';
     $o_data['pay_order_id'] = $order_id;
     $o_data['total_price'] = $pay;
     $o_data['total_num'] = $s_num;
     $o_data['member_id'] = $member_id;
     $o_data['member_name'] = $member_name;
     $o_data['realname'] = $realname;
     $o_data['address_id'] = $address_id;
     $o_data['recipient'] = $address['name'];
     $o_data['address'] = $address['address'];
     $o_data['postcode'] = $address['postcode'];
     $o_data['tel'] = $address['mobile'];
     $o_data['remark'] = $_POST['remark'] ? $_POST['remark'] : '';
     $o_data['ip'] = $ip;
     $o_data['create_time'] = $time;
     $o_data['pay_time'] = $time;
     $o_data['order_time'] = time() + 3600 * 24;
     $o_data['status'] = 1;
     $oid = $omodel->add($o_data);
     //echo $omodel->getlastsql();exit;
     if (!$oid) {
         $model->rollback();
         $this->error('订单生成失败');
         exit;
     }
     //扣除余额
     $result = $mwmodel->where($mw_data)->setDec('balance', $pay);
     if ($result) {
         //记录扣钱
         $rmodel = M('record');
         $rdata['member_id'] = $member_id;
         $rdata['member_name'] = $member_name;
         $rdata['realname'] = $realname;
         $rdata['payment_mode'] = 1;
         $rdata['payment_company'] = '网站余额';
         $rdata['pay_order_id'] = build_order_no($member_id);
         $rdata['order_id'] = $order_id;
         $rdata['pay_type'] = 2;
         $rdata['pay'] = $pay - 2 * $pay;
         $rdata['balance'] = $mw_vo['balance'] - $pay;
         $rdata['buyer'] = $member_name;
         $rdata['buyer'] = $member_name;
         $rdata['ip'] = $ip;
         $rdata['content'] = '购买' . $vo['name'] . '云码' . $s_num . '个';
         $rdata['create_time'] = $time;
         $rdata['pay_time'] = $time;
         $rdata['status'] = 1;
         $rid = $rmodel->add($rdata);
         if (!$rid) {
             $model->rollback();
             $this->error('财务订单生成失败');
             exit;
         }
         //记录购买云码
         $mgrmodel = M('go_record');
         $mgr_data['member_id'] = $member_id;
         $mgr_data['member_name'] = $member_name;
         $mgr_data['order_id'] = $oid;
         $mgr_data['shopid'] = $vo['id'];
         $mgr_data['shopname'] = $vo['name'];
         $mgr_data['shopqishu'] = $vo['qishu'];
         $mgr_data['goucode'] = implode(',', $codes['codes']);
         $mgr_data['code_num'] = $codes['code_len'];
         $timearr = explode(' ', microtime());
         $mgr_data['ms'] = substr($timearr[0], 2, 3);
         $mgr_data['create_time'] = $timearr[1];
         //$mgr_data['create_time'] = time();
         $result = $mgrmodel->add($mgr_data);
         //$model->rollback();
         //echo $mgrmodel->getlastsql();exit;
         if (!$result) {
             $model->rollback();
             $this->error('云码生成失败');
             exit;
         }
     }
     //修改商品信息
     $result = $model->where($data)->setInc('canyurenshu', $s_num);
     if ($result) {
         $result = $model->where($data)->setDec('shenyurenshu', $s_num);
     }
     if ($result) {
         $model->commit();
         echo 'ok';
     } else {
         $model->rollback();
         $this->error('新增失败3');
         exit;
     }
 }
예제 #11
0
 /**
  * 订单操作日志
  */
 protected function log_track($order_sn, $msg)
 {
     //添加
     if (!is_array($msg)) {
         $data['action'] = $msg;
     } else {
         $data = $msg;
     }
     $data['order_sn'] = $order_sn;
     $data['ip'] = _get_ip();
     $data['create_time'] = time();
     $data['user_id'] = $_SESSION[C('USER_AUTH_KEY')];
     $data['user_name'] = $_SESSION['nickname'];
     $this->otdb->add($data);
     //echo $this->otdb->getlastsql();exit;
 }