stanley-king 1 år sedan
förälder
incheckning
0aef7b22c7
1 ändrade filer med 36 tillägg och 24 borttagningar
  1. 36 24
      mobile/control/refill.php

+ 36 - 24
mobile/control/refill.php

@@ -509,70 +509,82 @@ class refillControl extends merchantControl
 
     public function queryOp()
     {
+        $detail_checker = function($mchid, $mch_order)
+        {
+            $mod_refill = Model('refill_order');
+            $detail = $mod_refill->get_detail($mchid,$mch_order);
+            if (empty($detail)) {
+                return false;
+            } else {
+                return true;
+            }
+        };
+
         $mchid = $this->mchid();
-        $order_sn = $_GET['order_sn']; //用户方的订单号,对应数据库中的mch_order
+        $mch_order = $_GET['order_sn']; //用户方的订单号,对应数据库中的mch_order
 
-        if(empty($order_sn)) {
+        if(empty($mch_order)) {
             return self::outerr(201,"客户订单号order_sn错误");
         }
 
-        $order_state = refill\util::query_queue_order($mchid,$order_sn);
+        $send = ['mchid' => $mchid,'order_sn' => $mch_order,'order_state' => ORDER_STATE_SEND];
+
+        $order_state = refill\util::query_queue_order($mchid,$mch_order);
         if ($order_state == ORDER_STATE_QUEUE || $order_state == ORDER_STATE_SEND) {
-            Log::record("query_state in queue mchid={$mchid} mch_order={$order_sn} order_state={$order_state}" ,Log::DEBUG);
-            $result['mchid'] = $mchid;
-            $result['order_sn'] = $order_sn;
-            $result['order_state'] = $order_state;
-            return self::outsuccess($result);
+            Log::record("query_state in queue mchid=$mchid mch_order=$mch_order order_state=$order_state" ,Log::DEBUG);
+            return self::outsuccess($send);
         }
         else
         {
             $mod_refill = Model('refill_order');
-            $refill_info = $mod_refill->partition(refill\util::part_query())->getOrderInfo(['mch_order' => $order_sn,'mchid' => $mchid,'inner_status' => 0]);
+            $refill_info = $mod_refill->partition(refill\util::part_query())->getOrderInfo(['mch_order' => $mch_order,'mchid' => $mchid,'inner_status' => 0]);
 
             if(empty($refill_info))
             {
                 $mod_qerr = Model('refill_query_err');
-                $insert = ['mch_order' => $order_sn,'mchid' => $mchid];
+                $insert = ['mch_order' => $mch_order,'mchid' => $mchid];
 
-                $items = $mod_refill->getOrderInfo(['mch_order' => $order_sn,'mchid' => $mchid]);
+                $items = $mod_refill->getOrderInfo(['mch_order' => $mch_order,'mchid' => $mchid]);
                 if (empty($items)) {
-                    Log::record("query_state in db no order mchid={$mchid} mch_order={$order_sn}", Log::DEBUG);
+                    Log::record("query_state in db no order mchid=$mchid mch_order=$mch_order", Log::DEBUG);
 
                     $insert['code'] = 202;
                     $insert['msg'] = "检索充值中的单子,查不到任何订单信息.";
                     $mod_qerr->add($insert);
 
-                    return self::outerr(202, "无此订单,请人工确认处理.");
-                } else {
-                    Log::record("DEBUG_TAG: query_state in db mchid={$mchid} mch_order={$order_sn} order_state not completed.", Log::DEBUG);
-
-
+                    $detail = $detail_checker($mchid,$mch_order);
+                    if($detail == false) {
+                        return self::outerr(202, "无此订单,请人工确认处理.");
+                    }
+                    else {
+                        return self::outsuccess($send);
+                    }
+                }
+                else {
+                    Log::record("DEBUG_TAG: query_state in db mchid=$mchid mch_order=$mch_order order_state not completed.", Log::DEBUG);
                     $insert['code'] = 200;
                     $insert['msg'] = "检索充值中的单子能查到,但inner_status=0时查不到,回调充值中状态.";
                     $mod_qerr->add($insert);
 
-                    $result['mchid'] = $mchid;
-                    $result['order_sn'] = $order_sn;
-                    $result['order_state'] = ORDER_STATE_SEND;
-                    return self::outsuccess($result);
+                    return self::outsuccess($send);
                 }
             }
             else
             {
                 $vr_order = Model('vr_order');
                 $order_info = $vr_order->partition(refill\util::part_query())->getOrderInfo(['order_sn' => $refill_info['order_sn']]);
-                Log::record("query_state in db mchid={$mchid} mch_order={$order_sn} order_state={$order_info['order_state']}" ,Log::DEBUG);
+                Log::record("query_state in db mchid=$mchid mch_order=$mch_order order_state={$order_info['order_state']}" ,Log::DEBUG);
 
                 if (empty($order_info))
                 {
                     $mod_qerr = Model('refill_query_err');
-                    $insert = ['mch_order' => $order_sn,'mchid' => $mchid];
+                    $insert = ['mch_order' => $mch_order,'mchid' => $mchid];
 
                     $insert['code'] = 203;
                     $insert['msg'] = "检索充值中的单子能查到,但inner_status=0时查不到vr_order中的订单.";
                     $mod_qerr->add($insert);
 
-                    return self::outerr(203, "无此交易,请人工确认处理.");
+                    return self::outsuccess($send);
                 } else {
                     $result = $this->format($order_info, $refill_info);
                     return self::outsuccess($result);