public function index()
 {
     if (IS_POST) {
         //页面上通过表单选择在线支付类型,支付宝为alipay 财付通为tenpay
         /* 支付设置 */
         $payment = array('tenpay' => array('key' => C('TENPAYKEY'), 'partner' => C('TENPAYPARTNER')), 'alipay' => array('email' => C('ALIPAYEMAIL'), 'key' => C('ALIPAYKEY'), 'partner' => C('ALIPAYPARTNER')), 'palpay' => array('business' => C('PALPAYPARTNER')), 'yeepay' => array('key' => C('YEEPAYPARTNER'), 'partner' => C('YEEPAYKEY')), 'kuaiqian' => array('key' => C('KUAIQIANPARTNER'), 'partner' => C('KUAIQIANKEY')), 'unionpay' => array('key' => C('UNIONPARTNER'), 'partner' => C('UNIONKEY')));
         $paytype = safe_replace(I('post.paytype'));
         $pay = new \Think\Pay($paytype, $payment[$paytype]);
         if (!empty($_POST['orderid'])) {
             $order_no = safe_replace(I('post.orderid'));
             $info = M("order")->where("tag='{$order_no}'")->find();
             $money = $info['total_money'];
             $body = C('SITENAME') . "订单支付";
             //商品描述
             $title = C('SITENAME') . "订单支付";
             //设置商品名称
         }
         $vo = new \Think\Pay\PayVo();
         $vo->setBody($body)->setFee($money)->setOrderNo($order_no)->setTitle($title)->setCallback("Home/Pay/success")->setUrl(U("Home/Pay/over"))->setParam(array('order_id' => $order_no));
         echo $pay->buildRequestForm($vo);
     } else {
         $this->meta_title = '支付订单';
         //在此之前goods1的业务订单已经生成,状态为等待支付
         $id = safe_replace(I("get.orderid"));
         $order = D("order");
         $this->assign('codeid', $id);
         $total = $order->where("orderid='{$id}'")->getField('total_money');
         $this->assign('goodprice', $total);
         $this->display();
     }
 }
示例#2
0
 public function pay_param()
 {
     if (IS_POST) {
         $http_post = I('post.');
         $paytype = $http_post['paytype'];
         //在线支付类型,支付宝为alipay 财付通为tenpay
         $money = $http_post['money'];
         //充值金额
         if ($money < 0.01) {
             $this->error('充值金额错误!');
         }
         $payment_data = C('payment.' . $paytype);
         $pay = new \Think\Pay($paytype, $payment_data);
         $order_no = $pay->createOrderNo();
         $user_pay_data['uin'] = session('user.uin');
         $user_pay_data['login_key'] = session('user.key');
         $user_pay_data['out_trade_no'] = $order_no;
         $user_pay_data['pay_type'] = $paytype;
         $user_pay_data['pay_type_name'] = $payment_data['title'];
         $user_pay_data['money'] = $money;
         $user_pay_data['body'] = $payment_data['title'] . '在线充值' . $money . '元';
         $user_pay_data['status'] = 0;
         $user_pay_data['remark'] = $payment_data['title'] . '在线充值' . $money . '元';
         $user_pay_data['client_ip'] = get_client_ip();
         $user_pay_data['create_time'] = time();
         $user_pay_add = M('user_pay')->add($user_pay_data);
         $vo = new \Think\Pay\PayVo();
         $vo->setBody('用户ID:' . session('user.uin') . ',在线充值' . $money . '元!')->setFee($money)->setOrderNo($order_no)->setTitle('用户资金在线充值')->setCallback("User/Payment/pay")->setUrl(U("User/Index/index"))->setParam(array('uin' => session('user.uin'), 'order_id' => $user_pay_add));
         echo $pay->buildRequestForm($vo);
     } else {
         $this->display();
     }
 }
 public function index()
 {
     if (IS_POST) {
         //页面上通过表单选择在线支付类型,支付宝为alipay 财付通为tenpay
         $paytype = I('post.paytype');
         $pay = new \Think\Pay($paytype, C('payment.' . $paytype));
         if (!empty($_POST['orderid'])) {
             $order_no = $_POST['orderid'];
             //未付款订单号
             $body = C('SITENAME') . "订单支付";
             //商品描述
             $title = C('SITENAME') . "订单支付";
             //设置商品名称
         }
         //else{
         // $order_no = $pay->createOrderNo(); //充值,生成订单号
         // $body= C('SITENAME')."会员充值";//商品描述
         //}
         $vo = new \Think\Pay\PayVo();
         $vo->setBody($body)->setFee(I('post.money'))->setOrderNo($order_no)->setTitle($title)->setCallback("Home/Pay/success")->setUrl(U("Home/Pay/over"))->setParam(array('order_id' => $order_no));
         echo $pay->buildRequestForm($vo);
     } else {
         //在此之前goods1的业务订单已经生成,状态为等待支付
         $id = I("get.orderid");
         $order = D("order");
         $this->assign('codeid', $id);
         $total = $order->where("orderid='{$id}'")->getField('pricetotal');
         $this->assign('goodprice', $total);
         $this->display();
     }
 }
示例#4
0
 public function chongzhi()
 {
     if (IS_POST) {
         //页面上通过表单选择在线支付类型,支付宝为alipay 财付通为tenpay
         $paytype = I('post.paytype');
         $pay = new \Think\Pay($paytype, C('payment.' . $paytype));
         $order_no = $pay->createOrderNo();
         //充值,生成订单号
         $body = C('SITENAME') . "会员充值";
         //商品描述
         $title = C('SITENAME') . "会员充值";
         //设置商品名称
         $vo = new \Think\Pay\PayVo();
         $vo->setBody($body)->setFee(I('post.money'))->setOrderNo($order_no)->setTitle($title)->setCallback("Home/Pay/successaccount")->setUrl(U("Home/Pay/over"))->setParam(array('order_id' => $order_no));
         echo $pay->buildRequestForm($vo);
     } else {
         if (!is_login()) {
             $this->error("您还没有登陆", U("User/login"));
         }
         /* 菜单调用*/
         $menu = R('index/menulist');
         $this->assign('categoryq', $menu);
         /* 热词调用*/
         $hotsearch = R("Index/getHotsearch");
         $this->assign('hotsearch', $hotsearch);
         /* uid调用*/
         $user = session('user_auth');
         $uid = $user['uid'];
         $score = get_score($uid);
         /* 底部分类调用*/
         $menulist = R('Service/AllMenu');
         $this->assign('footermenu', $menulist);
         /* 积分兑换*/
         $ratio = $score / C('RATIO');
         $this->assign('ratio', $ratio);
         $this->meta_title = '账号充值';
         //在此之前goods1的业务订单已经生成,状态为等待支付
         $id = I("get.orderid");
         $order = D("order");
         $this->assign('codeid', $id);
         $total = $order->where("orderid='{$id}'")->getField('pricetotal');
         $this->assign('goodprice', $total);
         $this->display();
     }
 }
示例#5
0
 public function chongzhi()
 {
     if (IS_POST) {
         //页面上通过表单选择在线支付类型,支付宝为alipay 财付通为tenpay
         /* 支付设置 */
         $payment = array('tenpay' => array('key' => C('TENPAYKEY'), 'partner' => C('TENPAYPARTNER')), 'alipay' => array('email' => C('ALIPAYEMAIL'), 'key' => C('ALIPAYKEY'), 'partner' => C('ALIPAYPARTNER')), 'palpay' => array('business' => C('PALPAYPARTNER')), 'yeepay' => array('key' => C('YEEPAYPARTNER'), 'partner' => C('YEEPAYKEY')), 'kuaiqian' => array('key' => C('KUAIQIANPARTNER'), 'partner' => C('KUAIQIANKEY')), 'unionpay' => array('key' => C('UNIONPARTNER'), 'partner' => C('UNIONKEY')));
         $paytype = I('post.paytype');
         $pay = new \Think\Pay($paytype, $payment[$paytype]);
         $order_no = $pay->createOrderNo();
         //充值,生成订单号
         $body = C('SITENAME') . "会员充值";
         //商品描述
         $title = C('SITENAME') . "会员充值";
         //设置商品名称
         $vo = new \Think\Pay\PayVo();
         $vo->setBody($body)->setFee(I('post.money'))->setOrderNo($order_no)->setTitle($title)->setCallback("Home/Pay/successaccount")->setUrl(U("Home/Pay/over"))->setParam(array('order_id' => $order_no));
         echo $pay->buildRequestForm($vo);
     } else {
         /* 菜单调用*/
         $menu = R('index/menulist');
         $this->assign('categoryq', $menu);
         /* 热词调用*/
         $hotsearch = R("Index/getHotsearch");
         $this->assign('hotsearch', $hotsearch);
         /* uid调用*/
         $user = session('user_auth');
         $uid = $user['uid'];
         $score = get_score($uid);
         /* 底部分类调用*/
         $menulist = R('Service/AllMenu');
         $this->assign('footermenu', $menulist);
         /* 积分兑换*/
         $ratio = $score / C('RATIO');
         $this->assign('ratio', $ratio);
         $this->meta_title = '账号充值';
         //在此之前goods1的业务订单已经生成,状态为等待支付
         $id = I("get.orderid");
         $order = D("order");
         $this->assign('codeid', $id);
         $total = $order->where("orderid='{$id}'")->getField('pricetotal');
         $this->assign('goodprice', $total);
         $this->display();
     }
 }
示例#6
0
 /**
  * 在线支付
  * 先判断是否是在线充值,在线支付订单需要有订单号;
  * 查询出订单信息之后将必需信息提交到支付宝;
  * 
  * 在线充值需在先生成订单信息,然后再将必需信息提交到支付宝;
  * 
  */
 public function index()
 {
     if (IS_POST) {
         $member_id = session('home_member_id');
         /*获取充值用户ID*/
         if (!$member_id) {
             $this->error('请登录后在操作', U('/User/Login/index'));
         }
         /*接收参数*/
         $posts = I('post.');
         $order_id = $posts['order_id'];
         /*获取订单ID*/
         $paytype = $posts['pay_type'];
         /*获取支付方式*/
         if ($order_id) {
             /*判断是订单支付还是在线充值*/
             /* 如果有订单ID则是订单支付 */
             /*获取即将被支付的订单*/
             $info = get_info($this->table, array('id' => $order_id, 'status' => 1));
             if (!$info) {
                 $this->error('订单不存在或已经支付');
             }
             /*获取订单号*/
             $order_no = $info['order_num'];
             $title = $info['title'];
             // 				$title = '商品一';
             $total_price = $info['total_price'];
             $param = array('order_id' => $order_id, 'shop_id' => $info['shop_id'], 'member_id' => $info['member_id']);
         } else {
             /* 没有订单ID则是在线充值 */
             $total_price = $posts['recharge_money'];
             /*获取充值金额*/
             if (floatval($total_price) <= 0) {
                 $this->error('充值金额必须大于0');
             }
             $order_no = get_order_num(C('PLATFORM_ID'), $member_id);
             $title = '账户余额充值';
             $_POST = array('title' => $title, 'qty' => '1', 'shop_id' => 0, 'order_num' => $order_no, 'member_id' => $member_id, 'total_price' => $total_price, 'status' => '1', 'pay_type' => '2', 'description' => '账户余额充值', 'type' => '1');
             $res = update_data($this->table);
             if (is_numeric($res)) {
                 /*@liuqiao  购买商品后增加积分*/
                 $get_coin = get_coin_points($total_price, $member_id);
             }
             $param = array('order_id' => $res, 'shop_id' => 0, 'member_id' => $member_id);
             if (!is_numeric($res)) {
                 $this->error('订单生成失败');
             }
         }
         if ($paytype == 'alipay') {
             $callBack = "Pay/pay";
             //$total_price=0.01;//测试完后 删除
             //$param['test']='1';
             // echo $paytype,' -- ',$order_no,' -- ',$title,' -- ',$callBack,' -- ',$param;exit;
             $callBack = "Pay/pay";
             $vo = new \Think\Pay\PayVo();
             $vo->setType($paytype)->setBody("支付成功后请不要关闭窗口,等待自动跳转")->setFee($total_price)->setOrderNo($order_no)->setTitle($title)->setCallback($callBack)->setUrl(U('/Pay/success'))->setParam($param);
             //必要的一些信息,用来产生动态时调用相关数据
             $payment_conf = C('payment.' . $paytype);
             $pay = new \Think\Pay($paytype, $payment_conf);
             echo $pay->buildRequestForm($vo);
         }
     } else {
         $paytype = 'alipay';
         $callBack = "Pay/pay";
         $title = '异步通知支付测试';
         $total_price = 0.01;
         $param['test'] = '1';
         $order_no = get_order_num(1, 1);
         $callBack = "Pay/pay";
         $vo = new \Think\Pay\PayVo();
         $vo->setType($paytype)->setBody("支付成功后请不要关闭窗口,等待自动跳转")->setFee($total_price)->setOrderNo($order_no)->setTitle($title)->setCallback($callBack)->setUrl(U('/Pay/success'))->setParam($param);
         //必要的一些信息,用来产生动态时调用相关数据
         $payment_conf = C('payment.' . $paytype);
         $pay = new \Think\Pay($paytype, $payment_conf);
         echo $pay->buildRequestForm($vo);
     }
 }