Browse Source

充值金额校验

cyzhao 3 years ago
parent
commit
88cace81b4

+ 2 - 0
Gameserver/Amfphp/base/ErrCode.php

@@ -216,6 +216,8 @@ class ErrCode {
     
     const pay_order_product_id = 8817;
     
+    const pay_fail = 8818;
+    
 // </editor-fold>
     //
     // <editor-fold defaultstate="collapsed" desc="    not enough 系列    ">

+ 26 - 11
Gameserver/Amfphp/process/PayProc.php

@@ -59,15 +59,27 @@ class PayProc {
                 return Resp::err(ErrCode::cmd_err);
         }
     }
+            
+    static $retArr;
     
     static function text() {
+        //$result = pay_op::CheckAndDrawOrder(req()->uid,1912111624,array(new PayProc,'distributePayGoods_NEW'));
+        //my_Assert($result->err != 0, ErrCode::shop_firstRechargeNotRepeat);
+        //var_dump($result);             
+    
         return Resp::ok(array(                    
-                    "ret"=>null,
+                    "ret"=>self::$retArr,
         ));
     }
     
+    static function distributePayGoods_NEW($order) {
+        $cash = 10;
+        
+        self::$retArr = array();
+        self::$retArr[] = "2,".$cash;
+    }
+    
     
-    static $retArr;
     /**
      * 领取奖励
      * @return type
@@ -96,8 +108,8 @@ class PayProc {
                     $ts = $user->shopdata->daliySpecial_ts + 7*24*60*60;
                     my_Assert(now() < $ts, ErrCode::shop_daliySpecialRewardNotRepeat);                                    
                 }
-                
-                $itemMO = GameConfig::item_package_getItem($mo->reward);
+                $itemid = explode(',', $mo->reward)[0];
+                $itemMO = GameConfig::item_package_getItem($itemid);
                 my_Assert(null != $itemMO, ErrCode::err_const_no);
                 StoreProc::AddMultiItemInStore($itemMO->contents);
                 self::$retArr[] =$itemMO->contents;
@@ -131,11 +143,11 @@ class PayProc {
 
         UserProc::updateUserInfo();  
         return Resp::ok(array(
+                    "ret"=>self::$retArr,
                     "pay"=>$user->pay,
                     "shopdata"=>req()->userInfo->game->shopdata,
                     "base" => $user->baseInfo,
-                    "store" => $user->store,   
-                    "ret"=>self::$retArr,
+                    "store" => $user->store,                      
         ));
     }
     
@@ -182,17 +194,19 @@ class PayProc {
         list($cpOrderId) = req()->paras;
         $user = req()->userInfo->game;
                 
-        pay_op::CheckAndDrawOrder(req()->uid,$cpOrderId,array(new PayProc,'distributePayGoods'));
+        $result = pay_op::CheckAndDrawOrder(req()->uid,$cpOrderId,array(new PayProc,'distributePayGoods'));
+        my_Assert($result->err == 0, ErrCode::pay_fail);
         
         req()->userInfo->game = $user;
 
         UserProc::updateUserInfo();                                             # 回写玩家数据
         return Resp::ok(array(
+                    "ret"=>self::$retArr,        
                     "pay"=>$user->pay,
                     "base" => $user->baseInfo,
                     "shopdata"=>$user->shopdata,
                     "store" => $user->store,   
-                    "ret"=>self::$retArr,
+                    
         ));
     }
       
@@ -227,7 +241,8 @@ class PayProc {
                 //my_Assert($cur == $order->amount, ErrCode::err_const_no);
                 $user->shopdata->daliySpecial_ts = now();
             } else {
-                $itemMO = GameConfig::item_package_getItem($mo->reward);
+                $itemid = explode(',', $mo->reward)[0];
+                $itemMO = GameConfig::item_package_getItem($itemid);
                 my_Assert(null != $itemMO, ErrCode::err_const_no);
                 StoreProc::AddMultiItemInStore($itemMO->contents);                             
                 $user->shopdata->daliySpecialPackages[] = $mo->typeId;
@@ -240,8 +255,8 @@ class PayProc {
             my_Assert(!in_array($order->product_id, $user->shopdata->limitTsActiveRewardsList), ErrCode::err_const_no);
             
             $user->shopdata->limitTsActiveRewardsList[] = $mo->typeId;
-            
-            $itemMO = GameConfig::item_package_getItem($mo->reward);
+            $itemid = explode(',', $mo->reward)[0];
+            $itemMO = GameConfig::item_package_getItem($itemid);
             my_Assert(null != $itemMO, ErrCode::err_const_no);
             StoreProc::AddMultiItemInStore($itemMO->contents); //领取奖励
             //StoreProc::AddMultiItemInStore($mo->reward);

+ 1 - 1
Gameserver/Amfphp/service_call/pay/official/pay_op.php

@@ -73,7 +73,7 @@ class pay_op {
             CLog::pay('发货回调函数不是可执行对象!' . $cpOrderId);
             return resp::err(6, "发货函数不可调用!");
         }
-        //PayProc::checkAmount($order);
+        PayProc::checkAmount($order);
         
         $bOk = call_user_func($deliverFunc, $order);                            # 调用游戏发货逻辑, 要求游戏逻辑返回true/false      
         if (!$bOk) {