Parcourir la source

fix pay modle

stanley-king il y a 8 ans
Parent
commit
d14cd006bc

+ 1 - 8
admin/control/predeposit.php

@@ -708,12 +708,7 @@ class predepositControl extends SystemControl{
 				showMessage($e->getMessage(),'index.php?act=predeposit&op=pd_log_list','html','error');
 			}
 	}
-	
-	
-	
-	
-	
-	
+
 	//取得会员信息
 	public function checkmemberOp(){
 		$name = trim($_GET['name']);
@@ -737,6 +732,4 @@ class predepositControl extends SystemControl{
 			echo ''; die;
 		}
 	}
-	
-	
 }

+ 10 - 11
data/logic/payment.logic.php

@@ -52,19 +52,17 @@ class paymentLogic
     {
         //验证订单信息
         $model_order = Model('order');
-        $order_pay_info = $model_order->getOrderPayInfo(array('pay_sn' => $pay_sn, 'buyer_id' => $member_info['member_id']));
+        $order_pay_info = $model_order->getOrderPayInfo(['pay_sn' => $pay_sn, 'buyer_id' => $member_info['member_id']],true);
         if (empty($order_pay_info)) {
             return false;
         }
         $member_id = intval($member_info['member_id']);
-
         $mod_member = Model('member');
         $pd_amount = $mod_member->getPdAmount($member_id);
-        $order_list = $model_order->getNormalOrderList(array('pay_sn' => $pay_sn));
+        $order_list = $model_order->getNormalOrderListEx(['pay_sn' => $pay_sn],true);
         $model_pd = Model('predeposit');
         $pred = new predeposit_helper($member_id);
 
-
         $pd_amount = intval($pd_amount * 100 + 0.5);
         foreach ($order_list as $order_info)
         {
@@ -73,8 +71,9 @@ class paymentLogic
                 $trans = new trans_wapper(null, __METHOD__);
                 $order_pd_amount = $pred->calc_pred($order_info, $pd_amount, $no_cash, $rates);
                 if (!empty($rates)) {
-                    Model()->table('order')->where(array('order_id' => $order_info['order_id']))->update(array('bonus_rate' => serialize($rates)));
+                    Model()->table('order')->where(['order_id' => $order_info['order_id']])->update(['bonus_rate' => serialize($rates)]);
                 }
+
                 $pd_amount -= $order_pd_amount;
                 $fEdit = true;
                 if ($no_cash) {
@@ -93,7 +92,7 @@ class paymentLogic
 
                 if ($fEdit)
                 {
-                    $data_pd = array();
+                    $data_pd = [];
                     $data_pd['member_id'] = $member_id;
                     $data_pd['member_name'] = $member_info['member_name'];
                     $data_pd['amount'] = floatval($order_pd_amount) / 100;
@@ -106,8 +105,8 @@ class paymentLogic
                     }
 
                     // 修改订单
-                    $data_order = array('pd_amount' => $order_info['pd_amount']);
-                    $ret = $model_order->editOrder($data_order, array('order_id' => $order_info['order_id']));
+                    $data_order = ['pd_amount' => $order_info['pd_amount']];
+                    $ret = $model_order->editOrder($data_order, ['order_id' => $order_info['order_id']]);
                     if (0 == $ret) {
                         throw new Exception("订单更新失败");
                     }
@@ -133,7 +132,7 @@ class paymentLogic
      * @param int $member_id
      * @return array
      */
-    public function getRealOrderInfo($pay_sn, $member_id = null)
+    public function getRealOrderInfo($pay_sn, $member_id = null,$master = false)
     {
         //验证订单信息
         $model_order = Model('order');
@@ -142,7 +141,7 @@ class paymentLogic
         if (!empty($member_id)) {
             $condition['buyer_id'] = $member_id;
         }
-        $order_pay_info = $model_order->getOrderPayInfo($condition);
+        $order_pay_info = $model_order->getOrderPayInfo($condition,$master);
         if (empty($order_pay_info)) {
             return callback(false, '该支付单不存在');
         }
@@ -152,7 +151,7 @@ class paymentLogic
 
         $condition = array();
         $condition['pay_sn'] = $pay_sn;
-        $order_list = $model_order->getNormalOrderList($condition);
+        $order_list = $model_order->getNormalOrderListEx($condition,$master);
 
         //计算本次需要在线支付的订单总金额
         $pay_amount = 0;

+ 6 - 0
data/logic/queue.logic.php

@@ -628,6 +628,12 @@ class queueLogic
         account_helper::onPredeposit($param['change_type'],$param['buyer_id'],$param['order_sn']);
         return callback(true);
     }
+    public function onPaySuccess($param)
+    {
+        $pay_sn = $param['pay_sn'];
+        account_helper::onPaySuccess($pay_sn);
+        return callback(true);
+    }
 
     public function reset_fcode($param)
     {

+ 5 - 0
data/model/order.model.php

@@ -93,6 +93,11 @@ class orderModel extends Model
         return $this->getOrderList($condition, $pagesize, $field, $order, $limit, $extend,$master);
     }
 
+    public function getNormalOrderListEx($condition, $master = false){
+        $condition['delete_state'] = 0;
+        return $this->getOrderList($condition, '', '*', 'order_id desc', '', [],$master);
+    }
+
     /**
      * 取得订单列表(所有)
      * @param unknown $condition

+ 9 - 9
helper/pay_helper.php

@@ -51,7 +51,7 @@ class pay_helper
         }
 
         $logic_payment = Logic('payment');
-        $payinfo = $logic_payment->getRealOrderInfo($pay_sn, $_SESSION['member_id']);
+        $payinfo = $logic_payment->getRealOrderInfo($pay_sn, $_SESSION['member_id'],true);
         if (intval($payinfo['data']['api_pay_state']) != 0) {
             $err = array('code' => errcode::ErrPayment, 'msg' => $payinfo['msg']);
             return false;
@@ -111,7 +111,7 @@ class pay_helper
     public static function confirm($pay_sn,&$err,&$amount,&$fcode_state)
     {
         $logic_payment = Logic('payment');
-        $result = $logic_payment->getRealOrderInfo($pay_sn);
+        $result = $logic_payment->getRealOrderInfo($pay_sn,null,true);
         if(empty($result)) {
             $err = ['code'=> errcode::ErrOrder,'msg' => '无此订单.'];
             return false;
@@ -131,7 +131,7 @@ class pay_helper
     public static function check_fee($pay_sn,$total_fee,&$need_pay)
     {
         $logic_payment = Logic('payment');
-        $result = $logic_payment->getRealOrderInfo($pay_sn);
+        $result = $logic_payment->getRealOrderInfo($pay_sn,null,true);
 
         if (intval($result['data']['api_pay_state']) != 0) {
             return false;
@@ -146,7 +146,7 @@ class pay_helper
     static public function paied($pay_sn)
     {
         $logic_payment = Logic('payment');
-        $result = $logic_payment->getRealOrderInfo($pay_sn);
+        $result = $logic_payment->getRealOrderInfo($pay_sn,null,true);
         if (intval($result['data']['api_pay_state']) != 0) {
             return true;
         }
@@ -225,12 +225,12 @@ class pay_helper
     public function OnSuccess($pay_sn)
     {
         $logic_payment = Logic('payment');
-        $result = $logic_payment->getRealOrderInfo($pay_sn);
+        $result = $logic_payment->getRealOrderInfo($pay_sn,null,true);
 
         if($result['state'] != true) {
             return false;
         } else {
-            account_helper::onPaySuccess($pay_sn);
+            QueueClient::push('onPaySuccess',['pay_sn' => $pay_sn]);
             return true;
         }
     }
@@ -243,7 +243,7 @@ class pay_helper
         if (!empty($tmp[1])) {
             $order_type = $tmp[1];
         } else {
-            $order_pay_info = Model('order')->getOrderPayInfo(array('pay_sn' => $paysn));
+            $order_pay_info = Model('order')->getOrderPayInfo(array('pay_sn' => $paysn),true);
             if (empty($order_pay_info)) {
                 $order_type = 'v';
             } else {
@@ -253,7 +253,7 @@ class pay_helper
 
         if ($order_type == 'r')
         {
-            $result = $logic_payment->getRealOrderInfo($paysn);
+            $result = $logic_payment->getRealOrderInfo($paysn,null,true);
             if (intval($result['data']['api_pay_state'])) {
                 return array('state' => true);
             }
@@ -262,7 +262,7 @@ class pay_helper
         }
         elseif ($order_type == 'v')
         {
-            $result = $logic_payment->getVrOrderInfo($paysn, null, true);
+            $result = $logic_payment->getVrOrderInfo($paysn);
             if ($result['data']['order_state'] != ORDER_STATE_NEW) {
                 return array('state' => true);
             }

+ 9 - 1
mobile/framework/function/function.php

@@ -52,7 +52,7 @@ function joutput_data($datas,$type='')
         }
         ob_start();
     }
-    
+
     if(!empty($type) && $type == 'web') {
         echo(json_encode($data,JSON_UNESCAPED_UNICODE));
     } else {
@@ -71,6 +71,14 @@ function joutput_error($code,$message = '',$type='')
     $data['message'] =  $message;
     $data['datas'] = null;
 
+    if($_SESSION['client_type'] != 'ajax')
+    {
+        $contents = ob_get_clean();
+        if(!empty($contents)) {
+            Log::record($contents,Log::ERR);
+        }
+        ob_start();
+    }
     Log::record("code = {$code} message = {$message}",Log::ERR);
 
     if(!empty($type) && $type == 'web') {

+ 0 - 2
test/funargsTest.php

@@ -12,9 +12,7 @@ class funargsTest extends PHPUnit_Framework_TestCase
     {
         foo("1",2,3);
         $sum = add(1,3,4);
-
     }
-
 }