public static function bankorderquery($authorid, $paycardid, $orderNumber, $orderTime) { global $weburl; global $g_sdcrid; $ErrorReponse = new ErrorReponse(); // 1. 初始化 $arr_merid = BankPayInfoV2::getpaymerinfo($authorid); $merid = $arr_merid['merid']; $securitykey = $arr_merid['securitykey']; $tradeurl = $arr_merid['tradeurl']; $queryurl = $arr_merid['queryurl']; $sdcrid = $arr_merid['sdcrid']; $payurl = $weburl . "third_api/upmp_query_v2.php?orderTime={$orderTime}&orderNumber={$orderNumber}&merid={$merid}&securitykey={$securitykey}&queryurl={$queryurl}&tradeurl={$tradeurl}"; // echo $payurl; $ch = curl_init(); // 2. 设置选项,包括URL curl_setopt($ch, CURLOPT_URL, $payurl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); // 3. 执行并获取HTML文档内容 //$arr_output[] = curl_exec($ch); $output = curl_exec($ch); $file = "../../tfb_log/" . date('md') . "-" . $sdcrid . "log" . ".txt"; $filehandle = fopen($file, "a"); $now = date('Y-m-d H:i:s'); fwrite($filehandle, $now . "\r\n======银联查询内容:\r\n" . $output . "\r\n\r\n" . $payurl); fclose($filehandle); if ($output === FALSE) { $Error = array('rettype' => '700', 'retcode' => '700', 'retmsg' => curl_error($ch)); $ErrorReponse->reponError($Error); exit; } $arr_ofpayinfo = $output; if ($output == true) { return $arr_ofpayinfo; exit; } // 4. 释放curl句柄 curl_close($ch); if ($arr_ofpayinfo['respCode'] != 0) { $Error = array('rettype' => '700', 'retcode' => '700', 'retmsg' => $arr_ofpayinfo['respMsg'] . "[" . $arr_ofpayinfo['respCode'] . "]"); $ErrorReponse->reponError($Error); exit; } else { return $arr_ofpayinfo; } }
public function completeOrder() { $logger = Logger::getLogger('gamerecharge'); $logger->debug("start completeOrder"); $authorid = trim($this->arr_channelinfo['authorid']); $bkntno = trim($this->arr_body['bkntno']); $retcode = "200"; $arr_message = array("result" => "fail", "message" => "操作出现异常,请稍后再试!"); $hasReceiveMoney = false; if ($authorid != "" && $bkntno != "") { $logger->debug("process completeOrder : authorid and bkntno : (" . $authorid . ", " . $bkntno . ")"); $query = "SELECT *, DATE_FORMAT(fd_grclist_paydate,'%Y%m%d') as fd_grclist_paydate FROM tb_gamerechargelist WHERE fd_grclist_authorid = {$authorid} AND fd_grclist_bkntno = '{$bkntno}'"; $db = new DB_test(); $orderInDB = $db->get_all($query); if ($orderInDB != 0 && count($orderInDB) > 0) { $orderNumber = $orderInDB[0]["fd_grclist_bkordernumber"]; $orderTime = $orderInDB[0]["fd_grclist_paydate"]; $logger->debug("process completeOrder : orderNumber : (" . $orderNumber . ")"); $arr_returninfo = BankPayInfoV2::bankorderquery($authorid, '', $orderNumber, $orderTime); $logger->debug("process completeOrder : value from BankPayInfoV2 : (" . $arr_returninfo . ")"); if (md5($arr_returninfo) == "cace2a1f74fa974808c185f17ef557de") { $retcode = 0; $arr_message = array("result" => "success", "message" => "付款已收到,正在为您充值中!"); $hasReceiveMoney = true; } else { $arr_message = array("result" => "fail", "message" => $arr_returninfo); } } else { $arr_message = array("result" => "fail", "message" => "输入信息有误"); } } else { $arr_message = array("result" => "fail", "message" => "输入信息不完整"); } if ($hasReceiveMoney) { $logger->debug("process completeOrder : start ofpay"); // 开始调用欧飞接口进行充值 if ($orderInDB != 0 && count($orderInDB) > 0) { $cardid = $orderInDB[0]["fd_grclist_gamecardid"]; $cardnum = $orderInDB[0]["fd_grclist_gamecardnum"]; $game_userid = $orderInDB[0]["fd_grclist_gameuserid"]; $game_area = $orderInDB[0]["fd_grclist_gamearea"]; $game_srv = $orderInDB[0]["fd_grclist_gamesrv"]; $objOfpayV2 = new OfpayV2(); $returnvalue = $objOfpayV2->gameRecharge($orderNumber, $cardid, $cardnum, $game_userid, $game_area, $game_srv, &$errMsg); $logger->debug("process completeOrder : value from OfpayV2 : (" . $returnvalue . ")"); if ($errMsg != "") { $arr_message['message'] = $errMsg; } $query = "UPDATE tb_gamerechargelist SET fd_grclist_state = 1, fd_grclist_datetime = NOW() WHERE fd_grclist_authorid = {$authorid} AND fd_grclist_bkntno = '{$bkntno}'"; $db->query($query); $this->customerProfit($orderInDB); } } $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; }
public function completeOrder() { $retcode = "200"; $arr_message = array("result" => "fail", "message" => "操作出现异常,请稍后再试!"); $logger = Logger::getLogger('utility'); $logger->debug("start submitOrder"); $authorid = trim($this->arr_channelinfo['authorid']); $arr_body = $this->arr_body; $orderid = trim($arr_body['orderid']); $bkntno = trim($arr_body['bkntno']); $hasReceiveMoney = false; $db = new DB_test(); $query = "SELECT *, DATE_FORMAT(fd_submit_time,'%Y%m%d') as orderTime FROM tb_utility_order WHERE fd_author_id = {$authorid} AND fd_order_id = {$orderid}"; $orderInDB = $db->get_all($query); if ($orderInDB != 0 && count($orderInDB) > 0) { $orderNumber = $orderInDB[0]["fd_bkordernumber"]; $orderTime = $orderInDB[0]["orderTime"]; $arr_returninfo = BankPayInfoV2::bankorderquery($authorid, '', $orderNumber, $orderTime); if (md5($arr_returninfo) == "cace2a1f74fa974808c185f17ef557de") { $retcode = 0; $arr_message = array("result" => "success", "message" => "付款已收到,正在为您充值中!"); $hasReceiveMoney = true; } else { $arr_message = array("result" => "fail", "message" => $arr_returninfo); } } if ($hasReceiveMoney) { // interface info $usernumber = "7000035"; $sign = "ae4544eaa21f4575997c12332581e662"; $inordernumber = "IWEC" . $usernumber . date("YmdHis") . "6543"; $outordernumber = $orderid; $proId = $orderInDB[0]["fd_pro_id"]; $account = $orderInDB[0]["fd_account_id"]; $paymoney = $orderInDB[0]["fd_total_bill"]; $starttime = date("Y-m-d H:i:s"); $timeout = 30; $url = "http://lifeapi.salerwise.com/IWEC/IRechargeList_WEC"; $yearmonth = ""; $recordkey = $usernumber . $inordernumber . $outordernumber . $proId . $account . $paymoney . $yearmonth . $starttime . $timeout . $sign; $recordkey = md5($recordkey); $recordkey = substr($recordkey, 0, 16); $recordkey = strtoupper($recordkey); $data = array('usernumber' => $usernumber, 'inordernumber' => $inordernumber, 'outordernumber' => $outordernumber, 'proId' => $proId, 'account' => $account, 'paymoney' => $paymoney, 'starttime' => $starttime, 'timeout' => $timeout, 'recordkey' => $recordkey, 'yearmonth' => $yearmonth); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $file_contents = curl_exec($ch); curl_close($ch); $result = false; if ($file_contents != "") { $file_contents = str_replace("GB2312", "UTF-8", $file_contents); $xml = simplexml_load_string($file_contents); foreach ($xml->children() as $child) { if ($child->getName() == "result" && (string) $child == "success") { $result = true; } } } $this->customerProfit($orderInDB[0]); if ($result) { $query = "UPDATE tb_utility_order SET fd_order_state = 3, fd_complete_time = NOW() WHERE fd_author_id = {$authorid} AND fd_order_id = {$orderid}"; $db->query($query); $retcode = "0"; $arr_message = array("result" => "success", "message" => "提交成功"); } } $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; }