Selaa lähdekoodia

机构 订单拦截

lowkeyman 3 viikkoa sitten
vanhempi
commit
b46bf07969
1 muutettua tiedostoa jossa 31 lisäystä ja 0 poistoa
  1. 31 0
      mchsrv/control/merchant_order.php

+ 31 - 0
mchsrv/control/merchant_order.php

@@ -200,6 +200,37 @@ class merchant_orderControl extends mbMerchantControl
         return self::outsuccess($result);
     }
 
+    public function interceptOp()
+    {
+        $mchid = $this->mchid();
+        $mch_order = $_GET['order_sn'];
+
+        if(empty($mch_order)) {
+            return self::outerr(205,"客户订单号为空.");
+        }
+
+        $mod_refill = Model('refill_order');
+        $order = $mod_refill->get_detail($mchid,$mch_order);
+
+        if(empty($order)) {
+            return self::outerr(205,"该订单号不存在.");
+        }
+
+        $order_state = $order['order_state'];
+        if($order_state === ORDER_STATE_HANDLED) {
+            return self::outerr(206,"该订单已经完成.");
+        }
+
+        $order_state = refill\util::query_queue_order($mchid,$mch_order);
+        if ($order_state == ORDER_STATE_TIMEOUT || $order_state == ORDER_STATE_HANDLED) {
+            Log::record("intercept timeout order mchid=$mchid mch_order=$mch_order order_state=$order_state" ,Log::DEBUG);
+            return self::outerr(206,"该订单已经完成.");
+        }
+
+        refill\util::set_cancel_order($mchid,$mch_order);
+        return self::outsuccess([]);
+    }
+
     private function merchant_order_format($orders)
     {
         $data = [];