public function pay($customId) { //判断是否登录 $this->login(); $uid = is_login(); if (empty($customId)) { $this->error("关键参数未获得"); } $modelCustom = M('Custom'); $modelProductPrice = M('ProductPrice'); $modelProductPay = M('ProductPay'); //根据订单ID获取订单信息 $recordCustom = $modelCustom->where(array('id' => $customId))->find(); //根据回报ID获取回报信息 $recordProductPrice = $modelProductPrice->where(array('id' => $recordCustom['price_id']))->find(); $shareid = $recordCustom['id']; //confirm custom status if ($recordCustom['status'] != 0) { $this->error('订单已支付或已撤销,请勿重复提交'); } //如果支付金额=0,邮费=0 if ($recordCustom['amount'] == 0 && $recordCustom['post_amount'] == 0) { if ($recordCustom['status'] == 1) { $this->success('支付成功!', U('MCenter/pr_support')); } // 购买数 +1 $currentSellCount = $recordProductPrice['sell_count'] + 1; //更新购买数量 $resultPricesave = $modelProductPrice->where(array('id' => $recordCustom['price_id']))->save(array('sell_count' => $currentSellCount)); // status 购买成功 $dataCustomSave['status'] = 1; if ($recordProductPrice['is_luck'] == '1') { $dataCustomSave['luckno'] = $this->NoRand($recordProductPrice['pid']); } //生成验证码的场合 if ($recordProductPrice['is_share'] == '2') { //生成分享码 $shareid = $this->shareNo($recordProductPrice['pid']); $dataCustomSave['shareno'] = $shareid; //生成二维码 $dataCustomSave['qrcode'] = $this->qrcode($recordProductPrice['pid'], $shareid, $customId); } //生成分享ID //$dataCustomSave['shareid'] = sprintf("%06d",$uid).time(); //更新订单状态 $resultCustomSave = $modelCustom->where(array('id' => $recordCustom['id']))->save($dataCustomSave); //获取实物基本表 // $recordProduct = $modelProduct->where(array('id' =>$recordProductPrice['pid']))->find(); // //已筹金额 // $finishamount = $recordProduct['finish_amount'] + $recordCustom['amount']; // // $resultProductSave = $modelProduct->where(array('id'=>$recordProduct['id']))->save(array('finish_amount'=>$finishamount)); // if ($resultPricesave == false || $resultCustomSave == false) { $this->error("订单处理出错,请联系管理员:service@dreammove.cn", U('Index/index')); } //更新待办事件 update_pr_dolist($recordCustom['uid'], 1); //处理成功跳转 $this->success('处理成功', U('ProductOrder/share', array('id' => $recordCustom['id']))); } //根据订单号,查询支付流水信息 $data = $modelProductPay->where(array('orderid' => $customId))->find(); //zhaobb2015.3.25 //$modelProductPrice->startTrans(); if (!$data) { //是否有购买名额 $this->buyPermissions($recordCustom['price_id']); /* $resultPaySave = $modelProductPrice->where(array('id'=>$recordCustom['price_id'])) ->setInc('sell_count', $recordCustom['count']); if ($resultPaySave == false) { $modelProductPrice->rollback(); $this->error('处理错误,请联系管理员:service@dreammove.cn'); } */ } // 存流水 product_pay // 状态: 0→未付款(默认值); 1→成功相符; 2→成功不符; 3→失败; $payData['orderid'] = $recordCustom['id']; $payData['merorderid'] = buildMerorderid(); $payData['amountsum'] = $recordCustom['amount'] + $recordCustom['post_amount']; $payData['paytype'] = $_POST['paytype']; $payData['allow_creditcard'] = 1; $payData['state'] = 0; $payData['create_time'] = $payData['update_time'] = time(); $payData['uid'] = $uid; $payData['pay_amount'] = $recordCustom['amount'] + $recordCustom['post_amount']; $resultPaySave = $modelProductPay->data($payData)->add(); if ($resultPaySave == false) { //zhaobb2015.3.25 //$modelProductPrice->rollback(); $this->error('处理错误,请联系管理员:service@dreammove.cn'); } //zhaobb2015.3.25 //$modelProductPrice->commit(); $this->success('处理成功!', U('Pay/index', array('merorderid' => $payData['merorderid'], 'customId' => $customId))); }
public function follow() { if (IS_GET) { $uid = is_login(); if (!$uid) { $this->error('亲,您还没有登录噢!快点<a href="' . U('User/login') . '">登录</a>吧,等你噢〜' . showface('radio')); } $this->pid = $_GET['id']; $this->stock = M('Stock')->find($this->pid); // 封闭期关闭投资 if ($this->stock['closed'] == 1) { $this->error('感谢您的关注,该项目目前处于封闭期。'); } $where = array('uid' => $uid, 'status' => 9, 'auth_id' => 1); $auth = M('UserAuth')->where($where)->count(); if (!$auth) { $this->error('亲,为了方便您的投资,请先<a href="' . U('User/savecenter') . '">完善您的个人资料</a>噢!' . showface('waiting')); } //获取投资记录信息 $data = M('StockAccount')->where(array('pid' => $this->pid, 'uid' => $uid, 'status' => 0))->find(); //计算可投资金额 $data['can_fund'] = $this->stock['max_fund'] - $data['fund']; $this->data = $data; $this->success($this->fetch('follow')); } else { $amount = $_POST['amount']; if (!preg_match("/^\\d*\$/", $amount)) { $this->error('投资金额请输入数字。'); } $amount = intval($amount); $pid = $_POST['pid']; $stock = M('Stock')->find($pid); // 封闭期关闭投资 if ($stock['closed'] == 1) { $this->error('感谢您的关注,该项目目前处于封闭期。'); } //更新成1000的整数倍 $min_fund = $stock['min_fund']; //$min_fund = 1000; if ($amount <= 0) { $this->error('投资金额必须大于0'); } else { if ($amount % 1000 > 0) { $this->error('投资金额必须是1000的整数倍。'); } } $uid = is_login(); //获取投资人记录 $invest = M('StockAccount')->where(array('pid' => $pid, 'uid' => $uid, 'status' => 0))->find(); //判断投资额范围 if ($min_fund > $invest['fund'] + $amount || $stock['max_fund'] != 0 && $invest['fund'] + $amount > $stock['max_fund']) { $this->error('投资金额小于' . $min_fund . ',或投资总金额大于' . $stock['max_fund'] . '。'); } // 添加流水记录 $data = array('uid' => $uid, 'pid' => $pid, 'type' => '1', 'amount' => $amount, 'status' => 0, 'create_time' => NOW_TIME, 'update_time' => NOW_TIME); $fid = M('StockAccountFlow')->add($data); // 添加支付流水 $payData['orderid'] = $fid; $payData['uid'] = $uid; $payData['pay_amount'] = $amount; $payData['type'] = 2; $payData['merorderid'] = buildMerorderid(); $payData['amountsum'] = $amount; $payData['paytype'] = 0; $payData['state'] = 0; $payData['create_time'] = $payData['update_time'] = time(); $resultPaySave = M('ProductPay')->add($payData); $this->success('', U('Pay/index', array('merorderid' => $payData['merorderid']))); } }
public function recharge() { if (!$this->uid) { $this->redirect('User/login'); } $this->pageTitle = "账户充值"; if (IS_POST) { $amount = I('amount', '0', 'intval'); if ($amount < 10) { $this->error('单笔充值金额必须大于等于10'); } $type = I('type', 0); if (empty($type) || $type == 0) { $return_url = U('Account/index'); } else { $return_url = U('Account/pay', array('type' => $type, 'id' => $_POST['id'])); } $payData['orderid'] = ''; $payData['uid'] = $this->uid; $payData['type'] = 9; $payData['merorderid'] = buildMerorderid(); $payData['amountsum'] = $amount; $payData['pay_amount'] = $amount; $payData['paytype'] = 0; $payData['return_url'] = $return_url; $payData['state'] = 0; $payData['create_time'] = $payData['update_time'] = time(); $resultPaySave = M('ProductPay')->add($payData); $this->success('', U('Pay/index?merorderid=' . $payData['merorderid'])); } else { $account = D('AccountUser')->getInfo($this->uid); $this->type = $_GET['type']; $this->id = $_GET['id']; $this->amount = $account['use_able']; $this->display('recharge'); } }