Exemplo n.º 1
0
 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;
     }
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
 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;
 }