Pārlūkot izejas kodu

debug rcallback

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

+ 1 - 1
docker/compose/stanley/admin/docker-compose.yml

@@ -24,7 +24,7 @@ services:
         - /Volumes/Transcend/upload:/var/www/html/data/upload
         - /Users/stanley-king/work/PHPProject/shoplog:/var/www/html/data/log
         - ../conf/etc/localtime:/etc/localtime:ro
-        - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
+        - ../conf/php/php.ini:/usr/local/etc/php/php.ini
         - ../conf/php-fpm/php-fpm.conf:/usr/local/etc/php-fpm.conf
       container_name: "panda-web"
       command: [php-fpm]

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1951 - 0
docker/compose/stanley/conf/php/php.ini


+ 1 - 2
helper/refill/RefillBase.php

@@ -237,8 +237,7 @@ class RefillBase
         else {
             $logic_vr_order = Logic("vr_order");
             $logic_vr_order->changeOrderStateSuccess($order_id,true);
-            $data = ['commit_time' => time(), 'notify_time' => time()];
-            $mod_refill->edit($order_id, $data);
+            $mod_refill->edit($order_id, ['commit_time' => time(),'notify_time' => time(), 'is_retrying' => 0,'notify_state' => 1]);
             return [true,$order_id,''];
         }
     }

+ 1 - 0
helper/refill/XYZRefillFactory.php

@@ -31,6 +31,7 @@ require_once(BASE_HELPER_PATH . '/refill/policy/overload_assigner.php');
 require_once(BASE_HELPER_PATH . '/refill/policy/interceptor.php');
 require_once(BASE_HELPER_PATH . '/refill/functional.php');
 require_once(BASE_HELPER_PATH . '/refill/chprice_helper.php');
+require_once(BASE_HELPER_PATH . '/refill/policy/transfer.php');
 
 use Log;
 use StatesHelper;

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

@@ -91,7 +91,7 @@ class transfer
         return false;
     }
 
-    public function transfer_mchid($mchid)
+    public function transfer_info($mchid)
     {
         if(array_key_exists($mchid,$this->mMchid2Infos))
         {

+ 3 - 0
rdispatcher/codispatcher.php

@@ -17,6 +17,7 @@ require_once(BASE_HELPER_PATH . '/event_looper.php');
 require_once(BASE_HELPER_PATH . '/queue/rdispatcher.php');
 require_once(BASE_HELPER_PATH . '/algorithm.php');
 require_once(BASE_HELPER_PATH . '/refill/RefillFactory.php');
+
 require_once(BASE_PATH . '/processor.php');
 require_once(BASE_PATH . '/proxy.php');
 
@@ -78,6 +79,7 @@ function subscribe_message(&$quit, &$redis, $channels)
 
                     if($type == 'channel' || $type == 'merchant') {
                         refill\RefillFactory::instance()->load();
+                        refill\transfer::instance()->load();
                     }
                     elseif($type == 'ratio') {
                         $ins = Cache::getInstance('cacheredis');
@@ -140,6 +142,7 @@ for ($i = 0; $i < $process_count;$i++)
     {
         Base::run_util();
         refill\RefillFactory::instance();
+        refill\transfer::instance();
 
         $sub_quit = false;
         $sub_redis = null;

+ 32 - 32
rdispatcher/proxy.php

@@ -4,8 +4,6 @@ declare(strict_types=0);
 require_once(BASE_ROOT_PATH . '/helper/model_helper.php');
 require_once(BASE_HELPER_PATH . '/refill/policy/transfer.php');
 
-use refill;
-
 class proxy
 {
     private function onEerror(refill\order $order,$errmsg)
@@ -40,54 +38,56 @@ class proxy
 
     private function transfer(refill\order $order) : bool
     {
-        $add_success = function (refill\order $order)
-        {
-            $mchid = $order->mchid();
-            $mch_order = $order->mch_order();
-            [$success,$order_id,$errmsg] = refill\RefillFactory::instance()->success_order($order);
-
-            if($success) {
-                refill\util::pop_queue_order($mchid, $mch_order);
-                QueueClient::push("NotifyMerchantComplete", ['order_id' => $order_id, 'manual' => false]);
-            }
-
-            return $success;
+        $order_canceler = function ($order_id,$err_msg) {
+            $logic_vr_order = Logic("vr_order");
+            $order_info = Model('vr_order')->getOrderInfo(['order_id' => $order_id]);
+            $logic_vr_order->changeOrderStateCancel($order_info, '', $err_msg, true, true);
         };
 
-        $transfer_params = function (refill\order $order)
+        $transfer_order = function (refill\order $order)
         {
             $mchid = $order->mchid();
-            $trans_mchid = refill\transfer::instance()->transfer_mchid($mchid);
+            [$trans_mchid,$adminid] = refill\transfer::instance()->transfer_info($mchid);
 
+            if($trans_mchid == 0 || $adminid == 0) {
+                return false;
+            }
 
             $params = ['mchid' => $trans_mchid,
-                'buyer_id' => $this->adminid(),
+                'buyer_id' => $adminid,
                 'amount' => $order->spec(),
                 'card_no' => $order->card_no(),
                 'mch_order' => $order->mch_order(),
-                'notify_url' => $notify_url,
+                'notify_url' => '',
                 'org_quality' => 0,
                 'order_time' => time()
             ];
 
-            refill\util::push_queue_order($this->mchid(),$mch_order,ORDER_STATE_QUEUE);
-            Model('refill_order')->add_detail($this->mchid(),$mch_order,$params,ORDER_STATE_QUEUE);
-
-            [$can_refill, $period] = refill\util::can_commit($card_no, $card_type);
-            if ($can_refill === false) {
-                $state = refill\util::async_add($params, $period);
-            } else {
-                $state = refill\util::push_add($params);
-            }
-
+            $mch_order = $order->mch_order();
+            refill\util::push_queue_order($trans_mchid,$mch_order,ORDER_STATE_QUEUE);
+            Model('refill_order')->add_detail($trans_mchid,$mch_order,$params,ORDER_STATE_QUEUE);
+            $state = refill\util::push_add($params);
 
+            return $state;
         };
 
-        if($add_success($order)) {
-            $params = $transfer_params($order);
+        $mchid = $order->mchid();
+        $mch_order = $order->mch_order();
+        [$success,$order_id,$errmsg] = refill\RefillFactory::instance()->success_order($order);
 
+        if(!$success) {
+            return false;
         }
 
+        if(!$transfer_order($order)) {
+            $order_canceler($order_id,$errmsg);
+            return false;
+        }
+
+        refill\util::incr_user_success($mchid,$order->card_type(), $order->spec(),$order->cur_quality());
+        refill\util::pop_queue_order($mchid, $mch_order);
+        QueueClient::push("NotifyMerchantComplete", ['order_id' => $order_id, 'manual' => false]);
+
         return true;
     }
 
@@ -132,8 +132,8 @@ class proxy
         if($order->first_commit()) {
             refill\util::incr_user_commit($mchid,$order->card_type(),$order->spec(),$org_quality);
         }
-        elseif($this->need_transfer($order)) {
-            return $this->transfer($order);
+        elseif($this->need_transfer($order) && $this->transfer($order)) {
+            return true;
         }
 
         [$errcode, $errmsg, $order_id, $neterr,$net_errno] = refill\RefillFactory::instance()->add($order);

+ 1 - 1
test/TestRefillThird.php

@@ -81,7 +81,7 @@ class TestRefillThird extends TestCase
     {
         $params = [ 'mchid' => 1092,
             'buyer_id' => 60221,
-            'amount' => 30,
+            'amount' => 100,
             'mch_order' => $this->make_sn(),
 //            'org_quality' => 1,
             'card_no' => '13911129867' //,