/** * * 上报数据, 上报的时候将屏蔽所有异常流程 * @param string $usrl * @param int $startTimeStamp * @param array $data */ private function reportCostTime($url, $startTimeStamp, $data) { //如果不需要上报数据 if ($this->apiConfig->report_levenl == 0) { return; } //如果仅失败上报 if ($this->apiConfig->report_levenl == 1 && array_key_exists("return_code", $data) && $data["return_code"] == "SUCCESS" && array_key_exists("result_code", $data) && $data["result_code"] == "SUCCESS") { return; } //上报逻辑 $endTimeStamp = $this->getMillisecond(); $objInput = new WxPayReport(); $objInput->setInterfaceUrl($url); $objInput->setExecuteTime($endTimeStamp - $startTimeStamp); //返回状态码 if (array_key_exists("return_code", $data)) { $objInput->setReturnCode($data["return_code"]); } //返回信息 if (array_key_exists("return_msg", $data)) { $objInput->setReturnMsg($data["return_msg"]); } //业务结果 if (array_key_exists("result_code", $data)) { $objInput->setResultCode($data["result_code"]); } //错误代码 if (array_key_exists("err_code", $data)) { $objInput->setErrCode($data["err_code"]); } //错误代码描述 if (array_key_exists("err_code_des", $data)) { $objInput->setErrCodeDes($data["err_code_des"]); } //商户订单号 if (array_key_exists("out_trade_no", $data)) { $objInput->setOutTradeNo($data["out_trade_no"]); } //设备号 if (array_key_exists("device_info", $data)) { $objInput->setDeviceInfo($data["device_info"]); } try { $this->report($objInput); } catch (WxPayException $e) { //不做任何处理 } }