public function CheckTransStatus() { $now = time(); $logger = Logger::getLogger('mobilerecharge'); $logger->debug("开始银联支付完成后,检查订单状态({$now})"); $msgBody = $this->arr_body; $transNumber = trim($msgBody['bkntno']); $result = trim($msgBody['result']); if ($transNumber == "") { ErrorReponse::reponError(array('retcode' => '200', 'retmsg' => '账单信息不能为空')); } $logger->info("正在银联支付完成后,检查订单状态({$now}) : transNumber({$transNumber}), result({$result})"); $query = "SELECT fd_mrclist_bkordernumber AS orderId, DATE_FORMAT(fd_mrclist_date, '%Y%m%d') AS orderTime FROM tb_mobilerechargelist \n\t\t\t\tWHERE fd_mrclist_bkntno = '{$transNumber}'"; $logger->debug("正在银联支付完成后,检查订单状态({$now}) : query({$query})"); $db = new DB_test(); $dataInDB = $db->get_all($query); if (!is_array($dataInDB) || count($dataInDB) != 1) { $logger->error("完成银联支付完成后,检查订单状态({$now}) : 数据({$query})有误(" . print_r($dataInDB, true) . ")"); ErrorReponse::reponError(array('retcode' => '200', 'retmsg' => '账单信息异常')); } $orderId = $dataInDB[0]['orderId']; $orderTime = $dataInDB[0]['orderTime']; $logger->debug("正在银联支付完成后,检查订单状态({$now}) : orderId({$orderId}), orderTime({$orderTime})"); if ($orderId == "" || $orderTime == "") { $logger->error("完成银联支付完成后,检查订单状态({$now}) : 订单号异常 orderId({$orderId}), orderTime({$orderTime})"); ErrorReponse::reponError(array('retcode' => '200', 'retmsg' => '订单号异常')); } $payResult = BankPayInfoV3::GetTransStatus($orderId, $orderTime); $logger->debug("正在银联支付完成后,检查订单状态({$now}) : payResult(" . $payResult . ")"); $payResult = md5("" . (string) $payResult . ""); if ($payResult == "cace2a1f74fa974808c185f17ef557de") { // bankReturnInfo为00 $retcode = 0; $arr_message = array("result" => "success", "message" => "支付成功,正在为您充值中!"); } else { $arr_message = array("result" => "fail", "message" => "支付失败,如有疑问,请联系客服!"); } MobileRecharge::UpmpPayFeedback($payResult, $orderId); $arr_msg['msgbody']['result'] = $arr_message['result']; $arr_msg['msgbody']['message'] = $arr_message['message']; $logger->info("完成银联支付完成后,检查订单状态({$now}) : msgbody" . print_r($arr_msg['msgbody'], true)); $returnvalue = array("msgbody" => $arr_msg['msgbody']); $returnval = TfbxmlResponse::ResponsetoApp($retcode, $returnvalue); return $returnval; }