Pārlūkot izejas kodu

fix regin_no error

stanley-king 3 gadi atpakaļ
vecāks
revīzija
333174a496

+ 4 - 3
helper/refill/RefillBase.php

@@ -44,8 +44,8 @@ class RefillBase
         $this->mPolicy->load();
     }
 
-    public function find_quality($mchid,$spec,$card_type,$org_quality,$times,$period,$pcode = ''): array {
-        return $this->mPolicy->find_quality($mchid,$spec,$card_type,$org_quality,$times,$period,$pcode);
+    public function find_quality($mchid,$spec,$card_type,$org_quality,$times,$period,$pcode = '',$regin_no = -1): array {
+        return $this->mPolicy->find_quality($mchid,$spec,$card_type,$org_quality,$times,$period,$pcode,$regin_no);
     }
 
     public function notify($chname, $input)
@@ -170,13 +170,14 @@ class RefillBase
         $org_quality = intval($refill_info['org_quality']);
         $used_time = time() - intval($refill_info['order_time']);
         $commit_times = intval($refill_info['commit_times']);
+        $regin_no = $refill_info['regin_no'];
 
         //三方充值,不做重试
         if($card_type == mtopcard\ThirdRefillCard) {
             return [false,null];
         }
 
-        [$org_quality,$quality] = $this->find_quality($mchid,$spec,$card_type,$org_quality,$commit_times,$used_time);
+        [$org_quality,$quality] = $this->find_quality($mchid,$spec,$card_type,$org_quality,$commit_times,$used_time,"",$regin_no);
         if($quality <= 0) return [false,null];
 
         $params = [ 'mchid' => $refill_info['mchid'],

+ 1 - 1
helper/refill/policy/IPolicy.php

@@ -7,7 +7,7 @@ namespace refill;
 interface IPolicy
 {
     //[orgian_quality,current_quality]
-    public function find_quality($mchid,$spec,$card_type,$quality,$times,$used_time,$pcode): array;
+    public function find_quality($mchid,$spec,$card_type,$quality,$times,$used_time,$pcode,$regin_no): array;
     public function allow($mchid,$card_type,$amount,$quality) : bool;
     public function notify($order_info, $refill_info) : bool;
     public function price($mchid,$spec,$card_type,$quality,$pcode);

+ 2 - 2
helper/refill/policy/lingzh/policy.php

@@ -106,7 +106,7 @@ class policy extends ProviderManager implements IPolicy
         return count($providers);
     }
 
-    public function find_quality($mchid,$spec,$card_type,$org_quality,$times,$used_time,$pcode): array
+    public function find_quality($mchid,$spec,$card_type,$org_quality,$times,$used_time,$pcode,$regin_no): array
     {
         if($card_type == mtopcard\SinopecCard || $card_type == mtopcard\PetroChinaCard) {
             $caller = new times_caller($mchid,$spec,$card_type,-1,$this);
@@ -126,7 +126,7 @@ class policy extends ProviderManager implements IPolicy
                 continue;
             }
 
-            [$providers,$overload] = $this->find_providers($mchid,$spec,$card_type,$quality,-1);
+            [$providers,$overload] = $this->find_providers($mchid,$spec,$card_type,$quality,$regin_no);
             if (!empty($providers))
             {
                 if (!$overload) {

+ 2 - 2
helper/refill/policy/xyz/policy.php

@@ -118,7 +118,7 @@ class policy extends ProviderManager implements IPolicy
         return count($providers);
     }
 
-    public function find_quality($mchid,$spec,$card_type,$org_quality,$times,$used_time,$pcode): array
+    public function find_quality($mchid,$spec,$card_type,$org_quality,$times,$used_time,$pcode,$regin_no): array
     {
         if($card_type == mtopcard\SinopecCard || $card_type == mtopcard\PetroChinaCard) {
             $caller = new times_caller($mchid,$spec,$card_type,-1,$this);
@@ -138,7 +138,7 @@ class policy extends ProviderManager implements IPolicy
                 continue;
             }
 
-            [$providers,$overload] = $this->find_providers($mchid,$spec,$card_type,$quality,-1);
+            [$providers,$overload] = $this->find_providers($mchid,$spec,$card_type,$quality,$regin_no);
             if (!empty($providers))
             {
                 if (!$overload) {

+ 3 - 3
rdispatcher/proxy.php

@@ -32,7 +32,7 @@ class proxy
 
         $org_quality = intval($params['org_quality']) ?? 0;
         $card_type   = intval($params['card_type']) ?? 0;
-        $regin_no   = intval($params['regin_no']) ?? 0;
+        $regin_no   = intval($params['regin_no']) ?? -1;
         $quantity = 1;
 
         refill\util::push_queue_order($mchid,$mch_order,ORDER_STATE_SEND);
@@ -53,7 +53,7 @@ class proxy
         }
 
         Log::record("proxy::add mch_order={$mch_order} card_no = {$card_no} regin_no={$regin_no}",Log::DEBUG);
-        [$org_quality,$quality] = refill\RefillFactory::instance()->find_quality($mchid,$amount,$card_type,$org_quality,$commit_times,time() - $order_time);
+        [$org_quality,$quality] = refill\RefillFactory::instance()->find_quality($mchid,$amount,$card_type,$org_quality,$commit_times,time() - $order_time,'',$regin_no);
         if($first_comit) {
             refill\util::incr_user_commit($mchid,$card_type,$amount,$org_quality);
         }
@@ -88,7 +88,7 @@ class proxy
             }
             elseif(($errcode === refill\errcode::MERCHANT_REFILL_ERROR && $neterr) || $errcode == refill\errcode::PROVIDER_OVERLOAD || $errcode == errcode::MERCHANT_PRICE_UNSETTING)
             {
-                [$org_quality,$quality] = refill\RefillFactory::instance()->find_quality($mchid,$amount,$card_type,$org_quality,$commit_times,time() - $order_time);
+                [$org_quality,$quality] = refill\RefillFactory::instance()->find_quality($mchid,$amount,$card_type,$org_quality,$commit_times,time() - $order_time,'',$regin_no);
                 if ($quality > 0) {
                     $fNotify = false;
                     $params['order_id'] = $order_id;