浏览代码

add order no exist state handle and process it cancel

stanley-king 3 年之前
父节点
当前提交
985c08441e
共有 2 个文件被更改,包括 16 次插入5 次删除
  1. 13 1
      helper/refill/RefillBase.php
  2. 3 4
      helper/refill/api/xyz/yinteng/RefillPhone.php

+ 13 - 1
helper/refill/RefillBase.php

@@ -474,7 +474,7 @@ class RefillBase
             else
             {
                 if($neterr && util::need_check($net_errno)) {
-                    $mod_refill->edit($order_id, ['neterr' => 1,'err_msg' => "neterr={$net_errno}"]);
+                    $mod_refill->edit($order_id, ['commit_time' => time(),'neterr' => 1,'err_msg' => "neterr={$net_errno}"]);
                     break;
                 }
 
@@ -636,6 +636,9 @@ class RefillBase
         $mod_refill = Model('refill_order');
         $refill_info = $mod_refill->getOrderInfo(['order_id' => $order_id,'inner_status' => 0]);
         $chname = $refill_info['channel_name'];
+        $mchid = $refill_info['mchid'];
+        $mch_order = $refill_info['mch_order'];
+        $card_type = intval($refill_info['card_type']);
 
         try
         {
@@ -675,6 +678,15 @@ class RefillBase
                 $mod_refill->edit($order_id, $data);
                 QueueClient::async_push("QueryRefillState",['order_id' => $order_id],1);
             }
+            elseif ($order_state == ORDER_STATE_NOEXIST) {
+                $logic_vr_order = Logic("vr_order");
+                $logic_vr_order->changeOrderStateCancel($order_info, '', "{$chname}查询订单不存在.",true,true);
+
+                $mod_refill->edit($order_id, ['notify_time' => time(), 'notify_state' => 1]);
+                util::pop_queue_order($mchid,$mch_order);
+                QueueClient::push("NotifyMerchantComplete", ['order_id' => $order_id,'manual' => false]);
+                util::del_exclude_channel($mchid,$mch_order,$card_type);
+            }
             else {
                 QueueClient::async_push("QueryOrderNeterr",['order_id' => $order_id],5);
             }

+ 3 - 4
helper/refill/api/xyz/yinteng/RefillPhone.php

@@ -82,12 +82,11 @@ class RefillPhone extends refill\IRefillPhone
                 $order_state = ORDER_STATE_SUCCESS;
             } elseif ($status === 5013) {
                 $order_state = ORDER_STATE_CANCEL;
-            } elseif (in_array($status, [5011,5019])) {
+            } elseif (in_array($status, [5011, 5019])) {
                 $order_state = ORDER_STATE_SEND;
-            } elseif (in_array($status,[5005])) {
+            } elseif (in_array($status, [5005])) {
                 $order_state = ORDER_STATE_NOEXIST;
-            }
-            else {
+            } else {
                 return [false, $status];
             }
             return [true, $order_state];