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)));
 }
Пример #2
0
 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'])));
     }
 }
Пример #3
0
 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');
     }
 }