public function appoint($user_id, $name, &$return_order_no) { $order_no = build_order_no(); $order = array('serial_number' => $order_no, 'status' => ORDER_STATUS_FIRST, 'user_id' => $user_id, 'create_time' => date('Y-m-d H:i:s')); $order_id = $this->insert_order($order); $user_arr['name'] = $name; $this->user->update_user($user_id, $user_arr); $return_order_no = $order_no; return $order_id; }
/** * 转账操作 * */ public function index() { if ($this->isPost()) { $transfer['username'] = text($_POST['user']); $user = M('members')->field('id, user_name')->where("user_name='{$transfer['username']}'")->find(); if (!$user['id']) { $this->error('用户不存在'); } $user_qdd = M('escrow_account')->field('qdd_marked')->where("uid={$user['id']}")->find(); if (!$user_qdd['qdd_marked']) { $this->error('对方没有绑定托管账号'); } $transfer['money'] = floatval($_POST['money']); if ($transfer['money'] <= 0.0) { $this->error('资金必须大于0.00元'); } $transfer['remark'] = text($_POST['remark']); if (!trim($transfer['remark'])) { $this->error('备注不能为空'); } $transfer['uid'] = $user['id']; $transfer['orders'] = 'zz' . build_order_no(); $transfer['operator'] = session('admin_user_name'); $transfer['operator_id'] = $this->admin_id; $transfer['add_time'] = time(); $transfer['add_ip'] = get_client_ip(); if ($id = M('transfer')->add($transfer)) { $loanconfig = FS("Webconfig/loanconfig"); import("ORG.Loan.Escrow"); $loan = new Escrow(); $loanList[] = $loan->loanJsonList($loanconfig['pfmmm'], $user_qdd['qdd_marked'], $transfer['orders'], 'zhuanzhang', $transfer['money'], '', '转账', $transfer['remark']); $loanJsonList = json_encode($loanList); $returnURL = 'http://' . $_SERVER['HTTP_HOST'] . U("returnurl"); $notifyURL = 'http://' . $_SERVER['HTTP_HOST'] . U("Home/Notify/transfer"); $data = $loan->transfer($loanJsonList, $returnURL, $notifyURL, 3, 1, 2, 1); $form = $loan->setForm($data, 'transfer'); echo $form; exit; //$this->success("转账成功!"); } else { $this->error('转账失败'); } } else { $user_name = isset($_GET['user_name']) ? urldecode($_GET['user_name']) : ''; $this->assign('user_name', $user_name); $this->display(); } }
public function balance_pay() { $time = time(); if (!$_REQUEST['order_id'] && $_REQUEST['mo_id']) { ajaxErrReturn('订单号必须'); } $model = M('Order'); $od_model = M('OrderDetail'); if ($_REQUEST['order_id']) { $data['order_id'] = $_REQUEST['order_id']; $out_trade_no = $_REQUEST['order_id']; } if ($_GET['mo_id']) { $data['mo_id'] = $_REQUEST['mo_id']; $out_trade_no = $_REQUEST['mo_id']; } $data['member_id'] = $this->user['id']; $orders = $model->field('id,title,order_id,actual_paid,status')->where($data)->select(); if (!$orders) { ajaxErrReturn('订单不存在'); } $total_fee = 0; foreach ($orders as $vo) { $total_fee += $vo['actual_paid']; } if ($this->user['balance'] < $total_fee) { ajaxErrReturn('可用余额不足'); } $po_model = M('PayNotify'); foreach ($orders as $vo) { $po_data['order_id'] = $vo['order_id']; $po_data['out_trade_no'] = $vo['order_id']; $po_data['info'] = serialize($vo); $po_data['notice'] = '支付回调'; $po_data['create_time'] = $time; $po_model->add($po_data); } $model->startTrans(); //启用事务 foreach ($orders as $vo) { $order_id = $vo['id']; if (!$vo) { $this->pay_notice($order_id, '订单不存在'); ajaxErrReturn('订单不存在!'); } if ($vo['order_time'] && time() > $vo['order_time']) { $this->pay_notice($order_id, '订单已过期'); ajaxErrReturn('订单已过期!'); } if ($vo['pay_status'] > 0) { $this->pay_notice($order_id, '已支付!'); ajaxErrReturn('已支付!'); } $trade_no = build_order_no($this->user['id']); //$goods = unserialize($vo['goods']); $od_data['order_id'] = $vo['id']; $goods = $od_model->field('product_name')->where($od_data)->select(); $subject = '购买商品:'; $body = '购买商品'; foreach ($goods as $g) { $subject .= $g['product_name'] . ','; $body .= $g['product_name'] . ','; } $subject = substr($subject, 0, -1); $body = substr($subject, 0, -1); $body .= ',共消费' . $total_fee; //订单状态修改 $wdata['id'] = $vo['id']; $sdata['pay_status'] = 1; $sdata['order_id_third'] = $trade_no; $sdata['pay_time'] = $time; $result = $model->where($wdata)->save($sdata); if (!$result) { $model->rollback(); $this->pay_notice($order_id, '订单状态修改失败'); ajaxErrReturn('支付失败!'); } //修改余额 $wallet_data['member_id'] = $vo['member_id']; $result = $wallet_model->where($wallet_data)->setDec('balance', $vo['actual_paid']); if (!$result) { $model->rollback(); $this->pay_notice($order_id, '用户账号余额修改失败'); ajaxErrReturn('支付失败!'); } $content = '共支付' . $total_fee; //记录买家财务账单 unset($rdata); $rmodel = M('Record'); $rdata['member_id'] = $vo['member_id']; $wallet = $wallet_model->where($wallet_data)->find(); $rdata['member_name'] = $vo['member_name']; $rdata['realname'] = $vo['realname']; $rdata['order_id'] = $vo['order_id']; $rdata['pay_type'] = 2; $rdata['payment_mode'] = 1; $rdata['payment_company'] = $this->configs['company_name']; $rdata['payment_channel'] = '网站余额'; $rdata['pay_order_sn'] = $trade_no; $rdata['buyer'] = $vo['member_name']; $rdata['content'] = $content; $rdata['balance'] = $wallet['balance'] ? $wallet['balance'] : 0; $rdata['pay'] = $vo['actual_paid']; $rdata['create_time'] = $time; $rdata['status'] = 1; $rdata['pay_time'] = time(); if ($result) { $result = $rmodel->add($rdata); } else { $model->rollback(); $this->pay_notice($order_id, '买家财务账单记录失败'); ajaxErrReturn('支付失败!'); } if (!$result) { $model->rollback(); ajaxErrReturn('支付失败!'); } } if ($result) { $model->commit(); $msg['notice'] = '完成支付'; ajaxSucReturn($msg); } else { $model->rollback(); ajaxErrReturn('支付失败!'); } }
public function makeorder() { if (IS_POST) { $order_db = M('Order'); $addrisk_db = M('Addrisk'); $car_db = M('Car'); $setting_db = M('Setting'); $oid = $_POST['oid']; $omap['oid'] = $oid; $oinfo = $order_db->table(C('DB_PREFIX') . 'order O')->join(C('DB_PREFIX') . 'Users U on O.userid = U.userid')->join(C('DB_PREFIX') . 'Users CU on O.cuserid = CU.userid')->join(C('DB_PREFIX') . 'Province P on U.province = P.code')->join(C('DB_PREFIX') . 'City CT on U.city = CT.code')->join(C('DB_PREFIX') . 'Car C on O.cid = C.cid')->join(C('DB_PREFIX') . 'Carbrand CB on C.cbrand = CB.brandid')->join(C('DB_PREFIX') . 'Carmodel CM on C.cmodel = CM.modelid')->field("O.*,C.cppro,C.cpzm,C.cpnum,U.name as username, U.openid as uopenid, U.tel as usertel,CU.name as cusername,CU.tel as cusertel,P.name as provincename,CT.name as cityname,CB.brandname,CM.name as modelname")->where($omap)->find(); $num = diffBetweenTwoDays($oinfo['bgtime'], $oinfo['endtime']); if ($_POST['ostatus'] == '1' and $oinfo['status'] == '0') { if ($oinfo['is_swap'] == '1') { $cid = $oinfo['swapcid']; $hjcmap['cid'] = $cid; $jhcinfo = $car_db->where($hjcmap)->find(); $setmap['key'] = 'SAFE_SET'; $setinfo = $setting_db->where($setmap)->find(); if ($setinfo['value']) { $safexs = $setinfo['value'] / 100; } else { $safexs = 20 / 100; } $setminmap['key'] = 'SAFE_MIN'; $setmininfo = $setting_db->where($setminmap)->find(); if ($setmininfo['value']) { $safemin = $setmininfo['value']; } else { $safemin = 20; } $setmaxmap['key'] = 'SAFE_MAX'; $setmaxinfo = $setting_db->where($setmaxmap)->find(); if ($setmaxinfo['value']) { $safemax = $setmaxinfo['value']; } else { $safemax = 60; } $sprice = floor($jhcinfo['shareprice'] * $safexs); if ($sprice < $safemin) { $sprice = $safemin; } if ($sprice > $safemax) { $sprice = $safemax; } $ot_safe = $_POST['ot_safe']; $adriskprice = 0; $ots = ""; foreach ($ot_safe as $k => $v) { $armap['id'] = $v; $arinfo = $addrisk_db->where($armap)->find(); if ($arinfo['ptype'] == '0') { $adriskprice += $arinfo['price'] * $num; } else { $adriskprice += $arinfo['price']; } $ots .= $v; if ($ot_safe[$k + 1]) { $ots .= ","; } } $depsetmap['key'] = 'DEPOSIT_SET'; $depsetinfo = $setting_db->where($depsetmap)->find(); if ($depsetinfo['value']) { $depset = $depsetinfo['value']; } else { $depset = 5; } $deposit = $jhcinfo['shareprice'] * ($num + $depset) + $sprice; $oprice = $jhcinfo['shareprice'] * $num; $cprice = $oprice + $sprice + $adriskprice; $data['is_swap'] = '1'; $data['swapcid'] = $oinfo['cid']; $data['order_sn'] = build_order_no(); $data['o_price'] = $oprice; $data['s_price'] = $sprice; $data['ot_safe'] = $ots; $data['c_price'] = $cprice; $data['cid'] = $jhcinfo['cid']; $data['cuserid'] = $jhcinfo['userid']; $data['userid'] = session('userid'); $data['bgtime'] = $oinfo['bgtime']; $data['endtime'] = $oinfo['endtime']; $data['getaddress'] = $jhcinfo['jcadress']; $data['ctime'] = time(); $data['agtime'] = time(); $data['gethour'] = $oinfo['gethour']; $data['status'] = '1'; $data['deposit'] = $deposit; $res = $order_db->add($data); } $datas['status'] = '1'; $datas['agtime'] = time(); $res = $order_db->where($omap)->save($datas); if ($res) { $jycontent1 = "您已接受" . $oinfo['provincename'] . $oinfo['cityname'] . $oinfo['username'] . "【" . $oinfo['bgtime'] . "-" . $oinfo['endtime'] . "】的换驾订单;等待" . $oinfo['username'] . "先生支付押金。"; sendmsg($oinfo['cusertel'], $jycontent1); $jycontent2 = $oinfo['cusername'] . "先生(" . $oinfo['cusertel'] . ")已接受您对" . $oinfo['modelname'] . $oinfo['brandname'] . "(" . $oinfo['cppro'] . $oinfo['cpzm'] . substr_replace($oinfo['cpnum'], '****', 0, 4) . ")的换驾订单。取车时间为" . $oinfo['bgtime'] . " " . $oinfo['gethour'] . ":00,请在2小时内登录网站支付换驾押金。否则订单将被取消。您可以采用共享豆(共享豆不足可充值)、信用卡(预授权)、储值卡进行支付。"; sendmsg($oinfo['usertel'], $jycontent2); $sysmsg_db = D('Sysmsg'); $sysmsg_db->sendmsg($oinfo['userid'], "车主已同意您的换驾申请,请查看。", '2', '0', $oinfo['oid']); //模版消息推送 if ($oinfo['uopenid']) { @import("Wxapi.Wxpuch", APP_PATH, '.class.php'); $pushwx = new \Wxpuch(); $openid = $oinfo['uopenid']; $template_id = "alI51h9F3yYcJ9FQ6_z_-HTVcvKgjmmJi3ozFcGFRSY"; $url = "http://www.52huanjia.com/clyy/weixin/index/vieworder/oid/" . $oid; $data = array('first' => array('value' => urlencode("您好,你的换驾申请车主已接受,请查看处理。"), 'color' => "#000000"), 'orderNo' => array('value' => urlencode($oinfo['order_sn']), 'color' => '#000000'), 'orderStatus' => array('value' => urlencode('车主已接受订单,待支付。'), 'color' => '#000000'), 'takeCarAt' => array('value' => urlencode($oinfo['bgtime']), 'color' => '#000000'), 'returnCarAt' => array('value' => urlencode($oinfo['endtime']), 'color' => '#000000'), 'carType' => array('value' => urlencode($oinfo['modelname'] . $oinfo['brandname'] . "(" . $oinfo['cppro'] . $oinfo['cpzm'] . substr_replace($oinfo['cpnum'], '****', 0, 4) . ")"), 'color' => '#000000'), 'remark' => array('value' => urlencode('车主已接受您的订单申请,请在两小时内完成订单支付。微信端支持共享豆支付,如需银联支付需登录官方网站进行支付。'), 'color' => '#000000')); $pushwx->doSend($openid, $template_id, $url, $data); } } } else { $data['status'] = '2'; $data['rfreason'] = $_POST['rfreason']; $res = $order_db->where($omap)->save($data); if ($res) { $jycontent1 = "您已经拒绝" . $oinfo['provincename'] . $oinfo['cityname'] . $oinfo['username'] . "先生的换驾订单;订单已取消。"; sendmsg($oinfo['cusertel'], $jycontent1); $jycontent2 = "非常抱歉,车主" . $oinfo['cusername'] . "先生未能接受您的换驾订单,请换个车再试试;也可在网站或微信里提交用车需求,让系统帮助您找车。"; sendmsg($oinfo['usertel'], $jycontent2); $sysmsg_db = D('Sysmsg'); $sysmsg_db->sendmsg($oinfo['userid'], "车主拒绝了您的换驾申请,请查看。", '2', '0', $oinfo['oid']); //模版消息推送 if ($oinfo['uopenid']) { @import("Wxapi.Wxpuch", APP_PATH, '.class.php'); $pushwx = new \Wxpuch(); $openid = $oinfo['uopenid']; $template_id = "alI51h9F3yYcJ9FQ6_z_-HTVcvKgjmmJi3ozFcGFRSY"; $url = "http://www.52huanjia.com/clyy/weixin/index/vieworder/oid/" . $oid; $data = array('first' => array('value' => urlencode("您好,你的换驾申请车主已拒绝,请查看。"), 'color' => "#000000"), 'orderNo' => array('value' => urlencode($oinfo['order_sn']), 'color' => '#000000'), 'orderStatus' => array('value' => urlencode('车主已拒绝订单,订单取消。'), 'color' => '#000000'), 'takeCarAt' => array('value' => urlencode($oinfo['bgtime']), 'color' => '#000000'), 'returnCarAt' => array('value' => urlencode($oinfo['endtime']), 'color' => '#000000'), 'carType' => array('value' => urlencode($oinfo['modelname'] . $oinfo['brandname'] . "(" . $oinfo['cppro'] . $oinfo['cpzm'] . substr_replace($oinfo['cpnum'], '****', 0, 4) . ")"), 'color' => '#000000'), 'remark' => array('value' => urlencode('车主已拒绝您的订单申请,请换个车再试试;也可在网站或微信里提交用车需求,让系统帮助您找车。'), 'color' => '#000000')); $pushwx->doSend($openid, $template_id, $url, $data); } } } if ($res) { $this->redirect('Index/morder', array('oid' => $oid)); } } }
/** * 余额支付 */ public function balance_pay(){ if(!$_POST['mo_sn'] && !$_POST['order_sn']){ ajaxErrReturn('订单不存在'); } if($this->user['password']!=md5($_POST['password'].$this->user['salt'].$this->user['salt'][1])){ ajaxErrReturn('密码错误'); } $model = M('Order'); $od_model = M('OrderDetail'); $wallet_model = M('MemberWallet'); $time = time(); //$trade_no = build_order_no($this->user['id']); $model->startTrans();//启用事务 if($_POST['mo_sn']){ $data['mo_sn'] = $_POST['mo_sn']; }else{ $data['order_sn'] = $_POST['order_sn']; } $data['member_id'] = $this->user['id']; //$data['pay_status'] = 0; $list = $model->field('id,seller_id,bond,type,actual_paid,order_sn,order_time,member_id,member_name,pay_status,status')->where($data)->select(); if(!$list){ ajaxErrReturn('订单不存在'); } foreach($list as $vo){ $total_fee += $vo['actual_paid']; } if($this->user['balance']<$total_fee){ ajaxErrReturn('可用余额不足'); } $totalprice = 0 ; foreach($list as $vo){ $totalprice += $vo['actual_paid']; if(!$vo){ ajaxErrReturn($vo['order_sn'].'订单不存在'); } if($vo['order_time'] && time()>$vo['order_time']){ ajaxErrReturn($vo['order_sn'].'订单已过期'); } if($vo['type']>2){ ajaxErrReturn($vo['order_sn'].'订单有误'); } if($vo['pay_status']>0){ ajaxErrReturn($vo['order_sn'].'订单已支付'); } //$time = time(); $trade_no = build_order_no($this->user['id']); $subject = '购买商品:'; $body = '购买商品'; //订单状态修改 $wdata['id'] = $vo['id']; $sdata['payment_company'] = '网站余额'; $sdata['payment_channel'] = 'wxwap'; $sdata['pay_status'] = 1; $sdata['pay_order_id'] = $trade_no; $sdata['pay_time'] = $time; $result = $model->where($wdata)->save($sdata); if(!$result){ $model->rollback(); ajaxErrReturn('支付失败'); } //修改余额 $wallet_data['member_id'] = $vo['member_id']; $result = $wallet_model->where($wallet_data)->setDec('balance',$vo['actual_paid']); if(!$result){ $model->rollback(); ajaxErrReturn('支付失败'); } $wl_data['title'] = '完成支付,订单号:'.$vo['order_sn']; $content = '共支付'.$vo['actual_paid']; //记录买家财务账单 unset($rdata); $rmodel = M('Record'); $rdata['member_id'] = $vo['member_id']; $wallet = $wallet_model->where($wallet_data)->find(); $rdata['member_name'] = $vo['member_name']; $rdata['realname'] = $vo['realname']; $rdata['order_sn'] = $vo['order_sn']; $rdata['pay_type'] = 2; $rdata['payment_mode'] = 1; $rdata['payment_company'] = $this->configs['company_name']; $rdata['payment_channel'] = '网站余额'; $rdata['pay_order_sn'] = $trade_no; $rdata['buyer'] = $vo['member_name']; $rdata['content'] = $content; $rdata['balance'] = $wallet['balance'] ? $wallet['balance'] : 0; $rdata['amount'] = $vo['actual_paid']; $rdata['create_time'] = $time; $rdata['status'] = 1; $rdata['pay_time'] = time(); if($result)$result = $rmodel->add($rdata); //支付完成后处理 $result = after_pay($vo); if(!$result){ $model->rollback(); ajaxErrReturn('支付失败'); } $log['order_sn'] = $vo['order_sn']; $log['utype'] = 1; $log['user_id'] = $this->user['id']; $log['user_name'] = $this->user['username']; $log['msg'] = '账户余额支付'; $log['action'] = '完成支付'; $log['create_time'] = time(); $log['ip'] = _get_ip(); order_log($log); } if($result){ $model->commit(); $msg['notice'] = '支付成功'; if($_REQUEST['order_id']){ $gourl = U('Order/paycomplet',array('order_id'=>$_REQUEST['order_id'])); }else{ $gourl = U('Order/paycomplet',array('mo_sn'=>$_REQUEST['mo_sn'])); } $msg['gourl'] = $gourl; ajaxSucReturn($msg); }else{ $model->rollback(); ajaxErrReturn('支付失败'); } }
/** * 购买产品 */ 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; } }
public function payment(){ $usecssjs = '<link href="'.__ROOT__.'/Public/css/index.css" rel="stylesheet" type="text/css" /><link href="'.__ROOT__.'/Public/css/shopping.css" rel="stylesheet" type="text/css" /><link href="'.__ROOT__.'/Public/css/flat-ui.min.css" rel="stylesheet" type="text/css" /><link href="'.__ROOT__.'/Public/css/font-awesome.min.css" rel="stylesheet" type="text/css" /><link href="'.__ROOT__.'/Public/css/false.css" rel="stylesheet" type="text/css" />'; $this->assign('usecssjs',$usecssjs); if(!$this->user){ $this->assign('jumpUrl',__APP__.'/Public/login/from_url/'.urlencode($_SERVER['HTTP_REFERER'])); $this->error('请先登录!'); } if(!$_GET['ids']){ $this->error('出错!'); } $ids = explode(',',$_GET['ids']); $this->assign('jumpUrl',__ROOT__.'/member/index.php/Orders'); $model = M('order'); $goods_model = M('goods'); $odmodel = M('order_detail'); $pmodel = M('projects'); $pgmodel = M('project_goods'); $wallet_model = M('member_wallet'); $time = time(); //$trade_no = build_order_no($this->user['id']); $model->startTrans();//启用事务 $data['id'] = array('in',$_GET['ids']); $data['member_id'] = $this->user['id']; $data['status'] = 0; $data['type'] = 4; $list = $model->field('id,user_id,bond,type,sourceid,goods,total_price,order_id,status,order_time,member_id,member_name,realname')->where($data)->select(); if(count($list)!=count($ids)){ $this->error('出错!'); } foreach($list as $vo){ $total_price += $vo['total_price']; } //echo $total_price; if($this->user['balance']<$total_price){ $this->error('可用余额不足!'); } $totalprice = 0 ; foreach($list as $vo){ $totalprice += $vo['total_price']; if(!$vo){ $this->error('订单不存在!'); } if($vo['order_time'] && time()>$vo['order_time']){ $this->error('订单已过期!'); } if($vo['status']>0){ $this->error('已支付!'); } if($vo['type']!=4){ $this->error('订单有误!'); } //$time = time(); $trade_no = build_order_no($this->user['id']); $goods = unserialize($vo['goods']); $subject = '购买商品:'; $body = '购买商品'; foreach($goods as $g){ $subject .= $g['product_name'].','; $body .= $g['product_name'].','; } $subject = substr($subject,0,-1); $body = substr($subject,0,-1); $body .= ',共消费'.$vo['total_price']; //订单状态修改 $wdata['id'] = $vo['id']; $sdata['status'] = 1; $sdata['pay_order_id'] = $trade_no; $sdata['pay_time'] = $time; $result = $model->where($wdata)->save($sdata); if(!$result){ $model->rollback(); $this->error ('支付失败1!'); } //修改余额 $wallet_data['member_id'] = $vo['member_id']; $result = $wallet_model->where($wallet_data)->setDec('balance',$vo['total_price']); if(!$result){ $model->rollback(); $this->error ('支付失败2!'); } $wl_data['title'] = '完成支付,订单号:'.$vo['order_id']; //$content = '共支付'.$vo['total_price']; $content = $body; //记录买家财务账单 unset($rdata); $rmodel = M('record'); $rdata['member_id'] = $vo['member_id']; $wallet = $wallet_model->where($wallet_data)->find(); $rdata['member_name'] = $vo['member_name']; $rdata['realname'] = $vo['realname']; $rdata['order_id'] = $vo['order_id']; $rdata['pay_type'] = 2; $rdata['payment_mode'] = '1'; $rdata['payment_company'] = $this->configs['company_name']; $rdata['pay_order_id'] = $trade_no; $rdata['buyer'] = $vo['member_name']; $rdata['content'] = $content; $rdata['balance'] = $wallet['balance'] ? $wallet['balance'] : 0; $rdata['pay'] = $vo['total_price']; $rdata['create_time'] = $time; $rdata['status'] = 1; $rdata['pay_time'] = time(); if($result)$result = $rmodel->add($rdata); //修改库存 //产品减库存 $od_data['oid'] = $vo['id']; $od_list = $odmodel->alias('a')->join('`op_project_goods` as b on a.sourceid=b.id')->field('b.id,b.goods_id')->where($od_data)->select(); foreach($od_list as $val){ //众筹产品状态修改 $pg_data['id'] = $val['id']; $pg_sdata['status'] = 0; if($result)$result = $pgmodel->where($pg_data)->save($pg_sdata); //减库存 $goods_data['id'] = $val['goods_id']; if($result){ $result = $goods_model->where($goods_data)->setDec('inventory',1); } //echo $goods_model->getlastsql();exit; } //修改众筹信息 $pdata['id'] = $vo['sourceid']; $where_str = 'project_id='.$vo['sourceid'].' AND status=0'; $goods_count = $pgmodel->where($where_str)->count(); $psdata['pay_num'] = $goods_count; $goods_pay = $pgmodel->field('sum(price) as pay')->where($where_str)->find(); $psdata['price'] = $goods_pay['pay']; if($result)$result=$pmodel->where($pdata)->save($psdata); if(!$result){ $model->rollback(); $this->error ('支付失败3!'); } } if($result){ $model->commit(); //$this->success ('支付成功!'); $title = '支付页- '.C('site_name'); $keywords = '支付页'; $this->assign('totalprice',$totalprice); $description = '支付页'; $this->assign('title', $title); $this->assign('keywords', $keywords); $this->assign('description', $description); $this->assign('totalprice',$totalprice); $this->display('goods:order-confirm'); }else{ $model->rollback(); $this->error ('支付失败4!'); } }
/** * 确认退款 */ public function return_refund() { $id = $_POST['id']; $data2['id'] = $data['a.id'] = $id; $vo = $this->db->table('`' . C('DB_PREFIX') . 'order_detail` as a')->join('`' . C('DB_PREFIX') . 'order` as b on a.order_id=b.id')->field('a.id,a.product_name,a.price,a.num,a.order_id,a.status,a.refund_status,b.payment_mode,payment_company,b.delivery_status,b.order_sn,b.member_id,b.member_name')->where($data)->find(); $result = $this->db->validate($vo); $this->db->startTrans(); //启用事务 if (!$result) { ajaxErrReturn($this->db->get_error_msg()); } $sdata['refund_status'] = 5; $result = $this->oddb->where($data2)->save($sdata); if ($result) { //记录退款金额 $o_data['id'] = $vo['order_id']; //$refund_fee = $vo['price']*$vo['num']; $refund_fee = $this->refund_fee($vo); $result = $this->db->where($o_data)->setDec('actual_refund', $refund_fee); //退款信息记录 $model = M('Member_wallet'); $mw_wdata['member_id'] = $vo['member_id']; $wallet = $model->where($mw_wdata)->find(); $r_data['member_id'] = $vo['member_id']; $r_data['member_name'] = $vo['member_name']; $r_data['payment_mode'] = $_POST['payment_mode']; $r_data['payment_company'] = $_POST['payment_company']; $r_data['order_sn'] = $vo['order_sn']; $r_data['pay_order_sn'] = $_POST['pay_order_sn'] ? $_POST['pay_order_sn'] : build_order_no($vo['member_id']); $r_data['pay_type'] = 5; $r_data['amount'] = $refund_fee; if ($vo['payment_company'] == '余额支付') { //退款至账户 $mw_sdata['balance'] = $wallet['balance'] + $refund_fee; $result = $model->where($mw_wdata)->save($mw_sdata); $balance = $wallet['balance'] + $refund_fee; } else { $balance = $wallet['balance']; } $r_data['balance'] = $balance; $r_data['ip'] = _get_ip(); $r_data['content'] = '退款 商品' . $vo['product_name'] . '*' . $vo['num'] . '退款'; $r_data['create_time'] = time(); $r_data['pay_time'] = time(); $r_data['status'] = 1; if ($result) { $result = $this->rdb->add($r_data); } if ($result) { $this->db->commit(); } else { $this->db->rollback(); ajaxErrReturn('操作失败'); } //记录订单操作日志 $this->log_track($vo['order_sn'], '确认退款'); $msg['obj_id'] = 'item_' . $id; $msg['callback'] = '<strong><font color="blue">完成退款</font></strong>'; $msg['notice'] = '完成退款'; ajaxSucReturn($msg); } else { $this->db->rollback(); ajaxErrReturn('操作失败'); } }
public function low_bid(){ if($_POST['pay']<1){ $msg['status'] = 0; $msg['notice'] = '出价不能低于1元!'; echo json_encode($msg);exit; } $model = M('Auction'); $lmodel = M('AuctionLog'); $rmodel = M('record'); $mmodel = M('Member'); $mwmodel = M('MemberWallet'); $mwlmodel = M('MemberWalletLog'); $data['id'] = $_POST['id']; $vo = $model->field('id,status,starttime,endtime,product_id,product_name,startprice,addprice,auctioncount,realprice,bond,user_id')->where($data)->find(); if(!$vo){ $msg['status'] = 0; $msg['notice'] = '拍品不存在!'; echo json_encode($msg);exit; } if($vo['starttime']>time()){ $msg['status'] = 0; $msg['notice'] = '还未开始拍卖!'; echo json_encode($msg);exit; } if($vo['endtime']<=time()){ $msg['status'] = 0; $msg['notice'] = '拍卖已结束!'; echo json_encode($msg);exit; } if($vo['type']==1){ $msg['status'] = 0; $msg['notice'] = '出错!'; echo json_encode($msg);exit; } $mwlmodel = M('MemberWalletLog'); $mwl_data['member_id'] = $this->user['id']; $mwl_data['pay_type'] = 1; $mwl_data['aid'] = $vo['id']; $mwl_count = $mwlmodel->where($mwl_data)->count(); if($mwl_count==0){ $msg['status'] = 0; $msg['notice'] = '请先付保证金!'; echo json_encode($msg);exit; } if(($this->user['frozen']+$this->user['balance'])<1){ $msg['status'] = 0; $msg['notice'] = '余额不足!'; echo json_encode($msg);exit; } if($this->user['id']==$vo['auctionuid']){ $msg['status'] = 0; $msg['notice'] = '目前您领先,无需再出价!'; echo json_encode($msg);exit; } $model->startTrans();//启用事务 //添加记录 $al_model = M('AuctionLog'); $al_add['aid'] = $_POST['id']; $al_add['product_id'] = $vo['product_id']; $al_add['product_name'] = $vo['product_name']; $al_add['member_id'] = $this->user['id']; $al_add['member_name'] = $this->user['username']; $al_add['realname'] = $this->user['realname']; $al_add['ip'] = $_SERVER['REMOTE_ADDR']; $al_add['address'] = ipfrom($_SERVER['REMOTE_ADDR']); $al_add['bidprice'] = $_POST['pay']; $al_add['create_time'] = time(); $result = $al_model->add($al_add); //竞拍失败 if($_POST['pay']>=$vo['realprice']){ }else{ //竞价成功 $sdata['auctioncount'] = $vo['auctioncount']+1; $sdata['realprice'] = $_POST['pay']; $sdata['auctionuid'] = $this->user['id']; $sdata['auctionuname'] = $this->user['username']; if($result)$result = $model->where($data)->save($sdata); } //扣除竞拍金 //竞价次数 $l_data['aid'] = $_POST['id']; $count = $lmodel->where($l_data)->count(); //冻结金还剩多少 if($vo['bond']-$count>1){ $mw_wdata['member_id'] = $this->user['id']; if($result)$result=$mwmodel->where($mw_wdata)->setDec('frozen',1); $mwl_add_data['title'] = '订金扣除'; $mwl_add_data['member_id'] = $this->user['id']; $mwl_add_data['pay'] = $_POST['pay']; $mwl_add_data['aid'] = $_POST['id']; $mwl_add_data['pay_type'] = 3; $mwl_add_data['content'] = '低价者得,拍品:'.$val['product_name'].',竞拍失败扣除订金1元'; $mwl_add_data['create_time'] = time(); if($result)$result = $mwlmodel->add($mwl_add_data); }else{ $mw_wdata['member_id'] = $this->user['id']; if($result)$result=$mwmodel->where($mw_wdata)->setDec('balance',1); $rdata['member_id'] = $this->user['id']; $rdata['member_name'] = $this->user['username']; $rdata['realname'] = $this->user['realname']; $rdata['pay'] = 1; $rdata['balance'] = $this->user['balance']-1; $rdata['order_id'] = build_order_no($this->user['id']); $rdata['pay_order_id'] = build_order_no($this->user['id']); $rdata['payment_company'] = C('company_name'); $rdata['pay_type'] = 2; $rdata['content'] = '低价者得,拍品:'.$val['product_name'].',竞拍失败扣除1元'; if($result)$result = $rmodel->add($rdata); } //转钱进入卖家账户 if($vo['user_id']){ //查找用户钱包 $mw_wdata['member_id'] = $vo['user_id']; if($result)$result=$mwmodel->where($mw_wdata)->setInc('balance',1); $m_data['a.id'] = $vo['user_id']; $wallet_vo = $mmodel->alias('a')->join('`'.C('DB_PREFIX').'member_wallet` as b on a.id=b.member_id')->field('a.id,logo,email,utype,password,username,realname,tel,pv_id,ct_id,province,city,create_time,last_login_time,balance,frozen,b.update_time,cp')->where($m_data)->find(); $rdata['member_id'] = $wallet_vo['id']; $rdata['member_name'] = $wallet_vo['username']; $rdata['realname'] = $wallet_vo['realname']; $rdata['pay'] = 1; $rdata['balance'] = $wallet_vo['balance']+1; $rdata['order_id'] = build_order_no($this->user['id']); $rdata['pay_order_id'] = build_order_no($this->user['id']); $rdata['payment_company'] = C('company_name'); $rdata['pay_type'] = 5; $rdata['content'] = '低价者得,拍品:'.$val['product_name'].',竞拍收入1元'; if($result)$result = $rmodel->add($rdata); } //echo $rmodel->getlastsql();exit; if($result){ $model->commit(); if($_POST['pay']>=$vo['realprice']){ $msg['status'] = 1; $msg['notice'] = '很遗憾,您出价太高了!'; echo json_encode($msg);exit; }else{ $msg['status'] = 1; $msg['notice'] = '出价成功,领先!'; echo json_encode($msg);exit; } }else{ $model->rollback(); $msg['status'] = 0; $msg['notice'] = '出错!'; echo json_encode($msg);exit; } }
function check_project(){ $time = time(); $model = M('projects'); $pgmodel = M('project_goods'); $rmodel = M('record'); $mwmodel = M('member_wallet'); $mwlmodel = M('member_wallet_log'); $omodel = M('order'); $odmodel = M('order_detail'); $logs_model = M('logs'); $data['status'] = 1; $data['endtime'] = array('elt',$time); $list = $model->where($data)->select(); //dump($list);exit; foreach($list as $key=>$val){ unset($pg_data); $model->startTrans();//启用事务 $pg_data['project_id'] = $val['id']; $count = $pgmodel->where($pg_data)->count(); $pg_data['status'] = 0; $buy_count = $pgmodel->where($pg_data)->count(); //echo $buy_count.'/'.$count; if($buy_count/$count>0.5){ //众筹成功 //修改状态 $data['id'] = $val['id']; $sdata['status'] = 2; $result = $model->where($data)->save($sdata); if(!$result){ $model->rollback(); continue; } //分成处理 $get_pay = $val['price']*0.1; $mw_data['member_id'] = $val['member_id']; $result = $mwmodel->where($mw_data)->setInc('balance',$get_pay); if(!$result){ $model->rollback(); continue; } //记录至账户 $mw_data['member_id'] = $val['member_id']; $mw_vo = $mwmodel->where($mw_data)->find(); $pay_order_id = build_order_no($val['member_id']); $rdata['member_id'] = $val['member_id']; $rdata['member_name'] = $val['member_name']; $rdata['realname'] = $val['realname']; $rdata['payment_mode'] = '1'; $rdata['payment_company'] = C('company_name'); $rdata['pay_order_id'] = $pay_order_id; $rdata['order_id'] = ''; $rdata['pay_type'] = 5; $rdata['pay'] = $get_pay; $rdata['balance'] = $mw_vo['balance']; $rdata['content'] = $val['name'].'众筹成功,返利¥'.$get_pay; $rdata['create_time'] = $time; $rdata['pay_time'] = $time; $rdata['status'] = 1; $result = $rmodel->add($rdata); //echo $rmodel->getlastsql(); if(!$result){ $model->rollback(); continue; } //订单信息修改 //关联已支付订单 $odata['type'] = 4; //$odata['source'] = 'Projects'; $odata['sourceid'] = $val['id']; $odata['status'] = 1; $osdata['pay_order_id'] = $pay_order_id; $result = $omodel->where($odata)->save($osdata); //关闭未支付订单 $odata['status'] = 0; $osdata2['status'] = -1; if($result)$result = $omodel->where($odata)->save($osdata2); //记录 $logs_data['msg'] = '<span>'.name_hide($vo['member_name']).'</span> 众筹成功,获得返利'.$get_pay; $logs_data['create_time'] = time(); $logs_model->add($logs_data); //事务提交 if($result){ $model->commit(); }else{ $model->rollback(); } echo 112233; }else{ //众筹失败,修改状态 $data['id'] = $val['id']; $sdata['status'] = -1; $result = $model->where($data)->save($sdata); if($buy_count==0){ continue; } if(!$result){ $model->rollback(); continue; } //退款 //支付成功订单 $odata['source'] = 'Projects'; $odata['sourceid'] = $val['id']; $odata['status'] = 1; $olist = $omodel->where($odata)->select(); foreach($olist as $oval){ //订单信息修改 $pay_order_id = build_order_no($oval['member_id']); $owdata['id'] = $oval['id']; $osdata['status'] = -1; $osdata['pay_order_id'] = $pay_order_id; $osdata['remark'] = $val['name'].'众筹失败退款'; $omodel->where($owdata)->save($osdata); //详细订单状态修改 $od_data['oid'] = $oval['id']; $od_sdata['trade_status'] = 0; $od_sdata['remark'] = '众筹失败'; $result = $odmodel->where($od_data)->save($od_sdata); //退款至账户 $mw_data['member_id'] = $oval['member_id']; $mw_vo = $mwmodel->where($mw_data)->find(); if($result)$result = $mwmodel->where($mw_data)->setInc('balance',$oval['total_price']); if(!$result){ $model->rollback(); continue; } //退款记录 $rdata['member_id'] = $oval['member_id']; $rdata['member_name'] = $oval['member_name']; $rdata['realname'] = $oval['realname']; $rdata['payment_mode'] = '1'; $rdata['payment_company'] = C('company_name'); $rdata['pay_order_id'] = $pay_order_id; $rdata['order_id'] = $oval['order_id']; $rdata['pay_type'] = 5; $rdata['pay'] = $oval['total_price']; $rdata['balance'] = $mw_vo['balance']+$oval['total_price']; $rdata['content'] = $val['name'].'众筹失败退款¥'.$oval['total_price']; $rdata['create_time'] = $time; $rdata['pay_time'] = $time; $rdata['status'] = 1; $result = $rmodel->add($rdata); if(!$result){ $model->rollback(); continue; } } //事务提交 if($result){ //echo 11223; $model->commit(); }else{ $model->rollback(); } } } }
function sendsms($phone, $type = 'verification') { $sms_postUrl = "http://106.ihuyi.cn/webservice/sms.php?method=Submit&account=cf_mdaxue&password=720409fa720521&mobile={$phone}&content="; #短信中心发送短信报备模板 $template = array('menu' => '您的预约菜单是:【变量】总计:【变量】', 'register' => '欢迎注册Mdaxue网,您的激活验证码为【变量】', 'verification' => '您的验证码是:【变量】。欢迎您使用[我的大学网]!如非您本人操作,可忽略本短信。'); switch ($type) { case 'register': break; case 'menu': break; default: $url = $sms_postUrl . rawurlencode(str_replace('【变量】', $vcode = build_order_no(6, 1), $template['verification'])); $resJson = xml_to_array(curl_request($url)); $resJson['vcode'] = $vcode; #vcode为发送的验证码 return $resJson['SubmitResult']; #code =2 为成功 break; } return; }
public function cancelpay($oid) { $order = M('Order'); $map['oid'] = $oid; $oinfo = $order->where($map)->find(); if ($oinfo['paytype'] == '0') { $log = new \PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL); $log->LogInfo("============处理前台请求开始==============="); // 初始化日志 $params = array('version' => '5.0.0', 'encoding' => 'utf-8', 'certId' => getSignCertId(), 'signMethod' => '01', 'txnType' => '32', 'txnSubType' => '00', 'bizType' => '000201', 'accessType' => '0', 'channelType' => '07', 'orderId' => build_order_no(), 'merId' => '898110275120075', 'txnTime' => date('YmdHis'), 'backUrl' => SDK_CDE_BACK_NOTIFY_URL, 'reqReserved' => ' 透传信息'); $params['origQryId'] = $oinfo['trade_no']; $cdeposit = $oinfo['deposit'] + $oinfo['c_price']; $params['txnAmt'] = 10; //floatval($cdeposit) * 100; sign($params); //echo "请求:" . getRequestParamString ( $params ); $log->LogInfo("后台请求地址为>" . SDK_BACK_TRANS_URL); // 发送信息到后台 $result = sendHttpRequest($params, SDK_BACK_TRANS_URL); $log->LogInfo("后台返回结果为>" . $result); //echo "应答:" . $result; //返回结果展示 $result_arr = coverStringToArray($result); if (verify($result_arr)) { if ($result_arr['respCode'] == '00') { return true; } else { return false; } } else { return false; } } else { return false; } }
/** * 提现订单 * @return [type] [description] */ public function tixian() { $info['money'] = I('post.money'); $umoney = D('umoney')->field('totalmoney, not_tixian')->where('uid=' . $this->mid)->find(); if ($info['money'] < 100 || $info['money'] > $umoney['totalmoney'] - $umoney['not_tixian']) { $this->return['code'] = 1003; $this->return['message'] = L('money_error'); $this->goJson($this->return); } $map['uid'] = $this->mid; $map['is_del'] = 0; $ali_info = D('userAlipay')->where($map)->getField('id'); if (!$ali_info) { $this->return['code'] = 1004; $this->return['message'] = L('ali_info_error'); $this->goJson($this->return); } $info['orderId'] = build_order_no(); $info['ctime'] = time(); $info['type'] = 3; $info['uid'] = $this->mid; $info['note'] = '提现' . $info['money'] . '元'; $id = D('mlog')->add($info); D('umoney')->where('uid=' . $this->mid)->setInc('not_tixian', $info['money']); $this->return['message'] = L('wait_moment'); $this->goJson($this->return); }
public function rechargesub() { if (IS_POST) { $recorder = M('Recorder'); $point = $_POST['recharge']; $userid = session('userid'); $paytype = $_POST['paytype']; $ctime = time(); $order_sn = build_order_no(); $data['order_sn'] = $order_sn; $data['userid'] = $userid; $data['point'] = $point; $data['ctime'] = $ctime; $data['paytype'] = $paytype; $data['status'] = '0'; $res = $recorder->add($data); if ($res) { if ($paytype == '1') { $this->redirect('Pay/doalipay', array('rid' => $res)); } else { $this->redirect('Bpay/dobankpay', array('rid' => $res)); } } else { $this->redirect('User/recharge'); } } }
public function ordersub() { if (IS_POST) { $order_db = M('Order'); $car_db = M('Car'); $user_db = M('Users'); $setting_db = M('Setting'); $addrisk_db = M('Addrisk'); $bgtime = $_POST['bgtime']; $endtime = $_POST['endtime']; $num = diffBetweenTwoDays($bgtime, $endtime); $cid = $_POST['cid']; $cuserid = $_POST['cuserid']; $cmap['cid'] = $cid; $cinfo = $car_db->where($cmap)->find(); $oprice = $cinfo['shareprice'] * $num; $setmap['key'] = 'SAFE_SET'; $setinfo = $setting_db->where($setmap)->find(); if ($setinfo['value']) { $safexs = $setinfo['value'] / 100; } else { $safexs = 20 / 100; } $setminmap['key'] = 'SAFE_MIN'; $setmininfo = $setting_db->where($setminmap)->find(); if ($setmininfo['value']) { $safemin = $setmininfo['value']; } else { $safemin = 20; } $setmaxmap['key'] = 'SAFE_MAX'; $setmaxinfo = $setting_db->where($setmaxmap)->find(); if ($setmaxinfo['value']) { $safemax = $setmaxinfo['value']; } else { $safemax = 60; } $sprice = floor($cinfo['shareprice'] * $safexs); if ($sprice < $safemin) { $sprice = $safemin; } if ($sprice > $safemax) { $sprice = $safemax; } $ot_safe = $_POST['ot_safe']; $adriskprice = 0; $ots = ""; if ($ot_safe) { foreach ($ot_safe as $k => $v) { $armap['id'] = $v; $arinfo = $addrisk_db->where($armap)->find(); if ($arinfo['ptype'] == '0') { $adriskprice += $arinfo['price'] * $num; } else { $adriskprice += $arinfo['price']; } $ots .= $v; if ($ot_safe[$k + 1]) { $ots .= ","; } } } $depsetmap['key'] = 'DEPOSIT_SET'; $depsetinfo = $setting_db->where($depsetmap)->find(); if ($depsetinfo['value']) { $depset = $depsetinfo['value']; } else { $depset = 5; } $sprice = $sprice * $num; $deposit = $cinfo['shareprice'] * ($num + $depset) + $sprice; $cprice = $oprice + $sprice + $adriskprice; if ($_POST['is_swap'] == '1') { $data['swapcid'] = $_POST['swapcid']; } if ($_POST['is_swap']) { $data['is_swap'] = $_POST['is_swap']; } else { $data['is_swap'] = '0'; } $data['order_sn'] = build_order_no(); $data['o_price'] = $oprice; $data['s_price'] = $sprice; $data['ot_safe'] = $ots; $data['c_price'] = $cprice; $data['cid'] = $cid; $data['cuserid'] = $cuserid; $data['userid'] = session('userid'); $data['bgtime'] = $bgtime; $data['endtime'] = $endtime; $data['getaddress'] = $_POST['getaddress']; $data['gethour'] = $_POST['gethour']; $data['ctime'] = time(); $data['status'] = '0'; $data['deposit'] = $deposit; $res = $order_db->add($data); if ($res) { //发送车主消息 $comap['userid'] = $cuserid; $cotel = M('Users')->field('tel,name,sex,openid')->where($comap)->find(); $uomap['userid'] = session('userid'); $uoinfo = $user_db->table(C('DB_PREFIX') . 'Users U')->join(C('DB_PREFIX') . 'City C on U.city = C.code')->join(C('DB_PREFIX') . 'Province P on U.province = P.code')->field('U.userid, U.name, U.sex, U.tel, C.name as city, P.name as province')->where($uomap)->find(); $uoinfo['name'] = namereplace($uoinfo['name'], $uoinfo['sex']); $content = "订单消息,来自" . $uoinfo['province'] . $uoinfo['city'] . "的" . $uoinfo['name'] . "计划在" . $bgtime . "至" . $endtime . "换驾您的车辆," . $_POST['gethour'] . ":00取车,对方电话" . $uoinfo['tel'] . ";请在微信公众号“我爱换驾”查询订单并确认回复;若1小时内没回复,默认为拒绝。您也可致电400-00000寻求帮助。"; sendmsg($cotel['tel'], $content); //发送订单消息 $sysmsg_db = D('Sysmsg'); $sysmsg_db->sendmsg($cuserid, "您有一个新订单需要处理,请查看处理。", '2', '0', $res); //驾友短信 $cotel['name'] = namereplace($cotel['name'], $cotel['sex']); $brandmap['brandid'] = $cinfo['cbrand']; $modelmap['modelid'] = $cinfo['cmodel']; $brandinfo = M('Carbrand')->where($brandmap)->find(); $modelinfo = M('Carmodel')->where($modelmap)->find(); $cinfo['cpnum'] = substr_replace($cinfo['cpnum'], '****', 0, 4); $jycontent = "您已经成功提交换驾" . $cotel['name'] . $brandinfo['brandname'] . $modelinfo['name'] . "(" . $cinfo['cppro'] . $cinfo['cpzm'] . $cinfo['cpnum'] . ")订单,车主将在1小时内处理您的换驾单,请耐心等待。若车主接受订单,您需要在2小时内使用共享豆或银行卡支付押金,否则订单会自动取消。"; sendmsg($uoinfo['tel'], $jycontent); //微信模板消息通知 if ($cotel['openid']) { @import("Wxapi.Wxpuch", APP_PATH, '.class.php'); $pushwx = new \Wxpuch(); $openid = $cotel['openid']; $template_id = "alI51h9F3yYcJ9FQ6_z_-HTVcvKgjmmJi3ozFcGFRSY"; $url = "http://www.52huanjia.com/clyy/weixin/index/morder/oid/" . $res; $data = array('first' => array('value' => urlencode("您好,你有一个新订单需要处理,请查看处理。"), 'color' => "#000000"), 'orderNo' => array('value' => urlencode($data['order_sn']), 'color' => '#000000'), 'orderStatus' => array('value' => urlencode('订单已生成,车主待处理。'), 'color' => '#000000'), 'takeCarAt' => array('value' => urlencode($bgtime), 'color' => '#000000'), 'returnCarAt' => array('value' => urlencode($endtime), 'color' => '#000000'), 'carType' => array('value' => urlencode($brandinfo['brandname'] . $modelinfo['name'] . "(" . $cinfo['cppro'] . $cinfo['cpzm'] . $cinfo['cpnum'] . ")"), 'color' => '#000000'), 'remark' => array('value' => urlencode('请在1小时内处理订单,否则订单将会自动取消。'), 'color' => '#000000')); $pushwx->doSend($openid, $template_id, $url, $data); } $this->redirect('Index/vieworder', array('oid' => $res)); } } }