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();
     }
 }
 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();
     }
 }
 /**
  * 支付结果返回
  */
 public function notify()
 {
     $apitype = I('get.apitype');
     $apitype = safe_replace($apitype);
     //过滤
     /* 支付设置 */
     $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')));
     $pay = new \Think\Pay($apitype, $payment[$apitype]);
     if (IS_POST && !empty($_POST)) {
         $notify = $_POST;
     } elseif (IS_GET && !empty($_GET)) {
         $notify = $_GET;
         unset($notify['method']);
         unset($notify['apitype']);
     } else {
         exit('Access Denied-1');
     }
     //验证
     if ($notify) {
         //获取订单信息
         if ($apitype == 'alipay') {
             $info = $this->setInfo($notify);
         } else {
             $pay->verifyNotify($notify);
             $info = $pay->getInfo();
         }
         if ($info['status']) {
             $payinfo = M("Pay")->field(true)->where(array('out_trade_no' => $info['out_trade_no']))->find();
             if ($payinfo['status'] == 0 && $payinfo['callback']) {
                 session("pay_verify", true);
                 $check = R($payinfo['callback'], array('money' => $info['money'], 'param' => unserialize($payinfo['param'])));
                 if ($check !== false) {
                     M("Pay")->where(array('out_trade_no' => $info['out_trade_no']))->setField(array('update_time' => time(), 'status' => 1));
                 }
             }
             if (I('get.method') == "return") {
                 redirect($payinfo['url']);
             } else {
                 $pay->notifySuccess();
             }
         } else {
             $this->error("支付失败!");
         }
     } else {
         E("Access Denied-2");
     }
 }
Example #5
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();
     }
 }
 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();
     }
 }
 /**
  * 支付结果返回
  */
 public function notify()
 {
     $apitype = I('get.apitype');
     $pay = new \Think\Pay($apitype, C('payment.' . $apitype));
     if (IS_POST && !empty($_POST)) {
         $notify = $_POST;
     } elseif (IS_GET && !empty($_GET)) {
         $notify = $_GET;
         unset($notify['method']);
         unset($notify['apitype']);
     } else {
         exit('Access Denied');
     }
     //验证
     if ($pay->verifyNotify($notify)) {
         //获取订单信息
         $info = $pay->getInfo();
         if ($info['status']) {
             $payinfo = M("Pay")->field(true)->where(array('out_trade_no' => $info['out_trade_no']))->find();
             if ($payinfo['status'] == 0 && $payinfo['callback']) {
                 session("pay_verify", true);
                 $check = R($payinfo['callback'], array('money' => $info['money'], 'param' => unserialize($payinfo['param'])));
                 if ($check !== false) {
                     M("Pay")->where(array('out_trade_no' => $info['out_trade_no']))->setField(array('update_time' => time(), 'status' => 1));
                 }
             }
             if (I('get.method') == "return") {
                 redirect($payinfo['url']);
             } else {
                 $pay->notifySuccess();
             }
         } else {
             $this->error("支付失败!");
         }
     } else {
         E("Access Denied");
     }
 }
Example #8
0
 public function notify()
 {
     $apitype = 'alipay';
     $pay = new \Think\Pay($apitype, C('payment.' . $apitype));
     if (IS_POST && !empty($_POST)) {
         $notify = $_POST;
     } elseif (IS_GET && !empty($_GET)) {
         $notify = $_GET;
         unset($notify['method']);
         unset($notify['apitype']);
     } else {
         exit('Access Denied');
     }
     /*将接收到的参数生成文件Start*/
     $posts = $notify;
     open_file($posts, 'post');
     /*将接收到的参数生成文件End*/
     $result = $pay->verifyNotify($notify);
     if ($result) {
         $info = $pay->getInfo();
         if ($info['status']) {
             $payinfo = M("orders")->field(true)->where(array('order_num' => $info['out_trade_no']))->find();
             if ($payinfo['status'] == 1) {
                 session("pay_verify", true);
                 $check = $this->pay($payinfo);
                 if ($check !== false) {
                     $return_notify = '';
                     if (IS_POST && !empty($_POST)) {
                         $return_notify = 'notify';
                     } elseif (IS_GET && !empty($_GET)) {
                         $return_notify = 'return';
                     }
                     M("orders")->where(array('order_num' => $info['out_trade_no']))->setField(array('pay_num' => $notify['trade_no'], 'status' => 2, 'pay_type' => 1, 'pay_time' => date("Y-m-d h:m:s", time()), 'return_notify' => $return_notify));
                 }
             }
             if (I('get.method') == "return") {
                 redirect(U('success'));
             } else {
                 $pay->notifySuccess();
             }
         } else {
             $this->error("支付失败!");
         }
     } else {
         $this->error("非法访问", '/');
         //E("Access Denied");
     }
 }