info(json_encode($data, JSON_UNESCAPED_UNICODE)); try { $Utils = new Utils(); $redis_key = "cancelUnpayOrders" . $data['order_no']; $res = $Utils->checkHandleNumber($redis_key); if (!$res) { Log::getInstance("queue-CancelUnpayOrders")->error("超出最大执行次数或检测错误"); return Result::ACK; } }catch (\Throwable $e){ Log::getInstance("queue-CancelUnpayOrders")->error($e->getMessage()); return Result::REQUEUE; } Db::beginTransaction(); try { $OrderService = new OrderService(); if ($data['order_type'] == 1) { // 问诊订单 $result = $OrderService->cancelUnpayOrder($data['order_no'],5,"支付超时"); } elseif ($data['order_type'] == 2) { // 药品订单 $result = $OrderService->cancelUnpayOrder($data['order_no'],3,"支付超时"); } elseif ($data['order_type'] == 3) { // 检测订单 $result = $OrderService->cancelUnpayOrder($data['order_no'],3,"支付超时"); } elseif ($data['order_type'] == 4) { // 服务包订单 $result = $OrderService->cancelUnpayOrder($data['order_no'],3,"支付超时"); } else { Log::getInstance("queue-CancelUnpayOrders")->error("order_type类型错误"); return Result::DROP;// 销毁 } if ($result['status'] != 1) { Db::rollBack(); Log::getInstance("queue-CancelUnpayOrders")->error($result['message']); return Result::ACK; } // 关闭支付订单 try { $WechatPay = new WechatPay("1", $data['order_type']); // 关闭订单 $WechatPay->closeOrder($data['order_no']); }catch (\Throwable $e){ Log::getInstance("queue-CancelUnpayOrders")->error($e->getMessage()); } Db::commit(); Log::getInstance("queue-CancelUnpayOrders")->info("成功"); return Result::ACK; } catch (\Throwable $e) { Db::rollBack(); Log::getInstance("queue-CancelUnpayOrders")->error($e->getMessage()); return Result::ACK; } } }