/** * 修改财务 */ public function modify_deposit() { if (isset($_POST['dosubmit'])) { $username = isset($_POST['username']) && trim($_POST['username']) ? trim($_POST['username']) : showmessage(L('username') . L('error')); $usernote = isset($_POST['usernote']) && trim($_POST['usernote']) ? addslashes(trim($_POST['usernote'])) : showmessage(L('usernote') . L('error')); $userinfo = $this->get_useid($username); if ($userinfo) { // 如果增加金钱或点数,想pay_account 中记录数据 if ($_POST['pay_unit']) { $value = floatval($_POST['unit']); $payment = L('admin_recharge'); $receipts = Loader::lib('pay:receipts'); $func = $_POST['pay_type'] == '1' ? 'amount' : 'point'; $receipts->{$func}($value, $userinfo['userid'], $username, create_sn(), 'offline', $payment, cookie('admin_username'), $status = 'succ', $usernote); } else { $value = floatval($_POST['unit']); $msg = L('background_operation') . $usernote; $spend = Loader::lib('pay:spend'); $func = $_POST['pay_type'] == '1' ? 'amount' : 'point'; $spend->{$func}($value, $msg, $userinfo['userid'], $username, cookie('userid'), cookie('admin_username')); } if (intval($_POST['sendemail'])) { $op = $_POST['pay_unit'] ? $value : '-' . $value; $op = $_POST['pay_type'] ? $op . L('yuan') : $op . L('point'); $msg = L('account_changes_notice_tips', array('username' => $username, 'time' => date('Y-m-d H:i:s', TIME), 'op' => $op, 'note' => $usernote, 'amount' => $userinfo['amount'], 'point' => $userinfo['point'])); sendmail($userinfo['email'], L('send_account_changes_notice'), $msg); } showmessage(L('public_discount_succ'), HTTP_REFERER); } } else { $show_validator = true; include $this->view('modify_deposit'); } }
public function pay() { $memberinfo = $this->memberinfo; $pay_types = $this->handle->get_paytype(); $trade_sn = create_sn(); param::set_cookie('trade_sn',$trade_sn); $show_validator = 1; include template('pay', 'deposit'); }
/** * 添加入账记录 * @param array $data 添加入账记录参数 */ private static function _add($data) { $data['money'] = isset($data['money']) && floatval($data['money']) ? floatval($data['money']) : 0; $data['userid'] = isset($data['userid']) && intval($data['userid']) ? intval($data['userid']) : 0; $data['username'] = isset($data['username']) ? trim($data['username']) : ''; $data['trade_sn'] = isset($data['trade_sn']) && $data['trade_sn'] ? trim($data['trade_sn']) : create_sn(); $data['pay_type'] = isset($data['pay_type']) ? trim($data['pay_type']) : 'selfincome'; $data['payment'] = isset($data['payment']) ? trim($data['payment']) : ''; $data['adminnote'] = isset($data['op_username']) ? trim($data['op_username']) : ''; $data['usernote'] = isset($data['usernote']) ? trim($data['usernote']) : ''; $data['status'] = isset($data['status']) ? trim($data['status']) : 'succ'; $data['type'] = isset($data['type']) && intval($data['type']) ? intval($data['type']) : 0; $data['addtime'] = TIME; $data['ip'] = IP; //检察消费类型 if (!in_array($data['type'], array(1, 2))) { return false; } //检查入账类型 if (!in_array($data['pay_type'], array('offline', 'recharge', 'selfincome'))) { return false; } //检查入账状态 if (!in_array($data['status'], array('succ', 'error', 'failed'))) { return false; } //检查消费描述 if (empty($data['payment'])) { return false; } //检查消费金额 if (empty($data['money'])) { return false; } //检查userid和username并偿试再次的获取 if (empty($data['userid']) || empty($data['username'])) { if (defined('IN_ADMIN')) { return false; } elseif (!($data['userid'] = cookie('_userid') || !($data['username'] = cookie('_username')))) { return false; } else { return false; } } //检查op_userid和op_username并偿试再次的获取 if (defined('IN_ADMIN') && empty($data['adminnote'])) { $data['adminnote'] = cookie('admin_username'); } //数据库连接 if (empty(self::$db)) { self::connect(); } $member_db = Loader::model('member_model'); $sql = array(); if ($data['type'] == 1) { //金钱方式充值 $sql = array('amount' => "+=" . $data['money']); } elseif ($data['type'] == 2) { //积分方式充值 $sql = array('point' => '+=' . $data['money']); } else { return false; } //进入数据库操作 $insertid = self::$db->insert($data, true); if ($insertid && $data['status'] == 'succ') { return $member_db->where(array('userid' => $data['userid'], 'username' => $data['username']))->update($sql) ? true : false; } else { return false; } }
public function alipayapi() { $alipay_config = $this->alipay_config(); /**************************请求参数**************************/ //支付类型 $payment_type = "1"; //必填,不能修改 //服务器异步通知页面路径 $notify_url = U('Alipay/notify_url', '', '', '', true); // $notify_url ='http://'.$_SERVER['HTTP_HOST'].'/wx/index.php?m=Alipay&a=notify_url';//U('Alipay/notify_url'); //需http://格式的完整路径,不能加?id=123这类自定义参数 //页面跳转同步通知页面路径 $return_url = U('Alipay/return_url', '', '', '', true); // $return_url = 'http://'.$_SERVER['HTTP_HOST'].'/wx/index.php?m=Alipay&a=return_url';//U('Alipay/return_url'); //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/ //卖家支付宝帐户 // $seller_email = $_POST['WIDseller_email']; $seller_email = $alipay_config['pay_account']; //必填 //商户订单号 // $out_trade_no = $_POST['WIDout_trade_no']; $out_trade_no = create_sn(); //date('YmdHis').rand(0,9999); //商户网站订单系统中唯一订单号,必填 //订单名称 // $subject = $_POST['WIDsubject']; $subject = "在线充值"; //必填 //付款金额 $price = '0.01'; //必填 //商品数量 $quantity = "1"; //必填,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品 //物流费用 $logistics_fee = "0.00"; //必填,即运费 //物流类型 $logistics_type = "EXPRESS"; //必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS) //物流支付方式 $logistics_payment = "SELLER_PAY"; //必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费) //订单描述 $body = $_POST['WIDbody']; //商品展示地址 $show_url = $_POST['WIDshow_url']; //需以http://开头的完整路径,如:http://www.xxx.com/myorder.html //收货人姓名 $receive_name = $_POST['WIDreceive_name']; //如:张三 //收货人地址 $receive_address = $_POST['WIDreceive_address']; //如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号 //收货人邮编 $receive_zip = $_POST['WIDreceive_zip']; //如:123456 //收货人电话号码 $receive_phone = $_POST['WIDreceive_phone']; //如:0571-88158090 //收货人手机号码 $receive_mobile = $_POST['WIDreceive_mobile']; //如:13312341234 /************************************************************/ //构造要请求的参数数组,无需改动 $parameter = array("service" => "trade_create_by_buyer", "partner" => trim($alipay_config['partner']), "payment_type" => $payment_type, "notify_url" => $notify_url, "return_url" => $return_url, "seller_email" => $seller_email, "out_trade_no" => $out_trade_no, "subject" => $subject, "price" => $price, "quantity" => $quantity, "logistics_fee" => $logistics_fee, "logistics_type" => $logistics_type, "logistics_payment" => $logistics_payment, "body" => $body, "show_url" => $show_url, "receive_name" => $receive_name, "receive_address" => $receive_address, "receive_zip" => $receive_zip, "receive_phone" => $receive_phone, "receive_mobile" => $receive_mobile, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); dump($parameter); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, "get", "确认并支付"); echo $html_text; // $model=M('Payment'); // $data['memberid']=session('id'); // $data['membername']=session('account'); // $data['payno']=$out_trade_no; // $data['businesstype']=$subject; // $data['paytypeid']=$alipay_config['payid']; // $data['paytypename']=$alipay_config['payname']; // $data['paymoney']=$price; // $data['payip']=get_client_ip(); // $data['paybody']=$body; // $data['status']='unpay'; // $data['create_time']=time(); // if(false===$model->add($data)){ // $this->error('操作失败'); // } // $this->assign('paymoney',$price); // $this->assign('paytypename',$alipay_config['payname']); // $this->assign('html_text',$html_text); // $this->seo('支付确认', '', '', 'pay'); // C('TOKEN_ON',false);//关闭表单令牌 // $this->display(); }
/** * 修改财务 * Enter description here ... */ public function modify_deposit() { if (isset($_POST['dosubmit'])) { $username = isset($_POST['username']) && trim($_POST['username']) ? trim($_POST['username']) : showmessage(L('username') . L('error')); $usernote = isset($_POST['usernote']) && trim($_POST['usernote']) ? addslashes(trim($_POST['usernote'])) : showmessage(L('usernote') . L('error')); $userinfo = $this->get_useid($username); if ($userinfo) { //如果增加金钱或点数,想pay_account 中记录数据 if ($_POST['pay_unit']) { $value = floatval($_POST['unit']); $payment = L('admin_recharge'); $receipts = pc_base::load_app_class('receipts'); $func = $_POST['pay_type'] == '1' ? 'amount' : 'point'; $receipts->{$func}($value, $userinfo['userid'], $username, create_sn(), 'offline', $payment, param::get_cookie('admin_username'), $status = 'succ'); } else { $value = floatval($_POST['unit']); $msg = '后台操作'; $spend = pc_base::load_app_class('spend'); $func = $_POST['pay_type'] == '1' ? 'amount' : 'point'; $spend->{$func}($value, $msg, $userinfo['userid'], $username, param::get_cookie('userid'), param::get_cookie('admin_username')); } showmessage(L('public_discount_succ')); } } else { $show_validator = true; include $this->admin_tpl('modify_deposit'); } }
function payinsert() { $membername = $_POST['membername']; $membermap['account'] = array('eq', $membername); $member = D('Member')->where($membermap)->field('id,amount,intergral')->find(); $memberid = $member['id']; if (empty($memberid)) { $this->error('用户名输入错误!'); } $price = $_POST['value']; if (!preg_match('/^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){1,2})?$/i', $price)) { $this->error('充值金额必须为整数或小数(保留两位小数)'); } $type = $_POST['type']; $body = $_POST['msg']; $optype = $_POST['optype']; if ($optype == 1) { //增加 $model = D('Payment'); $data['memberid'] = $memberid; $data['membername'] = $membername; $data['payno'] = create_sn(); $data['businesstype'] = '线下支付'; $data['paytypeid'] = 0; $data['paytypename'] = '后台充值'; $data['paymoney'] = $price; $data['type'] = $type; //1是金钱,2是积分 $data['payip'] = get_client_ip(); $data['paybody'] = $body; $data['status'] = 1; $data['create_time'] = time(); if (false !== $model->add($data)) { $map['id'] = $memberid; $map['account'] = $membername; if ($type == 1) { $member = M('Member')->where($map)->setInc('amount', $price); //帐户余额增加 } if ($type == 2) { $member = M('Member')->where($map)->setInc('intergral', $price); //积分点数增加 } $this->success('操作成功'); } else { $this->error('操作失败'); } } elseif ($optype == 2) { if ($type == 1) { if ($price > $member['amount']) { $this->error('用户当前余额少于所减金钱!'); } } if ($type == 2) { if ($price > $member['intergral']) { $this->error('用户当前积分小于所减积分!'); } } $model = M('Payspend'); $data['memberid'] = $memberid; $data['membername'] = $membername; $data['type'] = $type; $data['value'] = $price; $data['msg'] = "后台操作" . $body; $data['userid'] = session('id'); $data['username'] = session('account'); $data['create_time'] = time(); if (false !== $model->add($data)) { $map['id'] = $memberid; $map['account'] = $membername; if ($type == 1) { $member = M('Member')->where($map)->setDec('amount', $price); //帐户余额减少 } if ($type == 2) { $member = M('Member')->where($map)->setDec('intergral', $price); //积分点数减少 } $this->success('操作成功'); } else { $this->error('操作失败'); } } else { $this->error('操作错误'); } }
public function paylist() { $this->checkUser(); if (isset($_POST['name'])) { $map['payno'] = array('like', "%" . I('post.name') . "%"); } //状态 if (isset($_POST['zt']) && $_POST['zt'] != -2) { $map['status'] = array('eq', I('zt')); $this->zt = I('zt'); } $map['memberid'] = array('eq', session('id')); $map['membername'] = array('eq', session('account')); //获取分页设置 $Model = M('Model'); $mapmodel['table'] = array('eq', 'Weixin'); $pageinfo = $Model->where($mapmodel)->find(); $Form = M('Payment'); import("@.ORG.Page"); //导入分页类 $count = $Form->where($map)->count(); //计算总数 $Page = new Page($count, $pageinfo['listrows']); $list = $Form->where($map)->limit($Page->firstRow . ',' . $Page->listRows)->order('create_time desc')->select(); $alipay_config = $this->alipay_config(); /**************************请求参数**************************/ if (!empty($alipay_config)) { //支付类型 $payment_type = "1"; //必填,不能修改 //服务器异步通知页面路径 //$notify_url = U('Member/notify_url','','','',true); $notify_url = 'http://' . $_SERVER['HTTP_HOST'] . __APP__ . '/Member/notify_url'; //U('Member/notify_url','','','',true); //需http://格式的完整路径,不能加?id=123这类自定义参数 //页面跳转同步通知页面路径 $return_url = 'http://' . $_SERVER['HTTP_HOST'] . __APP__ . '/Member/return_url'; //U('Member/return_url','','','',true); //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/ //卖家支付宝帐户 // $seller_email = $_POST['WIDseller_email']; $seller_email = $alipay_config['pay_account']; //必填 //商户订单号 // $out_trade_no = $_POST['WIDout_trade_no']; $out_trade_no = create_sn(); //date('YmdHis').rand(0,9999); //商户网站订单系统中唯一订单号,必填 foreach ($list as $key => $value) { //订单名称 $subject = $value['businesstype']; //付款金额 $price = $value['paymoney'] + $value['discount']; //商品数量 $quantity = "1"; //必填,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品 //物流费用 $logistics_fee = "0.00"; //必填,即运费 //物流类型 $logistics_type = "EXPRESS"; //必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS) //物流支付方式 $logistics_payment = "SELLER_PAY"; //必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费) //订单描述 $body = $value['paybody']; //构造要请求的参数数组,无需改动 $parameter = array("service" => "trade_create_by_buyer", "partner" => trim($alipay_config['partner']), "payment_type" => $payment_type, "notify_url" => $notify_url, "return_url" => $return_url, "seller_email" => $seller_email, "out_trade_no" => $out_trade_no, "subject" => $subject, "price" => $price, "quantity" => $quantity, "logistics_fee" => $logistics_fee, "logistics_type" => $logistics_type, "logistics_payment" => $logistics_payment, "body" => $body, "show_url" => $show_url, "receive_name" => $receive_name, "receive_address" => $receive_address, "receive_zip" => $receive_zip, "receive_phone" => $receive_phone, "receive_mobile" => $receive_mobile, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, "get", "付款"); $list[$key]['pay_btn'] = $html_text; } } // 设置分页显示 $Page->setConfig('header', $pageinfo['header']); $Page->setConfig('first', $pageinfo['first']); $Page->setConfig('last', $pageinfo['last']); $Page->setConfig('prev', $pageinfo['prev']); $Page->setConfig('next', $pageinfo['next']); $Page->setConfig('theme', $pageinfo['theme']); $page = $Page->show(); $this->assign("page", $page); $this->assign("list", $list); $this->seo('充值记录', '', '', 'paylist'); C('TOKEN_ON', false); //关闭表单令牌 $this->display(); }