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' => $mch_order,'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=$mch_order", Log::DEBUG); $insert['code'] = 202; $insert['msg'] = "检索充值中的单子,查不到任何订单信息."; $mod_qerr->add($insert); return [201, []]; } 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'] = $mch_order; $result['order_state'] = ORDER_STATE_SEND; return [200, $result]; } } 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=$mch_order order_state={$order_info['order_state']}" ,Log::DEBUG); if (empty($order_info)) { $mod_qerr = Model('refill_query_err'); $insert = ['mch_order' => $mch_order,'mchid' => $mchid]; $insert['code'] = 203; $insert['msg'] = "检索充值中的单子能查到,但inner_status=0时查不到vr_order中的订单."; $mod_qerr->add($insert); $result['mchid'] = $mchid; $result['order_sn'] = $mch_order; $result['order_state'] = ORDER_STATE_SEND; return [200, $result]; } else { $result = $this->format($order_info, $refill_info); return [200, $result]; } } } } private function format($order_info,$refill_info) { $result = []; $result['mchid'] = $refill_info['mchid']; $result['trade_no'] = $refill_info['order_sn']; $result['order_sn'] = $refill_info['mch_order']; $result['card_no'] = $refill_info['card_no']; $result['card_type'] = $refill_info['card_type']; $result['refill_amount'] = $refill_info['refill_amount']; $result['order_amount'] = $refill_info['mch_amount']; $result['order_time'] = $refill_info['order_time']; $result['success_time'] = $refill_info['notify_time']; $result['official_sn'] = $refill_info['official_sn'] ?? ""; $result['order_state'] = $order_info['order_state']; return $result; } }