public function RequestTransNumber() { $now = time(); $logger = Logger::getLogger('mobilerecharge'); $logger->debug("开始请求银联交易码({$now})"); $authorId = trim($this->arr_channelinfo['authorid']); // 用户ID if ($authorId == "") { ErrorReponse::reponError(array('retcode' => '200', 'retmsg' => '用户信息异常')); } $msgBody = $this->arr_body; foreach ($msgBody as $key => $value) { $msgBody[$key] = trim($value); } $msgBody["rechargeMoney"] = $msgBody["rechamoney"]; $msgBody["payMoney"] = $msgBody["rechapaymoney"]; $msgBody["rechargePhone"] = $msgBody["rechamobile"]; $msgBody["bankCardId"] = $msgBody["rechabkcardno"]; // 必填的字段:充值金额、实际支付金额、充值手机号、银行卡号 $requiredField = array("rechargeMoney", "payMoney", "rechargePhone", "bankCardId"); foreach ($requiredField as $key => $value) { if ($msgBody[$value] == "") { ErrorReponse::reponError(array('retcode' => '200', 'retmsg' => '用户输入信息不完整')); } } $msgBody['mobileProvince'] = $msgBody['rechamobileprov']; $logger->info("正在请求银联交易码({$now}) : 输入的信息包括" . print_r($msgBody, true)); $orderId = MobileRecharge::CreateOrder($msgBody, $authorId, "upmp"); $logger->info("正在请求银联交易码({$now}) : 通付宝订单号({$orderId})"); $transNumber = BankPayInfoV3::RequestBankTransNumber($orderId, $msgBody["payMoney"], $msgBody["bankCardId"]); $logger->info("正在请求银联交易码({$now}), 返回的银联交易码({$transNumber})"); if ($transNumber == "") { ErrorReponse::reponError(array('retcode' => '200', 'retmsg' => '请求交易码失败,请稍后再试')); } $query = "UPDATE tb_mobilerechargelist SET fd_mrclist_bkntno = '{$transNumber}' WHERE fd_mrclist_bkordernumber = '" . $orderId . "'"; $db = new DB_test(); $db->query($query); $retcode = "0"; $arr_message = array("result" => "success", "message" => "请求交易码成功"); $arr_msg['msgbody']['bkntno'] = $transNumber; $arr_msg['msgbody']['result'] = $arr_message['result']; $arr_msg['msgbody']['message'] = $arr_message['message']; $returnvalue = array("msgbody" => $arr_msg['msgbody']); $returnval = TfbxmlResponse::ResponsetoApp($retcode, $returnvalue); return $returnval; }