where(array('order_id'=>get_url_id('id')))->find(); $data['notify_url']=C('SITE_URL').U('Payment/alipay_notify'); $data['return_url']=C('SITE_URL').U('Payment/alipay_return'); $data['order_type']='goods_buy'; $data['subject']='购买商品'; $data['name']=$order['shipping_name']; $data['pay_order_no']=$order['order_num_alias']; $data['pay_total']=(float)$order['total']; storage_user_action(session('user_auth.uid'),session('user_auth.username'),C('FRONTEND_USER'),'点击了去支付订单 '.$order['order_num_alias']); $url=$this->pay_api($order['payment_code'], $data); @header("Location: ".$url); die(); } /** 接受快递鸟通知 **/ function kuaidiniao() { echo json_encode(array('Success'=>true)); $request_data = I('post.RequestData'); $request_data = htmlspecialchars_decode($request_data); $request_data_arr = json_decode($request_data,true); foreach($request_data_arr['Data'] as $data) { $LogisticCode = $data['LogisticCode']; $trace = serialize($data['Traces']); M('order')->where( array('shipping_no' => $LogisticCode) )->save( array('shipping_traces' => $trace) ); } } /** * 提交订单支付 * @param unknown $order_id */ function order_pay() { $order_id = I('get.order_id',0); if($order_id > 0) { $order = M('order')->where( array('order_id' => $order_id) )->find(); if($order['order_status_id'] == 3) { if($order['total'] <= 0) { $this->yuer_payreturn($order['order_num_alias']); } else { $order['payment_code'] = empty($order['payment_code']) ? 'wxpay': $order['payment_code']; //单独支付一个店铺的订单 M('order_relate')->where( array('order_id' => $order_id) )->delete(); $order_all_data = array(); $order_all_data['member_id'] = session('user_auth.uid'); $order_all_data['order_num_alias'] = build_order_no(session('user_auth.uid'));; $order_all_data['transaction_id'] = ''; $order_all_data['order_status_id'] = 3; $order_all_data['is_pin'] = $order['is_pin']; $order_all_data['paytime'] = 0; $order_all_data['total_money'] = $order['total']; $order_all_data['addtime'] = time(); $order_all_id = M('order_all')->add($order_all_data); $order_relate_data = array(); $order_relate_data['order_all_id'] = $order_all_id; $order_relate_data['order_id'] = $order_id; $order_relate_data['addtime'] = time(); M('order_relate')->add($order_relate_data); $wxpay_url = C('SITE_URL')."index.php?s=/Payment/wxpay_order/pay_order_no/{$order_all_data[order_num_alias]}"; header('Location: '.$wxpay_url); die(); } } } } /** * $pay_type 购买商品,还是预存款 * $order 订单信息 */ function pay_api($payment_method,$order_all_id){ $order_all = M('order_all')->where( array('id' => $order_all_id) )->find(); if($payment_method=='alipay'){ $alipay= new \Lib\Payment\Alipay(get_payment_config('alipay'),$order_all); return $alipay->get_payurl(); } //wxpay if($payment_method == 'wxpay') { $wxpay_url = C('SITE_URL')."index.php?s=/Payment/wxpay_order/pay_order_no/{$order_all[order_num_alias]}"; echo json_encode( array('code' =>1 ,'url' => $wxpay_url) ); die(); //header('Location: '.$wxpay_url); //$this->redirect( 'Payment/wxpay_order',array('pay_order_no' => $order['order_num_alias']) ); } } //微信支付通知 function weixin_notify() { $lib_path = dirname(dirname( dirname(__FILE__) )).'/Lib/'; $data_path = dirname( dirname(dirname( dirname(__FILE__) )) ).'/Data/wxpaylogs/'.date('Y-m-d')."/"; require_once $lib_path."/Weixin/PayNotifyCallBack.class.php"; $notify = new \PayNotifyCallBack(); $notify->Handle(false); } //开始微信支付订单 function wxpay_order() { $lib_path = dirname(dirname( dirname(__FILE__) )).'/Lib/'; $data_path = dirname( dirname(dirname( dirname(__FILE__) )) ).'/Data/wxpaylogs/'.date('Y-m-d')."/"; RecursiveMkdir($data_path); require_once $lib_path."/Weixin/JsApiPay.class.php"; $pay_order_no = I('get.pay_order_no',0); $order = M('order_all')->where(array('order_num_alias'=>$pay_order_no, 'member_id' => is_login() ))->find(); if(empty($order)) { $this->redirect( U('Index/index') ); } //初始化日志 $logHandler= new \CLogFileHandler( $data_path .date('Y-m-d').'.log'); $log = \Log::Init($logHandler, 15); $member_info = M('member')->where( array('member_id' => $order['member_id']) )->find(); //①、获取用户openid $tools = new \JsApiPay(); //$order['total'] = 0.01; //②、统一下单 $input = new \WxPayUnifiedOrder(); $input->SetBody(mb_substr('商品购买', 0, 30, 'utf-8')); $input->SetAttach(mb_substr('商品购买', 0, 30, 'utf-8')); $input->SetOut_trade_no($order['id'].'-'.time()); $input->SetTotal_fee( ( $order['total_money'] *100) ); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 600)); $input->SetGoods_tag(""); $notify_url = C('SITE_URL').'notify.php'; $input->SetNotify_url($notify_url); $input->SetTrade_type("JSAPI"); $input->SetOpenid($member_info['openid']); $order_str = \WxPayApi::unifiedOrder($input); $jsApiParameters = $tools->GetJsApiParameters($order_str); //var_dump($jsApiParameters);die(); //获取共享收货地址js函数参数 $editAddress = $tools->GetEditAddressParameters(); $hashids = new \Lib\Hashids(C('PWD_KEY'), C('URL_ID')); //$order_id = $hashids->encode($order['id']); if($order['is_pin'] == 1) { $order_relate = M('order_relate')->where( array('order_all_id' => $order['id']) )->find(); $order_id = $hashids->encode($order_relate['order_id']); $refurl = C('SITE_URL')."index.php?s=/Group/info/group_order_id/{$order_id}/is_show/1"; } else { $refurl = C('SITE_URL')."index.php?s=/order/order_all_info/id/{$order[id]}"; } $backurl = C('SITE_URL')."index.php?s=/order/order_all_info/id/{$order[id]}"; $this->order_id = $order['id']; $this->refurl = $refurl; $this->backurl = $backurl; $this->jsApiParameters = $jsApiParameters; $this->editAddress = $editAddress; $this->display(); } //写入订单 function pay(){ $json=array(); //pickup express $pay_method = I('post.pay_method');//支付类型 $order_msg_str = I('post.order_msg_str');//商品订单留言 $quan_arr = I('post.quan_arr');//使用优惠券 //express_method:express_method,pick_mobile:pick_mobile,pick_id:pick_id,pick_name:pick_name $pick_up_id = I('post.pick_id');//$data_s['pick_up_id']; $dispatching = I('post.dispatching');//$data_s['dispatching']; $ziti_name = I('post.pick_name');//$data_s['ziti_name']; $ziti_mobile = I('post.pick_mobile');//$data_s['ziti_mobile']; $order_msg_arr = explode('@,@', $order_msg_str); $msg_arr = array(); foreach($order_msg_arr as $val) { $tmp_val = explode('@_@', $val); $msg_arr[ $tmp_val[0] ] = $tmp_val[1]; } $member_id = session('user_auth.uid'); $order_quan_arr = array(); if( !empty($quan_arr) ) { foreach($quan_arr as $q_val) { $tmp_q = array(); $tmp_q = explode('_',$q_val); $voucher_info = M('voucher_list')->where( array('id' =>$tmp_q[1], 'store_id' =>$tmp_q[0], 'user_id' => session('user_auth.uid'),'consume' =>'N','end_time' => array('gt',time() ) ) )->find(); if( !empty($voucher_info) ) { $order_quan_arr[$tmp_q[0]] = $tmp_q[1]; } } } $cart=new \Lib\Cart(); // 验证商品数量 $buy_type = I('post.buy_type'); $is_pin = 0; if($buy_type == 'pin') { $is_pin = 1; } $goodss = $cart->get_all_goods($buy_type,1); $seller_goodss = array(); $del_integral = 0; foreach($goodss as $key => $val) { if($buy_type == 'dan') { $new_key = 'cart.'.$key; $s = session($new_key); if( isset($s['can_del']) && $s['can_del'] == 1) { $cart->remove($key); }else if(isset($s['old_quantity'])){ $s['quantity'] = $s['old_quantity']; session($new_key,$s); } } $goods_store_field = M('goods')->field('store_id')->where( array('goods_id' => $val['goods_id']) )->find(); $seller_goodss[ $goods_store_field['store_id'] ][$key] = $val; } //付款人 $payment=M('Member')->find(session('user_auth.uid')); //收货人 $add_where = array('member_id'=>session('user_auth.uid')); $address = M('address')->where( $add_where )->order('is_default desc,address_id desc')->find(); $pay_total = 0; //M('order_all') $order_all_data = array(); $order_all_data['member_id'] = session('user_auth.uid'); $order_all_data['order_num_alias'] = build_order_no(session('user_auth.uid'));; $order_all_data['transaction_id'] = ''; $order_all_data['order_status_id'] = 3; $order_all_data['is_pin'] = $is_pin; $order_all_data['paytime'] = 0; $order_all_data['addtime'] = time(); $order_all_id = M('order_all')->add($order_all_data); $integral_model = D('Seller/Integral'); foreach($seller_goodss as $kk => $vv) { $data = array(); $data['member_id']=session('user_auth.uid'); $data['name']=session('user_auth.username'); $data['telephone']=$address['telephone']; $data['shipping_name']=$address['name']; $data['shipping_address']=$address['address']; $data['shipping_tel']=$address['telephone']; $data['shipping_province_id']=$address['province_id']; $data['shipping_city_id']=$address['city_id']; $data['shipping_country_id']=$address['country_id']; $data['shipping_method'] = 0; $data['delivery']=$dispatching; $data['pick_up_id']=$pick_up_id; $data['ziti_name']=$ziti_name; $data['ziti_mobile']=$ziti_mobile; $data['payment_method']=$pay_method; $data['address_id']= $address['address_id']; //quan_arr $data['voucher_id'] = isset($order_quan_arr[$kk]) ? $order_quan_arr[$kk]:0; $data['user_agent']=$_SERVER['HTTP_USER_AGENT']; $data['date_added']=time(); $hashids = new \Lib\Hashids(C('PWD_KEY'), C('URL_ID')); $subject=''; $fare = 0; $goodss = $vv; $trans_free_toal = 0;//运费 $goods_data = array(); $order_total = 0; $is_lottery = 0; $is_integral = 0; foreach($goodss as $key => $good) { if($good['shipping']==1) { //统一运费 $trans_free_toal += $good['goods_freight']; $trans_free = $good['goods_freight']; }else { //运费模板 $trans_free = D('Home/Transport')->calc_transport($good['transport_id'], $good['quantity']*$good['weight'], $address['city_id'] ); $trans_free_toal +=$trans_free; } $goods_info = explode(':', $key); $goods_id = $goods_info[0]; if (!empty($goods_info[1])) { $options = base64_decode($goods_info[1]); } else { $options = ''; } $order_total += $good['total']; $tp_goods_info = M('goods')->field('store_id,type')->where( array('goods_id' =>$good['goods_id'] ) )->find(); if($tp_goods_info['type'] == 'lottery') { $is_lottery = 1; } if($tp_goods_info['type'] == 'integral') { $is_integral = 1; $is_pin = 0; $check_result = $integral_model->check_user_score_can_pay($member_id, $good['sku_str'], $good['goods_id'] ); if($check_result['code'] == 1) { die(); } } $goods_data[] = array( 'goods_id' => $good['goods_id'], 'store_id' => $tp_goods_info['store_id'], 'name' => $good['name'], 'model' => $good['model'], 'is_pin' => $is_pin, 'pin_id' => $good['pin_id'], 'header_disc' => $good['header_disc'], 'option' => $options, 'quantity' => $good['quantity'], 'shipping_fare' => $trans_free, 'price' => $good['price'], 'total' => $good['total'], 'comment' => htmlspecialchars($msg_arr[$key]) ); } $data['type'] = 'normal'; if($is_pin == 1) { $data['type'] = 'pintuan'; if($is_lottery == 1) { $data['type'] = 'lottery'; } } if($is_integral == 1) { $data['type'] = 'integral'; $is_pin = 0; } $data['shipping_fare'] = floatval($trans_free_toal); $data['store_id']= $kk; // $tp_goods_info['store_id'], $data['goodss'] = $goods_data; $data['order_num_alias']=build_order_no($kk); $data['totals'][0]=array( 'code'=>'sub_total', 'title'=>'商品价格', 'text'=>'¥'.$order_total, 'value'=>$order_total ); $data['totals'][1]=array( 'code'=>'shipping', 'title'=>'运费', 'text'=>'¥'.$trans_free_toal, 'value'=>$trans_free_toal ); $data['totals'][2]=array( 'code'=>'total', 'title'=>'总价', 'text'=>'¥'.($order_total+$trans_free_toal), 'value'=>($order_total+$trans_free_toal) ); if($data['voucher_id'] > 0) { $voucher_info = M('voucher_list')->where( array('id' => $data['voucher_id']) )->find(); $data['voucher_credit'] = $voucher_info['credit']; M('voucher_list')->where( array('id' => $data['voucher_id']) )->save( array('consume' => 'Y') ); } else { $data['voucher_credit'] = 0; } $data['total']=($order_total+$trans_free_toal- $data['voucher_credit'] ); //积分商城 if($data['type'] == 'integral') { $del_integral += $order_total;//扣除积分 $data['total'] = 0; $order_total = 0; } $oid=D('Order')->addOrder($data); if($data['delivery'] == 'pickup') { $verify_bool = true; $verifycode = 0; while($verify_bool) { $code = (ceil(time()/100)+rand(10000000,40000000)).rand(1000,9999); $verifycode = $code ? $code : rand(100000,999999); $verifycode = str_replace('1989','9819',$verifycode); $verifycode = str_replace('1259','9521',$verifycode); $verifycode = str_replace('12590','95210',$verifycode); $verifycode = str_replace('10086','68001',$verifycode); $pick_order = M('pick_order')->where( array('pick_sn' => $verifycode) )->find(); if(empty($pick_order)) { $verify_bool = false; } } $pick_data = array(); $pick_data['pick_sn'] = $verifycode; $pick_data['pick_id'] = $pick_up_id; $pick_data['order_id'] = $oid; $pick_data['state'] = 0; $pick_data['ziti_name'] = $ziti_name; $pick_data['ziti_mobile'] = $ziti_mobile; $pick_data['addtime'] = time(); M('pick_order')->add($pick_data); } $pay_total = $pay_total + $order_total+$trans_free_toal- $data['voucher_credit']; $order_relate_data = array(); $order_relate_data['order_all_id'] = $order_all_id; $order_relate_data['order_id'] = $oid; $order_relate_data['addtime'] = time(); M('order_relate')->add($order_relate_data); } M('order_all')->where( array('id' => $order_all_id) )->save( array('total_money' => $pay_total) ); if($order_all_id){ //session('cart_total',null); $order['notify_url']=C('SITE_URL').U('Payment/alipay_notify'); $order['return_url']=C('SITE_URL').U('Payment/alipay_return'); $order['order_type']='goods_buy'; $order['subject']=$subject; $order['name']=session('shipping_name'); $order['order_num_alias']=$data['order_num_alias']; $order['pay_total']=($order_total+$trans_free_toal); //free_tuan //session('back_cart_address_id',null); //session('cart',null); //session('total',null); //session('shipping_address_id',null); //session('back_order_id',$oid); if($data['total']<=0 ) { //检测是否需要扣除积分 //var_dump($del_integral,$is_integral );die(); if($del_integral> 0 && $is_integral == 1) { // $integral_model->charge_member_score( $member_id, $del_integral,'out', 'orderbuy', $oid); } $this->yuer_payreturn($oid); //测试使用 }else { $url=$this->pay_api('wxpay', $order_all_id); } die(); }else{ echo 9999;die(); $url=U('/checkout'); @header("Location: ".$url); die(); } } //写入订单 function pay2(){ $json=array(); if(I('token')!=md5(session('token'))){ $url=U('/checkout'); @header("Location: ".$url); die(); } $cart=new \Lib\Cart(); // 验证商品数量 $goodss = $cart->get_all_goods(); //付款人 $payment=M('Member')->find(session('user_auth.uid')); //收货人 $shipping=M('Address')->find(session('shipping_address_id')); $data['member_id']=session('user_auth.uid'); $data['name']=session('user_auth.username'); $data['telephone']=$payment['telephone']; $data['shipping_name']=$shipping['name']; $data['shipping_address']=$shipping['address']; $data['shipping_tel']=$shipping['telephone']; $data['shipping_province_id']=$shipping['province_id']; $data['shipping_city_id']=$shipping['city_id']; $data['shipping_country_id']=$shipping['country_id']; $data['shipping_method'] = session('express_id'); $data['delivery']=session('shipping_method'); $data['payment_method']=session('payment_method'); $data['address_id']=session('shipping_address_id'); $data['voucher_id']=session('payment_voucher_id'); //payment_voucher_id $data['user_agent']=$_SERVER['HTTP_USER_AGENT']; $data['date_added']=time(); $data['comment']=session('remark'); $hashids = new \Lib\Hashids(C('PWD_KEY'), C('URL_ID')); $subject=''; $fare = 0; if($goodss){ /** $sm=D('Transport')->calc_transport(session('shipping_method'), session('quantity'), $shipping['city_id'] ); **/ $sm = D('Transport')->calc_transport(null, session('quantity'), $shipping['city_id'] ); $t=0; foreach ($goodss as $goods) { $option_data = array(); foreach ($goods['option'] as $option) { $value = $option['value']; $option_data[] = array( 'goods_option_id' => $option['goods_option_id'], 'goods_option_value_id' => $option['goods_option_value_id'], 'option_id' => $option['option_id'], 'option_value_id' => $option['option_value_id'], 'name' => $option['name'], 'value' => $value, 'type' => $option['type'] ); } $tp_goods_info = M('goods')->field('store_id,express_list')->where( array('goods_id' =>$hashids->decode($goods['goods_id'])) )->find(); $express_list_arr = unserialize($tp_goods_info['express_list']); if($data['delivery'] == 'express') { $fare = isset($express_list_arr[$data['shipping_method']]) ? $express_list_arr[$data['shipping_method']]['price'] : 0; } $t+=$goods['total']; $goods['total'] = $goods['total']; $goods_data[] = array( 'goods_id' => $goods['goods_id'], 'name' => $goods['name'], 'is_header_disc' => $goods['is_header_disc'], 'store_id' => $tp_goods_info['store_id'], 'model' => $goods['model'], 'option' => $option_data, 'quantity' => $goods['quantity'], 'pin_type' => $goods['pin_type'], 'pin_id' => $goods['pin_id'], 'price' => $goods['price'], 'total' => $goods['total'] ); $subject.=$goods['name'].' '; } if($data['voucher_id'] > 0) { $voucher_info = M('voucher_list')->where( array('id' => $data['voucher_id']) )->find(); $data['voucher_credit'] = $voucher_info['credit']; M('voucher_list')->where( array('id' => $data['voucher_id']) )->save( array('consume' => 'Y') ); } else { $data['voucher_credit'] = 0; } $data['shipping_fare'] = floatval($fare); $data['total']=($t+$fare - $data['voucher_credit']); $data['goodss'] = $goods_data; $data['order_num_alias']=build_order_no($data['member_id']); $data['totals'][0]=array( 'code'=>'sub_total', 'title'=>'商品价格', 'text'=>'¥'.$t, 'value'=>$t ); $data['totals'][1]=array( 'code'=>'shipping', 'title'=>'运费', 'text'=>'¥'.$fare, 'value'=>$fare ); $data['totals'][2]=array( 'code'=>'voucher', 'title'=>'优惠券', 'text'=>'¥'.$data['voucher_credit'], 'value'=>$data['voucher_credit'] ); $data['totals'][3]=array( 'code'=>'total', 'title'=>'总价', 'text'=>'¥'.($t+$fare- $data['voucher_credit']), 'value'=>($t+$fare- $data['voucher_credit']) ); $oid=D('Order')->addOrder($data); //delivery pickup pick_up_id if($data['delivery'] == 'pickup') { $verify_bool = true; $verifycode = 0; while($verify_bool) { $code = (ceil(time()/100)+rand(10000000,40000000)).rand(1000,9999); $verifycode = $code ? $code : rand(100000,999999); $verifycode = str_replace('1989','9819',$verifycode); $verifycode = str_replace('1259','9521',$verifycode); $verifycode = str_replace('12590','95210',$verifycode); $verifycode = str_replace('10086','68001',$verifycode); $pick_order = M('pick_order')->where( array('pick_sn' => $verifycode) )->find(); if(empty($pick_order)) { $verify_bool = false; } } $pick_data = array(); $pick_data['pick_sn'] = $verifycode; $pick_data['pick_id'] = session('pick_up_id'); $pick_data['order_id'] = $oid; $pick_data['state'] = 0; $pick_data['addtime'] = time(); M('pick_order')->add($pick_data); } if($oid){ session('cart_total',null); $order['notify_url']=C('SITE_URL').U('Payment/alipay_notify'); $order['return_url']=C('SITE_URL').U('Payment/alipay_return'); $order['order_type']='goods_buy'; $order['subject']=$subject; $order['name']=session('shipping_name'); $order['order_num_alias']=$data['order_num_alias']; $order['pay_total']=($t+$sm['price']); //free_tuan $order_goods_info = M('order_goods')->where( array('order_id' => $oid) )->find(); session('back_cart_address_id',null); session('cart',null); session('total',null); session('shipping_address_id',null); session('back_order_id',$oid); if($data['total']<=0 || $order_goods_info['free_tuan'] ==1) { $this->yuer_payreturn($data['order_num_alias']); //测试使用 }else { $url=$this->pay_api('wxpay', $order); } die(); }else{ echo 9999;die(); $url=U('/checkout'); @header("Location: ".$url); die(); } } } public function success() { $order_id = I('get.order_id'); //removeAll $cart=new \Lib\Cart(); $cart->removeAll(); session('total',null); $pin_order = M('pin_order')->field('pin_id')->where( array('order_id' =>$order_id) )->find(); //Order/info/id/14 $redir_url = U('Order/info', array('id' => $order_id)); if(!empty($pin_order)) { $hashids = new \Lib\Hashids(C('PWD_KEY'), C('URL_ID')); $group_order_id = $hashids->encode($order_id); $redir_url = U('Group/info', array('group_order_id' => $group_order_id,'is_show' =>1)); redirect($redir_url,0); } $this->redir_url = $redir_url; $this->order_id = $order_id; $this->display(); } function de_bug($content){ $file = ROOT_PATH."/Tmp/wxpay_debug.php"; file_put_contents($file,$content); } //数据以post方式返回 function alipay_notify(){ $alipay= new \Lib\Payment\Alipay(get_payment_config('alipay')); $verify_result = $alipay->verifyNotify(); if($verify_result) { //$this->de_bug('success'); //商户订单号 //$out_trade_no = $_POST['out_trade_no']; //支付宝交易号 //$trade_no = $_POST['trade_no']; //交易状态 //$trade_status = $_POST['trade_status']; if($_POST['trade_status'] == 'TRADE_FINISHED') { //$this->de_bug('TRADE_FINISHED'); } else if ($_POST['trade_status'] == 'TRADE_SUCCESS') { //$this->de_bug('TRADE_SUCCESS'); $order=M('Order')->getByOrderNumAlias($_POST['out_trade_no']); if($order&&($order['order_status_id']!=C('paid_order_status_id'))){ //支付完成 $o['order_id']=$order['order_id']; $o['order_status_id']=C('paid_order_status_id'); $o['date_modified']=time(); $o['pay_time']=time(); M('Order')->save($o); $oh['order_id']=$order['order_id']; $oh['order_status_id']=C('paid_order_status_id'); $oh['comment']='买家已付款'; $oh['date_added']=time(); $oh['notify']=1; M('OrderHistory')->add($oh); $model=new \Admin\Model\OrderModel(); $this->order=$model->order_info($order['order_id']); $html=$this->fetch('Mail:order'); think_send_mail($order['email'],$order['name'],'下单成功-'.C('SITE_NAME'),$html); storage_user_action(session('user_auth.uid'),session('user_auth.username'),C('FRONTEND_USER'),'支付了订单 '.$order['order_num_alias']); //@header("Location: ".U('/pay_success')); } echo "success"; } }else{ //$this->de_bug('fail'); echo "fail"; } } private function yuer_payreturn($order_id){ // $order=M('Order')->getByOrderNumAlias($out_trade_no); $order=M('Order')->where( array('order_id' => $order_id) )->find(); $out_trade_no = $order['order_num_alias']; if($order['order_status_id']==C('paid_order_status_id')){ @header("Location: ".U('/pay_success')); die; } if($order&&($order['order_status_id']!=C('paid_order_status_id'))){ //支付完成 if(true){ $goods_model = D('Home/Goods'); $kucun_method = C('kucun_method'); $kucun_method = empty($kucun_method) ? 0 : intval($kucun_method); if($kucun_method == 1) {//支付完减库存,增加销量 $order_goods_list = M('order_goods')->where( array('order_id' => $order['order_id']) )->select(); foreach($order_goods_list as $order_goods) { //销量增加 del_goods_mult_option_quantity($order_id,$option,$goods_id,$quantity,$type='1') $goods_model->del_goods_mult_option_quantity($order['order_id'],$order_goods['rela_goodsoption_valueid'],$order_goods['goods_id'],$order_goods['quantity'],1); //扣除库存 } } $oh['order_id']=$order['order_id']; $oh['order_status_id'] = 1; $oh['comment']='买家已付款'; $oh['date_added']=time(); $oh['notify']=0; M('OrderHistory')->add($oh); $pin_order = M('pin_order')->where( array('order_id' =>$order['order_id'] ) )->find(); if(!empty($pin_order)) { $o = array(); $o['order_id']=$order['order_id']; $o['order_status_id']= 2; $o['date_modified']=time(); $o['pay_time']=time(); M('Order')->save($o); //group_order_id $pin_model = D('Home/Pin'); $is_pin_success = $pin_model->checkPinSuccess($pin_order['pin_id']); if($is_pin_success) { //todo send pintuan success notify $pin_model->updatePintuanSuccess($pin_order['pin_id']); }else{ } }else{ $o = array(); $o['order_id']=$order['order_id']; $o['order_status_id']= 1; $o['date_modified']=time(); $o['pay_time']=time(); M('Order')->save($o); $share_model = D('Seller/Fissionsharing'); $share_model->send_order_commiss_money( $order['order_id'] ); } $result = array('code' => 1, 'url' => U('Payment/success',array('order_id' => $order['order_id']))); echo json_encode($result); die(); } } } private function yuer_payreturn2($out_trade_no){ $order=M('Order')->getByOrderNumAlias($out_trade_no); if($order['order_status_id']==C('paid_order_status_id')){ @header("Location: ".U('/pay_success')); die; } if($order&&($order['order_status_id']!=C('paid_order_status_id'))){ //支付完成 if(true){ $o['order_id']=$order['order_id']; $o['order_status_id']= $order['is_pin'] == 1 ? 2:1; $o['date_modified']=time(); $o['pay_time']=time(); M('Order')->save($o); $goods_model = D('Home/Goods'); $kucun_method = C('kucun_method'); $kucun_method = empty($kucun_method) ? 0 : intval($kucun_method); if($kucun_method == 1) {//支付完减库存,增加销量 $order_goods_list = M('order_goods')->where( array('order_id' => $order['order_id']) )->select(); foreach($order_goods_list as $order_goods) { //销量增加 rela_goodsoption_valueid $goods_model->del_goods_mult_option_quantity($order['order_id'],$order_goods['quantity'],1); //扣除库存 } } $oh['order_id']=$order['order_id']; $oh['order_status_id']= $order['is_pin'] == 1 ? 2:1; $oh['comment']='买家已付款'; $oh['date_added']=time(); $oh['notify']=1; M('OrderHistory')->add($oh); //发送购买通知 $weixin_nofity = D('Home/Weixinnotify'); $weixin_nofity->orderBuy($order); $model=new \Admin\Model\OrderModel(); $this->order=$model->order_info($order['order_id']); $hashids = new \Lib\Hashids(C('PWD_KEY'), C('URL_ID')); $order_id = $hashids->encode($order['order_id']); if($order['is_pin'] == 1) { $pin_model = D('Home/Pin'); $is_pin_success = $pin_model->checkPinSuccess($order['pin_id']); if($is_pin_success) { //todo send pintuan success notify $pin_model->updatePintuanSuccess($order['pin_id']); } $refurl = C('SITE_URL')."index.php?s=/Group/info/group_order_id/{$order_id}/is_show/1"; @header("Location: ".$refurl); die(); } else { @header("Location: ".U('Order/info',array('id' =>$order['order_id'] ))); die(); } } } } function alipay_return(){ $alipay= new \Lib\Payment\Alipay(get_payment_config('alipay')); //对进入的参数进行远程数据判断 $verify = $alipay->return_verify(); if($verify){ $order=M('Order')->getByOrderNumAlias($_GET['out_trade_no']); if($order['order_status_id']==C('paid_order_status_id')){ @header("Location: ".U('/pay_success')); die; } if($order&&($order['order_status_id']!=C('paid_order_status_id'))){ //支付完成 if($_GET['trade_status']=='TRADE_SUCCESS'){ $o['order_id']=$order['order_id']; $o['order_status_id']=C('paid_order_status_id'); $o['date_modified']=time(); $o['pay_time']=time(); M('Order')->save($o); $oh['order_id']=$order['order_id']; $oh['order_status_id']=C('paid_order_status_id'); $oh['comment']='买家已付款'; $oh['date_added']=time(); $oh['notify']=1; M('OrderHistory')->add($oh); $model=new \Admin\Model\OrderModel(); $this->order=$model->order_info($order['order_id']); $html=$this->fetch('Mail:order'); think_send_mail($order['email'],$order['name'],'下单成功-'.C('SITE_NAME'),$html); storage_user_action(session('user_auth.uid'),session('user_auth.username'),C('FRONTEND_USER'),'支付了订单 '.$order['order_num_alias']); @header("Location: ".U('/pay_success')); } }else{ die('订单不存在'); } }else{ die('支付失败'); } } }