stanley-king преди 4 години
родител
ревизия
e8145b19d0
променени са 4 файла, в които са добавени 22 реда и са изтрити 10 реда
  1. 2 2
      core/framework/function/http.php
  2. 5 0
      data/logic/queue.logic.php
  3. 12 7
      helper/refill/suhc/RefillCallBack.php
  4. 3 1
      mobile/control/refill.php

+ 2 - 2
core/framework/function/http.php

@@ -18,8 +18,8 @@ function http_request($url, $params = array(), $method = 'GET', $multi = false,
     $method = strtoupper($method);
     $ci = curl_init();
     curl_setopt($ci, CURLOPT_USERAGENT, 'PHP-SDK OAuth2.0');
-    curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 3);
-    curl_setopt($ci, CURLOPT_TIMEOUT, 3);
+//    curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 3);
+//    curl_setopt($ci, CURLOPT_TIMEOUT, 3);
     curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false);
     curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, false);

+ 5 - 0
data/logic/queue.logic.php

@@ -1388,4 +1388,9 @@ class queueLogic
             return callback(true, '充值成功', ['order_sn' => $order['order_sn']]);
         }
     }
+
+    public function NotifyMerchantComplete($params)
+    {
+        $order_id = $params['order_id'];
+    }
 }

+ 12 - 7
helper/refill/suhc/RefillCallBack.php

@@ -4,6 +4,7 @@
 namespace refill\suhc;
 
 use refill;
+use QueueClient;
 
 
 class RefillCallBack implements refill\IRefillCallBack
@@ -38,19 +39,23 @@ class RefillCallBack implements refill\IRefillCallBack
     public function notify($params)
     {
         $status = intval($params['status']);
-        $ch_trade_no = $params['batchid'];
         $order_sn = $params['onlystr'];
 
-        $logic_vr_order = Logic("vr_order");
-        $order_info = Model('vr_order')->getOrderInfo(['order_id' => $order_id]);
+        $order_info = Model('vr_order')->getOrderInfo(['order_sn' => $order_sn]);
+        if(empty($order_info)) {
+            return false;
+        }
 
+        $order_id = $order_info['order_id'];
         if($status === 2) {
-
-
             $logic_vr_order = Logic("vr_order");
-            $logic_vr_order->changeOrderStateSend($order_id);
+            $logic_vr_order->changeOrderStateSuccess($order_id);
+            QueueClient::push("NotifyMerchantComplete",['order_id' => $order_id]);
         } else {
-
+            $logic_vr_order = Logic("vr_order");
+            $logic_vr_order->changeOrderStateCancel($order_id);
+            QueueClient::push("NotifyMerchantComplete",['order_id' => $order_id]);
         }
+        return true;
     }
 }

+ 3 - 1
mobile/control/refill.php

@@ -77,7 +77,8 @@ class refillControl extends merchantControl
                 continue;
             }
 
-            [$state,$err] = $provider->add($card_no,$oil_type,$amount,$input);
+            $params = ['order_sn' => $order_sn];
+            [$state,$err] = $provider->add($card_no,$oil_type,$amount,$params);
             if($state) {
                 $trade_no = $err;
                 $logic_vr_order = Logic("vr_order");
@@ -87,6 +88,7 @@ class refillControl extends merchantControl
                 $refill_state = true;
             }
             else {
+                Log::record("channel:{$channel_name} err:{$err}");
                 $logic_vr_order = Logic("vr_order");
                 $order_info = Model('vr_order')->getOrderInfo(['order_id' => $order_id]);
                 $logic_vr_order->changeOrderStateCancel($order_info,'',"调用{$channel_name}接口失败");