Parcourir la source

fix RefillBase::find_quality short one parmas bug

stanley-king il y a 3 ans
Parent
commit
20a5b964ba

+ 7 - 2
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): array {
-        return $this->mPolicy->find_quality($mchid,$spec,$card_type,$org_quality,$times,$period);
+    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 notify($chname, $input)
@@ -155,6 +155,11 @@ class RefillBase
         $used_time = time() - intval($refill_info['order_time']);
         $commit_times = intval($refill_info['commit_times']);
 
+        //三方充值,不做重试
+        if($card_type == mtopcard\ThirdRefillCard) {
+            return [false,null];
+        }
+
         [$org_quality,$quality] = $this->find_quality($mchid,$spec,$card_type,$org_quality,$commit_times,$used_time);
         if($quality <= 0) return [false,null];
 

+ 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): array;
+    public function find_quality($mchid,$spec,$card_type,$quality,$times,$used_time,$pcode): 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

@@ -98,7 +98,7 @@ class policy extends ProviderManager implements IPolicy
         return $this->mPrices->price($mchid,$card_type,$spec,$quality,$pcode);
     }
 
-    public function find_quality($mchid,$spec,$card_type,$org_quality,$times,$used_time): array
+    public function find_quality($mchid,$spec,$card_type,$org_quality,$times,$used_time,$pcode): array
     {
         [$org_quality,$qualities] = $this->mQuality->find_quality($mchid,$card_type,$org_quality,$times,$used_time);
         if(empty($qualities)) {
@@ -107,7 +107,7 @@ class policy extends ProviderManager implements IPolicy
 
         foreach ($qualities as $quality)
         {
-            $price = $this->mPrices->price($mchid,$card_type,$spec,$quality);
+            $price = $this->mPrices->price($mchid,$card_type,$spec,$quality,$pcode);
             if($price === false) {
                 Log::record("{$mchid} 没有协商 quality = {$quality} 价格",Log::DEBUG);
                 continue;

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

@@ -55,7 +55,7 @@ class merchant_price
                 return false;
             }
         }
-        elseif($card_type === mtopcard\ThirdRefillCard) {
+        elseif($card_type === mtopcard\ThirdRefillCard && !empty($pcode)) {
             $thrid_refill = Model('thrid_refill');
             $price = $thrid_refill->getMerchantPrice($mchid,$pcode);
             return $price;

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

@@ -109,10 +109,10 @@ class policy extends ProviderManager implements IPolicy
 
     public function price($mchid,$spec,$card_type,$quality,$pcode)
     {
-        return $this->mPrices->price($mchid,$card_type,$spec,$quality);
+        return $this->mPrices->price($mchid,$card_type,$spec,$quality,$pcode);
     }
 
-    public function find_quality($mchid,$spec,$card_type,$org_quality,$times,$used_time): array
+    public function find_quality($mchid,$spec,$card_type,$org_quality,$times,$used_time,$pcode): array
     {
         [$org_quality,$qualities] = $this->mQuality->find_quality($mchid,$card_type,$org_quality,$times,$used_time);
         if(empty($qualities)) {
@@ -121,7 +121,7 @@ class policy extends ProviderManager implements IPolicy
 
         foreach ($qualities as $quality)
         {
-            $price = $this->mPrices->price($mchid,$card_type,$spec,$quality);
+            $price = $this->mPrices->price($mchid,$card_type,$spec,$quality,$pcode);
             if($price === false) {
                 Log::record("{$mchid} 没有协商 quality = {$quality} 价格",Log::DEBUG);
                 continue;

+ 1 - 1
rdispatcher/processor.php

@@ -56,7 +56,7 @@ class processor extends queue\ILooper
                         $order_id = intval($params['order_id']);
                         $this->mProxy->manual_cancel($order_id);
                     }
-                    if ($method == 'addthird') {
+                    elseif ($method == 'addthird') {
                         $this->mProxy->addthird($params);
                     }
                     else {

+ 14 - 1
test/TestRefillThird.php

@@ -31,6 +31,19 @@ class TestRefillThird extends TestCase
 
     }
 
+    public function testPushPhone()
+    {
+        $params = [ 'mchid' => 9618,
+            'buyer_id' => 6,
+            'amount' => 30,
+            'mch_order' => $this->make_sn(),
+            'org_quality' => 1,
+            'card_no' => '13911129867'
+        ];
+
+        $ret = refill\util::push_add($params);
+    }
+
     public function testPushThird()
     {
         $params = [ 'mchid' => 9618,
@@ -58,7 +71,7 @@ class TestRefillThird extends TestCase
 
     public function testAddQQ()
     {
-        $params = $this->params()
+//        $params = $this->params()
 
     }