diff --git a/app/Libs/WxMicroPay.class.php b/app/Libs/WxMicroPay.class.php index cfe98ce..40b0f96 100644 --- a/app/Libs/WxMicroPay.class.php +++ b/app/Libs/WxMicroPay.class.php @@ -59,19 +59,23 @@ class WxMicroPay extends WxPayCommon $query_times = 10; while ($query_times > 0) { $query_result = $this->orderQuery($out_trade_no); - if ($query_result["return_code"] == "SUCCESS" && $result["result_code"] == "FAIL" && $result["err_code"] == "SYSTEMERROR") { + if ($query_result["return_code"] != "SUCCESS" && $result["result_code"] != "SUCCESS") { \Log::info($query_result); sleep(2); $query_times--; continue; } - if ($query_result["return_code"] == "SUCCESS" && $result["result_code"] == "SUCCESS" && $result["trade_state"] == "USERPAYING") { - \Log::info($query_result); + if (!isset($query_result["trade_state"])) { + sleep(2); + $query_times--; + continue; + } + if ($query_result["trade_state"] == "USERPAYING") { sleep(2); $query_times--; continue; } - if ($query_result["return_code"] == "SUCCESS" && $result["result_code"] == "SUCCESS" && $result["trade_state"] == "SUCCESS") { + if ($result["trade_state"] == "SUCCESS") { $transaction_id = $query_result["transaction_id"]; $update = [ "paid_at" => date("Y-m-d H:i:s"), @@ -84,6 +88,7 @@ class WxMicroPay extends WxPayCommon } return true; } + $query_times--; } } catch (Exception $exception) { return $exception;