/** * 取得授权信息 */ 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; }
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'); } }
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; } }
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; }
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"); }
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"; } }
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); } } }
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 : ''; }
/** * 退款订单发货 */ 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(); }
/** * 购买产品 */ 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; } }
/** * 订单操作日志 */ 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; }