//共有多少筆資料 $inclosing = "關帳失敗 - stat關帳中的有" . $aBK . "筆<br>"; $strBK = "SELECT sr FROM " . $O_CLOSE . " WHERE bank_stat='關帳中' and (bank='35' or bank='36') and auth!='777777'"; $qBK = @mysql_query($strBK, $plink); $Bank_aBK = @mysql_num_rows($qBK); $inclosing .= "關帳失敗 - bank_stat關帳中的有" . $Bank_aBK . "筆<br>"; @mysql_close($plink); //沒請款檔通知 (發 Line 警示) if ($nums_fail && !$TEST_mode) { $msg = "萬泰關帳取回 {$dtmYesterday} 請款檔, 應取回 {$nums} 家廠商交易資料, 但有 {$nums_fail} 家取回失敗, 目前關帳中的有 {$aBK} 筆, 請注意! by g_Close_wantaiIn"; exec_line(4, $msg, 'g_Close_wantaiIn'); } //被踢退通知 (發 Line 警示) if ($total_nums_fail && !$TEST_mode) { $msg = "萬泰關帳取回 {$dtmYesterday} 請款檔, 有 {$total_nums_fail} 筆資料被踢退, 請注意! by g_Close_wantaiIn"; exec_line(4, $msg, 'g_Close_wantaiIn'); } $result = 1; //$result_note = "應取回".$nums."家成功取回".$nums_succ."家共".$total_nums."筆總金額".$total_amt; $result_note = "應取回" . $nums . "家成功取回" . $nums_succ . "家共" . $total_nums . "筆"; //如果有失敗 if ($nums_fail) { $result_note .= "失敗" . $nums_fail . "家"; } //如果有踢退 if ($total_nums_fail) { $result_note .= "踢退" . $total_nums_fail . "筆"; } //如果有異常 $get_recv_fail_nums = $total_nums - $total_nums_succ - $total_nums_fail; if ($get_recv_fail_nums) {
$NO3dOnlyOK = 1; //eci 0,7不通過, 就不送授權了 } } } //$form['bank'] == 5 || $form['bank'] == 6 || $form['bank'] == 7 || $form['bank'] == 8 || $form['bank'] == 11 || $form['bank'] == 12 || $form['bank'] == 13 || $form['bank'] == 14 || $form['bank'] == 16 || $form['bank'] == 17 || if ($form['bank'] == 20 || $form['bank'] == 21 || $form['bank'] == 33 || $form['bank'] == 34) { $ch3DxxCity = 1; //花旗跟小店的旗標 } if ($form['stop'] != 0) { $str = "update o_auth set remsg='已停用' where sr='{$aa}' limit 1 "; $result = mysql_query($str, $plink); if (!$result) { $line_msg = "授權單號 " . $aa . " 寫 已停用 資料到 o_auth 失敗, " . mysql_error() . ", 請檢查! by form_ssl_3D"; exec_line(1, $line_msg, 'form_ssl_3D'); } $t2 = microtime(true); $running = number_format($t2 - $t1, 3); @exec_sr_tracer($aa, "step3", $running, "form_ssl_3D.php", "after3d", $ECI); $running = number_format(microtime(true) - $t2, 3); @exec_sr_tracer($aa, "step5", $running, "form_ssl_3D.php", "final", "xxx", "已停用"); $response_msg = $OutPPtextNOuse; include 'form_ssl_noan_out.inc'; @mysql_close($plink); session_destroy(); exit; } //加入分期的銀行代碼 if ($form['bank'] == 21 || $form['bank'] == 34) { if (!$stage) {
//授權碼 $Cxc[3] = $ONO; //訂單編號 $Cxc[9] = $RRN; //RRN //超過 50 秒發Line $running = number_format(microtime(true) - $t3, 3); if ($running > 20) { if ($Cxc[3]) { //$SEND_DT = "單號: ".$aa." 透過玉山授權主機 ".$esunbankPostURL_auth." 回應時間花費 ".$running."秒, 請注意! by form_ssl_esunbank"; $SEND_DT = "單號: " . $aa . " 玉山銀行回應時間花費 " . $running . "秒, recode: {$RC} 若連續發生可能為銀行端斷線, 請注意! by form_ssl_esunbank"; exec_line(1, $SEND_DT, 'form_ssl_esunbank'); } else { //$SEND_DT = "玉山授權主機 ".$esunbankPostURL_auth." 沒有回應 (單號:".$aa."), 很重要請檢查! by form_ssl_esunbank"; $SEND_DT = "單號: " . $aa . " 玉山銀行沒有回應, 若連續發生可能為銀行端斷線, 請注意! by form_ssl_esunbank"; exec_line(1, $SEND_DT, 'fform_ssl_esunbank'); } } if ($IP) { //是分期 $FSamount = $IFPA + 1 - 1; //頭期金額 $EVamount = $IPA + 1 - 1; //每期金額 $Cxc[9] = $FSamount; //頭期金額 $Cxc[8] = $EVamount; //每期金額 } if ($redeem == 'Y') { $EV_red_dan = $BRP;
} } else { //若已先關帳, 在被拒絕時, 不更新, 但要通知 //if ( $arClose['stat']!='已關帳' || $arClose['bank_stat']!='已關帳' ) { //$szSQL = "UPDATE o_close SET stat='被拒絕' WHERE stat IN ('關帳中', '取消中') AND sr='$szTradeNo' AND authsr='$szMerchantTradeNo' LIMIT 1 "; //mysql_query($szSQL, $databaseLink); //$szSQL = "UPDATE o_close SET bank_stat='被拒絕' WHERE bank_stat IN ('關帳中', '取消中') AND sr='$szTradeNo' AND authsr='$szMerchantTradeNo' LIMIT 1 "; //mysql_query($szSQL, $databaseLink); //$szSQL = "UPDATE o_close_bank SET stat='被拒絕' WHERE stat IN ('關帳中', '取消中') AND sr='$szTradeNo' AND authsr='$szMerchantTradeNo' LIMIT 1 "; //mysql_query($szSQL, $databaseLink); //} else { // $szSQL = "UPDATE o_close SET bank_stat='被拒絕' WHERE stat='已關帳' AND sr='$szTradeNo' AND authsr='$szMerchantTradeNo' LIMIT 1 "; //mysql_query($szSQL, $databaseLink); //已授權的交易才要發告警 $szTradeNo if ($arAuth['remsg'] == '已授權') { $SEND_DT = "單號: {$szMerchantTradeNo} (" . $arAuth['remsg'] . ") , 金額: {$arClose['amount']} , bank( {$arClose['bank']} ) 請款被拒, 請檢查! by g_ssl_dotNet_Feedback"; exec_line(4, $SEND_DT, 'g_ssl_dotNet_Feedback'); } else { $SEND_DT = "單號: {$szMerchantTradeNo} (" . $arAuth['remsg'] . ") , 金額: {$arClose['amount']} , bank( {$arClose['bank']} ) 請款被拒, 請檢查! by g_ssl_dotNet_Feedback"; exec_line(4, $SEND_DT, 'g_ssl_dotNet_Feedback'); } //} } } } } } catch (Exception $ex) { $szReturnMessage = "0|{$ex->getMessage}()"; } echo $szReturnMessage; exit;
$ap_client = $client; $apMID_client = " and client='{$ap_client}' "; include 'g_Close_payamt_xml_body.php'; } $OUTdata .= "</Root>\n"; //$TEST_mode 為1時不傳送 if ($TEST_mode != 1) { $ccc = my_curl_id($payamtURE, $OUTdata); if ($ccc == 'ok') { $result = 1; $result_note = "送檔完成-" . $All_c . "店家" . $All_i . "筆金額" . $AllNEWamtTT . "元"; } else { $result = 2; $result_note = "傳送至vendor.allpay主機失敗"; $msg = "每日撥款檔傳送至vendor.allpay主機失敗, 未收到 ok 回應訊息, 請檢查! by g_Close_payamt_xml"; exec_line(1, $msg, 'g_Close_payamt_xml'); } } else { $result = 0; $result_note = "XML測試-" . $All_c . "店家" . $All_i . "筆金額" . $AllNEWamtTT . "元"; } @mysql_close($plink); //寫入檔案 $OUTfile = $File_home_dir . "/payamt/PayAmt" . date("Ymd") . ".txt"; $fp = fopen($OUTfile, "w"); fputs($fp, $OUTdata); fclose($fp); //去除字串中的HTML和PHP標籤 $OUTdata = strip_tags($OUTdata); $OUTdata = str_replace("\n", '<br>', $OUTdata); $OUTdata = str_replace('<br><br><br>', '<p>', $OUTdata);
$str = "update o_auth set remsg='已取消',recode='G19' where remsg='已授權' and sr='{$A}' limit 1 "; } else { $str = "update o_auth set remsg='已取消',recode='G19' where remsg='已授權' and sr='{$A}' " . $apMID_client . " limit 1 "; } mysql_query($str, $plink); //o_close有 要關帳 的資料也要改成取消 if ($DOma == 'EN') { $str_close = "SELECT sr FROM o_close WHERE authsr='{$A}' and stat='要關帳' limit 1 "; $qx_close = mysql_query($str_close, $plink); $ax_close = @mysql_fetch_array($qx_close); if ($ax_close['sr']) { $update_close = "UPDATE o_close SET dt='" . date("YmdHis") . "', stat='取消', bank_stat='取消' WHERE authsr='{$A}' and stat='要關帳' "; $res = mysql_query($update_close, $plink); if (!$res) { $linemsg = "幕後送放棄 {$A} 取消關帳資料失敗, " . mysql_error() . ", 請注意! by g_auth_close_body_cancel"; exec_line(4, $linemsg, 'g_auth_close_body_cancel.php'); } $update_close = "UPDATE o_close_bank SET dt='" . date("YmdHis") . "', stat='取消', bank_stat='幕後取消', uip='{$uip}' WHERE authsr='{$A}' and stat='要關帳' "; mysql_query($update_close, $plink); } } if ($Doit_ch == '幕後放棄') { $response_str = 'ok'; } else { $response_str = '放棄作業完成!'; } } else { if ($Doit_ch == '幕後放棄') { $response_str = 'error'; } else { $response_str = '放棄失敗!';
$rtus = @mysql_query($str_CLS, $plink); if ($rtus) { $nn++; } else { $nn_str_failed .= "Close更新費率失敗: " . $str_CLS . " <br>"; } $str_CLS = "update o_close_bank set percen='{$a['auth_percen']}', bank_pc='{$a['auth_bank_pc']}' where sr='{$a['sr']}' limit 1 "; $rtus = @mysql_query($str_CLS, $plink); if (!$rtus) { $nn_str_failed .= "Close_bank更新費率失敗: " . $str_CLS . " <br>"; } } } if ($nn < $num2 || $nn == 0) { $msg = $subject . ", o_close應更新 {$num2} 筆, 但有 " . ($num2 - $nn) . "筆更新失敗, 已將異常資料寄給 raleigh 請檢查! by percen_mak"; exec_line(1, $msg, 'percen_mak'); } if ($num1 == $ii && $num2 == $nn) { $result = 1; $result_note = "Auth=" . $ii . "筆Close=" . $nn . "筆"; } else { $result = 2; $result_note = "異常-Auth=" . $ii . "筆Close=" . $nn . "筆"; } //送出信件 $title = $subject . "-" . $result_note; if ($result == 2) { $msg = $title . "<br>Auth更新失敗" . ($num1 - $ii) . "筆-Close更新失敗" . ($num2 - $nn) . "筆<hr size=1>"; } else { $msg = $title . "<hr size=1>"; }
if ($sFTPok) { $result = 1; $FTPechoTO = "送台鐵平帳檔案到SFTP完成"; //刪檔, ctcb_in 中的檔案不保留 exec("rm -rf " . $Train_File_Path); } else { $result = 2; $FTPechoTO = "送台鐵平帳檔案到SFTP失敗"; } } else { $result = 2; $FTPechoTO = "SFTP連線失敗"; } if ($result == 2) { $msg = $subject . ", " . $FTPechoTO . " 台鐵 " . date("Ymd") . " 平帳無法進行. 很重要請檢查! by g_Close_china_re"; exec_line(1, $msg, 'g_Close_china_re'); } $result_note = $FTPechoTO; $title = $subject . "-" . $result_note; $msg = $title . "<hr size=1>" . $ListAuthALL; if ($sql_error) { $title .= "-有執行失敗SQL"; $msg .= "<br>執行失敗SQL: <br>" . $sql_error; } if ($TEST_mode == 1) { $title .= "-測試"; $result_note = "測試-" . $result_note; } if ($TEST_mode == 2) { $title .= "-Mode2"; $result_note = "Mode2-" . $result_note;
} if ($line_loop1 == 2) { $msg = $subject . ", 有很多家上傳檔案回應都有異常訊息, 我就不再發了, 自己看Email. 快來檢查吧! by g_Close_ncccOut"; exec_line(1, $msg, 'g_Close_ncccOut'); } $line_loop1++; } } else { $str_msg = "產生上傳的關帳檔失敗"; if ($line_loop2 < 2) { $msg = $subject . ", " . $aMID[mid] . " " . $corpname . " 店家產生上傳的關帳檔失敗, 關帳檔未上傳. 請檢查! by g_Close_ncccOut"; exec_line(1, $msg, 'g_Close_ncccOut'); } if ($line_loop2 == 2) { $msg = $subject . ", 有很多家產生上傳的關帳檔失敗, 我就不再發了, 自己看Email. 快來檢查吧! by g_Close_ncccOut"; exec_line(1, $msg, 'g_Close_ncccOut'); } $line_loop2++; } } $nums++; $FTP_m2list .= "<tr><td> " . $nums . " </td><td> " . $aMID[mid] . " </td><td> " . $corpname . " </td><td> " . $ss_all . " </td><td> " . $amount_all . " </td><td> " . $str_msg . " </td></tr>"; } } @mysql_close($plink); if (!$TEST_mode) { $OUTfile = $DirUrlTxt . '/send' . $hohsnYMD . '.log'; $fp = fopen($OUTfile, "w"); fputs($fp, $log_str); fclose($fp); //exec("chmod 666 $OUTfile");
//共有多少筆資料 $inclosing = "關帳失敗 - stat關帳中的有" . $aBK . "筆<br>"; $strBK = "SELECT sr FROM " . $O_CLOSE . " WHERE bank_stat='關帳中' and (bank='9' or bank='10') and auth!='777777'"; $qBK = @mysql_query($strBK, $plink); $Bank_aBK = @mysql_num_rows($qBK); $inclosing .= "關帳失敗 - bank_stat關帳中的有" . $Bank_aBK . "筆<br>"; @mysql_close($plink); //沒請款檔通知 (發 Line 警示) if ($nums_fail && !$TEST_mode) { $msg = "新聯信關帳取回 {$dtmYesterday} 請款檔, 應取回 {$nums} 家廠商交易資料, 但有 {$nums_fail} 家取回失敗, 目前關帳中的有 {$aBK} 筆, 請注意! by g_Close_ncccIn"; exec_line(1, $msg, 'g_Close_ncccIn'); } //被踢退通知 (發 Line 警示) if ($total_nums_fail && !$TEST_mode) { $msg = "新聯信關帳取回 {$dtmYesterday} 請款檔, 有 {$total_nums_fail} 筆資料被踢退, 請注意! by g_Close_ncccIn"; exec_line(4, $msg, 'g_Close_ncccIn'); } $result = 1; //$result_note = "應取回".$nums."家成功取回".$nums_succ."家共".$total_nums."筆總金額".$total_amt; $result_note = "應取回" . $nums . "家成功取回" . $nums_succ . "家共" . $total_nums . "筆"; //如果有失敗 if ($nums_fail) { $result_note .= "失敗" . $nums_fail . "家"; } //如果有踢退 if ($total_nums_fail) { $result_note .= "踢退" . $total_nums_fail . "筆"; } //如果有異常 $get_recv_fail_nums = $total_nums - $total_nums_succ - $total_nums_fail; if ($get_recv_fail_nums) {
$bank_str = "花旗銀行"; } if ($arOrigionAuth['bank'] == 41 || $arOrigionAuth['bank'] == 42) { $bank_str = "新光銀行"; } if ($arOrigionAuth['bank'] == 43 || $arOrigionAuth['bank'] == 44) { $bank_str = "永豐銀行"; } $res_str = $szResponseCode ? $szResponseCode : "為空"; //$SEND_DT = "授權(".$MerchantTradeNo.")回覆時間與系統時間差距超過 60 秒, 請檢查 cc.allpay & credit.allpay 的系統時間! by form_ssl_result"; $SEND_DT = $bank_str . ", 單號(" . $MerchantTradeNo . ")授權時間 " . abs(time() - $receiveTime) . " 秒, 回應碼" . $res_str . ", 若連續發生多筆就需要注意! by form_ssl_result"; exec_line(1, $SEND_DT, 'form_ssl_result'); } if (!$arOrigionAuth[sr]) { $SEND_DT = "授權單號: " . $szMerchantTradeNo . " 授權比對錯誤, 請檢查! by form_ssl_result"; exec_line(4, $SEND_DT, 'form_ssl_result'); $response_msg = '授權失敗'; $str = "update o_auth set remsg='授權失敗',recode='xxa',rootmemo='{$szRootMemo}' where sr='{$szMerchantTradeNo}' and auth='' limit 1 "; mysql_query($str, $databaseLink); $ret = array("client" => ${$arOrigionAuth}[client], "SR" => $szMerchantTradeNo, "Amount" => $nTradeAmount, "Response" => $response_msg, "Allsn" => $arOrigionAuth[allsn], "UserIP" => $uip, "RunTime" => number_format(microtime(true) - $t1, 3)); @write_log("form_ssl", "授權追縱 LOG (END) 授權比對錯誤 form_ssl_result.php", $ret); include 'form_ssl_noan_out.inc'; $running = number_format(microtime(true) - $t1, 3); @exec_sr_tracer($szMerchantTradeNo, "step5", $running, "form_ssl_result.php", "final", "xxa", $response_msg); exit; } // 大特店金鑰序號 $szAllsn = $arOrigionAuth[allsn]; //該筆訂單使用者IP $szWebIP = $arOrigionAuth[uip]; $arOrigionAuth[hoho] = str_replace('[BR]', '<BR>', $arOrigionAuth[hoho]);
// bank in (29, 30) 國泰世華不檢查 $strR = "SELECT sr, authsr, client, amount, dtymd, bank, dt, stat, mid, bank_stat FROM o_close WHERE bank not in (29, 30) and (dt>='" . $dt_start . "' and dt<='" . $dt_end . "') and bank_stat!='已關帳' and bank_stat!='已取消' and bank_stat!='取消' order by authsr ASC "; $ww = @mysql_query($strR, $plink); $num1 = @mysql_num_rows($ww); //未關帳成功筆數 if ($num1) { $i = 0; $ii_str = "<table border=0><tr align=center><td>序號</td><td>Client</td><td>o_close.sr</td><td>授權單號</td><td align=center>銀行</td><td>金額</td><td>關帳處理日期</td><td>授權</td><td>stat</td><td>bank_stat</td><td>MID</td></tr>"; while ($ax = @mysql_fetch_array($ww)) { $strauth = "select remsg from o_auth where sr='" . $ax['authsr'] . "' limit 1"; $rsauth = @mysql_query($strauth, $plink); $resauth = mysql_fetch_array($rsauth); $i++; $ii_str .= "<tr align=center><td>" . $i . "</td><td>" . $ax['client'] . "</td><td>" . $ax['sr'] . "</td><td>" . $ax['authsr'] . "</td><td>" . $ax['bank'] . "</td><td>" . $ax['amount'] . "</td><td>" . $ax['dt'] . "</td><td>" . $resauth['remsg'] . "</td><td>" . $ax['stat'] . "</td><td>" . $ax['bank_stat'] . "</td><td>" . $ax['mid'] . "</td></tr>"; } $ii_str .= "</table>"; $linemsg = "o_close.bank_stat有關帳失敗的交易 " . $num1 . " 筆, 請檢查! by holiday_pay_mak"; exec_line(4, $linemsg, 'holiday_pay_mak'); $Mailtitle = "警告-o_close.bank_stat有關帳失敗的交易" . $num1 . "筆"; $MailStr = $subject . "-" . $Mailtitle . "<hr><p>" . $strR . "<p>" . $ii_str; $MailStr .= "<hr size=1>於 Settlement 每日 " . $settime . " 執行的 " . $filename . " 執行時間 " . number_format(microtime(true) - $t1, 3) . " 秒<br>" . date("Y/m/d H:i:s"); exec_mail(2, $Mailtitle, $MailStr, 'holiday_pay_mak'); } else { $Mailtitle = "o_close.bank_stat昨日關帳正常"; $MailStr = $subject . "-" . $Mailtitle . "<hr><p>" . $strR . "<p>"; $MailStr .= "<hr size=1>於 Settlement 每日 " . $settime . " 執行的 " . $filename . " 執行時間 " . number_format(microtime(true) - $t1, 3) . " 秒<br>" . date("Y/m/d H:i:s"); exec_mail(2, $Mailtitle, $MailStr, 'holiday_pay_mak'); } echo $subject . "-第三階段驗證:未關帳成功警告-結束 \r\n"; @mysql_close($plink); exit;
ftp_pasv($ftp_link, true); if ($login) { //ftp_put($ftp_link, "上傳的檔案名稱", "本地的檔案路徑", FTP_BINARY); ftp_put($ftp_link, $FTP_fileName, $OUTfileName_zip, FTP_BINARY); $result = 1; $FTPechoTO = '中信FTP上傳國旅檔完成'; } else { $result = 2; $FTPechoTO = '中信FTP連線失敗(國旅)'; } ftp_close($ftp_link); if ($result == 1) { $result_note = "成功送出國旅" . $allamq . "筆新增" . $re_nums . "筆重送" . $re_nums . "筆台鐵" . $ss_all . "筆"; } else { $msg = $subject . ", " . $FTPechoTO . " 未上傳中信 " . date("Ymd") . " 國旅檔, 需在17:00前送, 請檢查! by g_Close_china_glu"; exec_line(1, $msg, 'g_Close_china_glu'); $result_note = "異常-未送出國旅" . $allamq . "筆新增" . $re_nums . "筆重送" . $re_nums . "筆台鐵" . $ss_all . "筆"; } $FTPechoTO = '中信新國旅送檔明細' . "\r\n" . $allamq . "筆 \r\n"; $title = $subject . "-" . $result_note; $msg = $title . " " . $FTPechoTO; if ($sql_error) { $title .= "-有異常"; $msg .= "<br>執行失敗SQL: <br>" . $sql_error; } if ($TEST_mode) { $title .= "-測試"; $result_note = "測試-" . $result_note; } //記DBLOG $arr = array('setdate' => $setdate, 'settime' => $settime, 'period' => $period, 'result' => $result, 'result_note' => $result_note, 'running' => number_format(microtime(true) - $t1, 3), 'start_time' => $start_time, 'end_time' => date("YmdHis"));
if ($r_msg == '非台灣卡片') { $response_msg = $OutPPnoTW; $ret = array("client" => $client, "SR" => $aa, "Response" => $response_msg, "Allsn" => $allsn, "UserIP" => $uip, "RunTime" => number_format(microtime(true) - $t1, 3)); @write_log("form_ssl", "授權追縱 LOG (END) " . $r_msg . " form_ssl.php", $ret); include 'form_ssl_noan_out.inc'; $running = number_format(microtime(true) - $t2, 3); @exec_sr_tracer($aa, "step5", $running, "form_ssl.php", "final", "---", $r_msg); session_destroy(); exit; } if ($r_msg == '連續可疑刷卡') { include 'g_stop_log_in.php'; //寫入客服警示 //發Line $SEND_DT = "{$client} {$form['corpname']} - 單號: {$aa} , 金額: {$amount} , 可能有盜刷試卡, 要注意! {$uip}, 後碼: {$lsno} by form_ssl"; exec_line(3, $SEND_DT, 'form_ssl'); if ($Enn == 'e') { $OutPPtext = 'informantion has been sent to police. tracing your IP:' . $uip; } else { $OutPPtext = '電信警察通連查測中!目標ip:' . $uip . '追查中!'; } $response_msg = $OutPPtext; $ret = array("client" => $client, "SR" => $aa, "Response" => $response_msg, "Allsn" => $allsn, "UserIP" => $uip, "RunTime" => number_format(microtime(true) - $t1, 3)); @write_log("form_ssl", "授權追縱 LOG (END) " . $r_msg . " form_ssl.php", $ret); $running = number_format(microtime(true) - $t2, 3); @exec_sr_tracer($aa, "step5", $running, "form_ssl.php", "final", "---", $r_msg); include 'form_ssl_noan_out.inc'; session_destroy(); exit; } //額度超過上限
function mylink($plink, $dbname = DB_NAME) { mysql_query("set names 'utf8'", $plink); //UTF-8一定要有這行 $result = mysql_select_db($dbname); if (!$result) { $linemsg = "警告: Settlement USE DB (" . $dbname . ") 失敗, " . mysql_error() . " 請檢查這個時間點執行的排程是否正常! by Settlement"; exec_line(1, $linemsg, 'Settlement'); die('Can\'t use foo : ' . mysql_error()); } return $result; }
$result = mylink($plink); $BankTitel = array('9' => '新聯信', '10' => '新聯信(分期)', '18' => '台新', '19' => '台新(分期)', '26' => '美國運通', '27' => '玉山', '28' => '玉山(分期)', '33' => '中信新', '35' => '萬泰', '35' => '萬泰(分期)', '37' => '富邦', '38' => '富邦(分期)', '41' => '新光', '42' => '新光(分期)', '43' => '永豐', '44' => '永豐(分期)'); //前1小時 $MKtime = mktime(date("H") - 1, date("i"), date("s"), date("m"), date("d"), date("Y")); $OneHourAgo = date("YmdHis", $MKtime); //檢查各銀行別 foreach ($BankTitel as $key => $value) { //echo "Key: $key; Value: $value <br>\n"; $err_count = 0; //記錄連續錯誤筆數 $flag = 0; //SELECT sr, recode, remsg FROM `o_auth` where bank = 18 and procdt >= '20140407140115' ORDER BY `o_auth`.`sr` DESC limit 5 $str = "SELECT sr, recode, remsg, dt FROM `o_auth` where bank = {$key} and procdt >= '{$OneHourAgo}' and recode != 'A01' and auth != '777777' ORDER BY `o_auth`.`sr`"; $q = @mysql_query($str, $plink); while ($arr = @mysql_fetch_array($q)) { if ($arr[remsg] == '已授權') { //授權 err_count 就歸 0 $err_count = 0; } else { $err_count++; } } //多於 5 筆錯誤 if ($err_count > 5) { //發 Line 群通知 $msg = "[" . $value . "]授權連續 " . $err_count . " 筆失敗 請檢查! by form_ssl_check"; exec_line(1, $msg, 'form_ssl_check'); } echo " {$value} 連續錯誤筆數 {$err_count} , 檢查完成!\r\n"; } }
$iswhy = $OutPPtextA015; $succ = 0; //找出回傳網址 if ($form[urlfail]) { $ROTurlOK = $form[urlfail]; } } } //有roturl回傳網址的 if ($Mpisr[roturl]) { $ROTurlOK = $Mpisr[roturl]; } //發Line, 通知防火牆的問題造成錯誤 if ($ResponseCode == '921') { $SEND_DT = "聯信萬泰授通道, 防火牆的問題造成錯誤 ResponseCode=921 {$remsg_in} by form_ssl_Nccc"; exec_line(4, $SEND_DT, 'form_ssl_Nccc'); } if ($UpdateOKyet == 0) { //$rehohsn = date("YmdHis"); $rehohsn = $TransDate . $TransTime; //交易日期時間, 因請款需要, 故需記銀行回覆的時間 $red_de_amt = $amount - $CreditAmt; $str = "update o_auth set remsg='{$remsg_in}',recode='{$ResponseCode}',eci='{$ECI}',dt='{$rehohsn}',trace_no='{$trace_no}',auth='{$ApproveCode}',stast='{$FirstAmt}',staed='{$EachAmt}',rootmemo='{$RTlogo}',red_dan='{$RedeemUsed}',red_de_amt='{$red_de_amt}',red_ok_amt='{$CreditAmt}',red_yet='{$RedeemBalance}' where sr='{$OrderID}' and amount='{$amount}' and auth='' limit 1 "; $result = mysql_query($str, $plink); if (!$result) { $title = "Credit更新單號o_auth-SQL執行失敗"; $msg = "SQL執行失敗! " . mysql_error() . "<hr size=1>" . $str . "<br>"; $msg .= "<hr size=1>於 pay-web 執行的 from_ssl_Nccc.php 執行時間 " . number_format(microtime(true) - $t1, 3) . " 秒<br>" . date("Y/m/d H:i:s"); @exec_mail(2, $title, $msg, $filename); } //馬上發動要關帳的要求
$SendNEC .= "##"; //2014.06.18 增加記錄 $ret = array("SR" => $sr, "Time" => date("Y-m-d H:i:s"), "Note" => "送出資料前", "Server" => $City_host_id, "SendNEC" => $SendNEC); @write_log("g_Close_taishin_re", "台新18,19, 中信33,34, 花旗39,40 取消用API LOG (2)", $ret); $response_str = ""; $fp = fsockopen("{$City_host_id}", "16688", $errno, $errstr, 50); //正式上線的,網址IP,PORT,回應代碼,回應訊息,等待時間 if ($fp) { $txtnb = strlen($SendNEC); $goNEC = @fwrite($fp, $SendNEC, $txtnb); $bsb = @fread($fp, 1024); fclose($fp); $bsb = str_replace(' ', "", $bsb); //過濾空格 $VCBSB = substr($bsb, 0, 8); //比對是不是 B002**00 if ($VCBSB == 'B002**00') { $response_str = 'OK_' . $bsb; } else { $response_str = 'xx_' . $bsb; } } else { $response_str = 'x_2tiger'; $msg = "授權單號 {$sr} 退刷時無法連至 {$City_host_id} , 請檢查!"; @exec_line(1, $msg, "g_Close_taishin_re"); } echo $response_str; //2014.06.18 增加記錄 $ret = array("SR" => $sr, "Time" => date("Y-m-d H:i:s"), "Note" => "結束", "Echo" => $response_str, "bsb" => $bsb); @write_log("g_Close_taishin_re", "台新18,19, 中信33,34, 花旗39,40 取消用API LOG (End)", $ret); exit;
} if ($line_loop1 == 2) { $msg = $subject . ", 有很多家上傳檔案回應都有異常訊息, 我就不再發了, 自己看Email. 快來檢查吧! by g_Close_wantaiOut"; exec_line(1, $msg, 'g_Close_wantaiOut'); } $line_loop1++; } } else { $str_msg = "產生上傳的關帳檔失敗"; if ($line_loop2 < 2) { $msg = $subject . ", " . $aMID[mid] . " " . $corpname . " 產生上傳的關帳檔失敗, 關帳檔未上傳. 請檢查! by g_Close_wantaiOut"; exec_line(1, $msg, 'g_Close_wantaiOut'); } if ($line_loop2 == 2) { $msg = $subject . ", 有很多家產生上傳的關帳檔失敗, 我就不再發了, 自己看Email. 快來檢查吧! by g_Close_wantaiOut"; exec_line(1, $msg, 'g_Close_wantaiOut'); } $line_loop2++; } } $nums++; $FTP_m2list .= "<tr><td> " . $nums . " </td><td> " . $aMID[mid] . " </td><td> " . $corpname . " </td><td> " . $ss_all . " </td><td> " . $amount_all . " </td><td> " . $str_msg . " </td></tr>"; } } @mysql_close($plink); //寫入完整LOG if ($TEST_mode != 1) { $OUTfile = $DirUrlTxt . '/send' . $hohsnYMD . '.log'; $fp = fopen($OUTfile, "w"); fputs($fp, $log_str); fclose($fp);
$CloseLineStr = ''; $tsYesterday = mktime(date("H"), date("i"), date("s"), date("m"), date("d") - 1, date("Y")); $dtmYesterday = date("Ymd", $tsYesterday); // 昨天的日期 $dtmStartDateTime = $dtmYesterday . '200001'; $szSQL = "SELECT sr,client,bank,authsr FROM o_close WHERE dt < '{$dtmStartDateTime}' AND remsg='要關帳' "; $rsCloses = @mysql_query($szSQL, $plink); while ($arClose = @mysql_fetch_array($rsCloses)) { $CloseFlag = 1; $CloseLineStr .= $arClose['authsr'] . ","; $CloseMailStr .= "授權單號: " . $arClose['authsr'] . " (Bank: " . $arClose['bank'] . ", Client: " . $arClose['client'] . ", o_close.sr: " . $arClose['sr'] . ") 狀態為 要關帳 未處理<br>"; } if ($CloseFlag) { //發 Line 群通知 $linemsg = "警告: 有逾期未處理的要關帳資料 " . $CloseLineStr . " 請檢查! by 000_auto"; exec_line(4, $linemsg, '000_auto'); //ALLPAY ALERT $CloseMailtitle = "警告-有逾期未處理的要關帳資料"; $CloseMailStr .= "<hr size=1>於 Settlement 每日 " . $settime . " 執行的 000_auto.php 執行時間 " . number_format(microtime(true) - $t1, 3) . " 秒<br>" . date("Y/m/d H:i:s"); exec_mail(2, $CloseMailtitle, $CloseMailStr, '000_auto'); } @mysql_close($plink); //更新已到期之商家旗標 $DBHOST = DB_HOST; //主DB $plink = checkdblink($DBHOST); $result = mylink($plink); $flag = 0; $tsYesterday = mktime(date("H"), date("i"), date("s"), date("m"), date("d") - 1, date("Y")); $dtmYesterday = date("Y-m-d", $tsYesterday); // 昨天的日期
$start_time = date("YmdHis"); $filename = "i.php"; set_time_limit(60); include 'g_common.inc'; header("Cache-Control: no-cache, must-revalidate"); header("Content-Type: text/html; charset=UTF-8"); @write_log("i", "HTTP_REFERER: " . $_SERVER['HTTP_REFERER'] . " (" . $uip . ")", $_REQUEST); $URI = $_SERVER['REQUEST_URI']; $URI = explode("/", $URI); //echo urlencode("發Line測試"); //https://credit.allpay.com.tw/i.php/line/ecbank/%E7%99%BCLine%E6%B8%AC%E8%A9%A6 if ($URI[2] == "line" && ($URI[3] == "ecbank" || $URI[3] == "anow")) { $plink = mylink(); $filename = $URI[3]; $linemsg = urldecode($URI[4]); exec_line(4, $linemsg, $filename); echo "1|OK"; exit; } if (!in_array($uip, $SYSTEM_IP)) { echo "非授權IP: {$uip}, STOP!"; exit; } //同步廠商開立紙本or電子發票資料 o_user.wcom 0:電 1:紙 q:查詢 //https://credit.allpay.com.tw/i.php/invoice/0/1020203 if ($URI[2] == "invoice" && $URI[3] != "" && $URI[4] != "") { if (($URI[3] == 0 || $URI[3] == 1 || $URI[3] == 'q') && is_numeric($URI[4]) && (strlen($URI[4]) == 6 || strlen($URI[4]) == 7)) { if ($URI[3] == 'q') { $plink = B_mylink(); $str = "select wcom from o_user where allpayMID=" . mysql_real_escape_string($URI[4]) . " limit 1 "; $qq = mysql_query($str, $plink);
mylink($plink); $result = mysql_query("SELECT sr FROM o_auth WHERE remsg = '已授權' and procdt >= '{$Yesterday}'", $plink); $auth42_num = mysql_num_rows($result); mysql_close($plink); if ($auth41_num == 0 && date("H") >= 9) { $result = 2; $msg = "無任何成功交易"; $linemsg = "Credit系統 5 分鐘內無任何成功交易, 請注意! by db_check"; exec_line(1, $linemsg, 'db_check'); } else { $diff_num = $auth41_num - $auth42_num; if (abs($diff_num) >= 6) { $result = 2; $msg = "資料差距 {$diff_num} 筆 DB41: {$auth41_num} DB42: {$auth42_num}"; $linemsg = "Credit系統同步 5 分鐘內成功授權資料差距 {$diff_num} 筆, 請檢查! by db_check"; exec_line(1, $linemsg, 'db_check'); echo "兩邊資料\r\n 4.1: {$auth41_num} \r\n 4.2: {$auth42_num} \r\n差距 {$diff_num} 筆!\r\n"; } else { $result = 1; $msg = "資料差距 {$diff_num} 筆"; echo "兩邊資料\r\n 4.1: {$auth41_num} \r\n 4.2: {$auth42_num} \r\n檢查完成!\r\n"; } } //若執行時間大於 6 秒 則發 Line群 通知 $t2 = microtime(true); $running_time = number_format($t2 - $t1, 3); if ($running_time >= 6) { $title = "Credit系統 DB 查詢回應時間過久, 執行時間 " . $running_time . " 秒警告通知, 請注意! by db_check"; //exec_line(1, $title, 'db_check'); $end_time = date("YmdHis"); $msg = "Settlement 10.0.4.7 執行程式 db_check.php <br>";