Browse Source

add 预回调运营商拦截

stanley-king 2 years ago
parent
commit
76d76e8710
2 changed files with 10 additions and 6 deletions
  1. 8 5
      helper/refill/policy/transfer.php
  2. 2 1
      rdispatcher/proxy.php

+ 8 - 5
helper/refill/policy/transfer.php

@@ -56,13 +56,14 @@ class transfer
                 $tmchid = intval($transfer_cfg['transfer_mchid']);
                 $lower_time = intval($transfer_cfg['transfer_lowertime']);
                 $upper_time = intval($transfer_cfg['transfer_uppertime']);
+                $card_types = $transfer_cfg['card_types'] ?? [];
 
                 if ($opened == 1 && $tmchid > 0 && $tmchid != $mchid && $lower_time > 0 && $upper_time > $lower_time)
                 {
                     $admin_id = $mch_checker($tmchid);
                     if($admin_id > 0) {
                         $this->mMchid2Infos[$mchid] = ['transfer_mchid' => $tmchid, 'admin_id' => $admin_id,
-                            'lower_time' => $lower_time, 'upper_time' => $upper_time];
+                            'lower_time' => $lower_time, 'upper_time' => $upper_time,'card_types' => $card_types];
                     }
 
                 }
@@ -70,7 +71,7 @@ class transfer
         }
     }
 
-    public function need_transfer($mchid,$order_time)
+    public function need_transfer($mchid,$order_time,$card_type)
     {
         if(array_key_exists($mchid,$this->mMchid2Infos))
         {
@@ -78,12 +79,14 @@ class transfer
 
             $lower_time = $transfer_cfg['lower_time'];
             $upper_time = $transfer_cfg['upper_time'];
+            $card_types = $transfer_cfg['card_types'];
 
             $elpse_secs = time() - $order_time;
-            if($lower_time <= $elpse_secs && $upper_time > $elpse_secs) {
+            if ($lower_time <= $elpse_secs && $upper_time > $elpse_secs) {
                 return true;
-            }
-            else {
+            } elseif (in_array($card_type, $card_types)) {
+                return true;
+            } else {
                 return false;
             }
         }

+ 2 - 1
rdispatcher/proxy.php

@@ -31,7 +31,8 @@ class proxy
     {
         $order_time = $order->order_time();
         $mchid = $order->mchid();
-        $ret = refill\transfer::instance()->need_transfer($mchid,$order_time);
+        $card_type = $order->card_type();
+        $ret = refill\transfer::instance()->need_transfer($mchid,$order_time,$card_type);
 
         return $ret;
     }