Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 /**
  * 转账操作
  * 
  */
 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();
     }
 }
Exemplo n.º 3
0
 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('支付失败!');
     }
 }
Exemplo n.º 4
0
 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));
         }
     }
 }
Exemplo n.º 5
0
  /**
   *  余额支付
   */
  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('支付失败');
	}
  }
Exemplo n.º 6
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;
     }
 }
Exemplo n.º 7
0
  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!');
	}
  }
Exemplo n.º 8
0
 /**
  * 确认退款
  */
 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('操作失败');
     }
 }
Exemplo n.º 9
0
  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;	
	}
  }
Exemplo n.º 10
0
  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();
		}
	  }
	}
  }
Exemplo n.º 11
0
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;
}
Exemplo n.º 12
0
 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;
     }
 }
Exemplo n.º 13
0
 /**
  * 提现订单
  * @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);
 }
Exemplo n.º 14
0
 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');
         }
     }
 }
Exemplo n.º 15
0
 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));
         }
     }
 }