public function changePayTranstatus($bkordernumber, $transStatus, $paytype) { $dbmsale = new DB_mssale(); $nowdate = date("Y-m-d H:i:s"); switch (trim($paytype)) { case "coupon": //购买抵用券 $query = "update tb_couponsale set fd_couponsale_payrq = '{$transStatus}' where fd_couponsale_bkordernumber = '{$bkordernumber}' "; $this->DB_test->query($query); $query = "update tb_agentpaymoneylist set fd_agpm_payrq ='{$transStatus}',fd_agpm_datetime = now() where fd_agpm_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); break; case "creditcard": //信用卡还款 $query = "update tb_creditcardglist set fd_ccglist_payrq ='{$transStatus}',fd_ccglist_paydate = '{$nowdate}' where fd_ccglist_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); $query = "update tb_agentpaymoneylist set fd_agpm_payrq ='{$transStatus}',fd_agpm_datetime = now() where fd_agpm_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); break; case "recharge": //充值 $query = "update tb_rechargeglist set fd_rechargelist_payrq ='{$transStatus}' where fd_rechargelist_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); $query = "update tb_agentpaymoneylist set fd_agpm_payrq ='{$transStatus}',fd_agpm_datetime = now() where fd_agpm_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); $rechange = 'account'; break; case "repay": //还贷款 $query = "update tb_repaymoneyglist set fd_repmglist_payrq ='{$transStatus}' ,fd_repmglist_paydate ='{$nowdate}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t where fd_repmglist_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); $query = "update tb_agentpaymoneylist set fd_agpm_payrq ='{$transStatus}',fd_agpm_datetime = now() where fd_agpm_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); break; case "order": //订单付款 $query = "update tb_orderpayglist set fd_oplist_payrq ='{$transStatus}',fd_oplist_paydate = '{$nowdate}' where fd_oplist_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); $query = "update tb_agentpaymoneylist set fd_agpm_payrq ='{$transStatus}',fd_agpm_datetime = now() where fd_agpm_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); $rechange = 'order'; break; case "tfmg": //转账汇款 $query = "update tb_transfermoneyglist set fd_tfmglist_payrq ='{$transStatus}' ,fd_tfmglist_paydate ='{$nowdate}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t where fd_tfmglist_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); $query = "update tb_agentpaymoneylist set fd_agpm_payrq ='{$transStatus}',fd_agpm_datetime = now() where fd_agpm_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); break; case "suptfmg": //转账汇款 $query = "update tb_transfermoneyglist set fd_tfmglist_payrq ='{$transStatus}' ,fd_tfmglist_paydate ='{$nowdate}'\n\t\t\t\t\t\t where fd_tfmglist_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); $query = "update tb_agentpaymoneylist set fd_agpm_payrq ='{$transStatus}',fd_agpm_datetime = now() where fd_agpm_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); break; case "mobilerecharge": //手机充值 MobileRecharge::UpmpPayFeedback($transStatus, $bkordernumber); break; case "qqrecharge": //手机充值 $query = "update tb_qqrechargelist set fd_mrclist_payrq ='{$transStatus}' where fd_mrclist_bkordernumber = '{$bkordernumber}'"; $this->DB_test->query($query); if ($transStatus == '00') { // echo "<br>这是调用欧飞接口:".$query; $return = $this->Tfb_ThirdApi->qqrecharge($bkordernumber, $transStatus); return $return; // exit; //return } break; case "utility": if ($transStatus == '00') { return true; } else { return false; } case "gamerecharge": if ($transStatus == '00') { return true; } else { return false; } default: break; } switch ($rechange) { case "account": $query = "select fd_agpm_paycardid as paycardid,fd_agpm_authorid as authorid , fd_agpm_bkmoney as bkmoney," . "fd_agpm_paytype as paytype , fd_agpm_bkordernumber as bkordernumber \n\t\t\t\t\t\t\t\t\t\t from tb_agentpaymoneylist where fd_agpm_bkordernumber = '{$bkordernumber}' and fd_agpm_payrq = '00' \n\t\t\t\t\t\t\t\t\t\t limit 1"; //交易成功的才执行 if ($this->DB_test->execute($query)) { $arr_payinfo = $this->DB_test->get_one($query); if ($this->TfbAccount->changeAccountglist($arr_payinfo)) { $getacc = $this->TfbAccount->changeAccount($arr_payinfo); } } break; case "order": /* $query = "select fd_oplist_paycardid as paycardid,fd_oplist_authorid as authorid , fd_oplist_paymoney as bkmoney," . "fd_oplist_paytype as paytype , fd_oplist_bkordernumber as bkordernumber from tb_orderpayglist where fd_oplist_bkordernumber = '$bkordernumber' and fd_oplist_payrq = '00' limit 1"; //交易成功的才执行 if ($this->DB_test->execute($query)) { $arr_payinfo = $this->DB_test->get_one($query); if ($this->TfbAccount->changeAccountglist($arr_payinfo)) //如果账户流水改变,则修改账户金额 { $getacc = $this->TfbAccount->changeAccount($arr_payinfo); } }*/ $query = "select fd_oplist_orderid as orderid from tb_orderpayglist where fd_oplist_payrq ='00' " . "and fd_oplist_bkordernumber = '{$bkordernumber}'"; $arr_oporderinfo = $this->DB_test->get_one($query); $orderid = $arr_oporderinfo['orderid']; $query = "update web_order set fd_order_state = '7' where fd_order_id = '{$orderid}'"; $dbmsale->query($query); break; } return true; }
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; }