Commit cb1a946c authored by Antonio.Suerte's avatar Antonio.Suerte

Payment API Callback Response Logger

parent b78471aa
...@@ -148,30 +148,51 @@ class LogicSettlement extends SettlementModelClass { ...@@ -148,30 +148,51 @@ class LogicSettlement extends SettlementModelClass {
//log directory //log directory
$apiPath = dirname(SYSTEM_PATH).DIRECTORY_SEPARATOR.'api'; $apiPath = dirname(SYSTEM_PATH).DIRECTORY_SEPARATOR.'api';
$requestUrl = $apiPath.DIRECTORY_SEPARATOR.'Logs'.DIRECTORY_SEPARATOR.'settlement'.DIRECTORY_SEPARATOR.'settlement_response_data'; $responseUrl = $apiPath.DIRECTORY_SEPARATOR.'Logs'.DIRECTORY_SEPARATOR.'settlement'.DIRECTORY_SEPARATOR.'settlement_response_data';
if(!file_exists($requestUrl)){ if(!file_exists($responseUrl)){
mkdir($requestUrl, 0777, true); mkdir($responseUrl, 0777, true);
} }
//log data // callback sender to merchant and response logger
error_log(date("\r\n[Y-m-d H:i:s]") . "Return URL:\r\n" . $callBack . "\r\n context: " . $data . "\r\n", 3, $requestUrl.DIRECTORY_SEPARATOR.'Log_' . date("Y-m-d") . '.log'); $context = curl_init();
chmod($requestUrl.DIRECTORY_SEPARATOR.'Log_'.date("Y-m-d").'.log',511);
curl_setopt_array($context, [
$header = array('Content-Type: application/x-www-form-urlencoded' CURLOPT_URL => $callBack,
, 'Content-Length: ' . strlen($data) CURLOPT_RETURNTRANSFER => true,
); CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HEADER => true,
$opts = array('http' => array('method' => 'POST' CURLOPT_ENCODING => "utf8",
, 'header' => implode("\r\n", $header) CURLOPT_POSTFIELDS => $data,
, 'content' => $data) CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
); CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
$context = stream_context_create($opts); "Content-Type: application/x-www-form-urlencoded",
"Content-length: ".strlen($data)
// コールバック送信! ]
$file = file_get_contents($callBack, false, $context); ]);
if($err = curl_error($context)){
$cboutput = $err;
}else {
$cboutput = curl_exec($context);
$headerSize = curl_getinfo($context, CURLINFO_HEADER_SIZE);
$responseHeaders = substr($cboutput, 0, $headerSize);
$responseBody = substr($cboutput, $headerSize);
$cboutput = "[Headers]\n\n{$responseHeaders}[Body]\n\n{$responseBody}";
}
//logging response data
$logFileName = $responseUrl.DIRECTORY_SEPARATOR.'Log_H'.date("Y-m-d").'.log';
error_log("\r\n[".date("Y-m-d H:i:s")."][{$this -> getProgramCode()}]\r\n\nReturn URL:\r\n\n{$callBack}\r\n\nContext: {$data}\r\n\nResponse:\r\n\n{$cboutput}\r\n",
VAL_INT_3,
$logFileName);
chmod($logFileName, 511);
// end of logging response data
if(isset($_SERVER['REMOTE_ADDR'])) { if(isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR']; $ip = $_SERVER['REMOTE_ADDR'];
} }
...@@ -184,10 +205,7 @@ class LogicSettlement extends SettlementModelClass { ...@@ -184,10 +205,7 @@ class LogicSettlement extends SettlementModelClass {
} }
// 転送をする // 転送をする
if($url != NO_STRING if($url != NO_STRING && $result == NO_COUNT) { // 正常終了
&& $file == NO_COUNT
&& $result == NO_COUNT) { // 正常終了
// this insert command also comtains data that will passed to merchant's system. // this insert command also comtains data that will passed to merchant's system.
$this -> accessModifyCommon('INSERT_LOG_POST', array( $this -> accessModifyCommon('INSERT_LOG_POST', array(
$ip, $ip,
......
...@@ -158,15 +158,7 @@ class TransactionLogsModelClass extends ModelClassEx { ...@@ -158,15 +158,7 @@ class TransactionLogsModelClass extends ModelClassEx {
* @return : 表示用HTML文字列 * @return : 表示用HTML文字列
-------------------------------------------------------------------------*/ -------------------------------------------------------------------------*/
function dispPager() { function dispPager() {
$requestTrim = array();
$responseTrim = array();
if($this -> method != 'From_DB'){ if($this -> method != 'From_DB'){
$logFolder = dirname(SYSTEM_PATH).DIRECTORY_SEPARATOR.'api'.DIRECTORY_SEPARATOR.'Logs';
$solution = $this -> method;
$reqFolder = NO_STRING;
$resFolder = NO_STRING;
$merged = $this-> getLogs(); $merged = $this-> getLogs();
$total = count($merged['merged']); $total = count($merged['merged']);
...@@ -187,40 +179,32 @@ class TransactionLogsModelClass extends ModelClassEx { ...@@ -187,40 +179,32 @@ class TransactionLogsModelClass extends ModelClassEx {
function dispSolutions() { function dispSolutions() {
// 変数宣言部 // 変数宣言部
$rtn = NO_STRING; $rtn = NO_STRING;
$sStatus = array(); $method = [];
$checked = array();
$method = array(); $methodNames = [
"CASHFLOWVM",
$method[] = array(PARAM_DATA_KEY => '0' "LBTC",
, PARAM_DATA_VALUE => 'CASHFLOWVM'); "Overseas",
$method[] = array(PARAM_DATA_KEY => '1' "CUP",
, PARAM_DATA_VALUE => 'LBTC'); "BIT",
$method[] = array(PARAM_DATA_KEY => '2' "H2P",
, PARAM_DATA_VALUE => 'Overseas'); "H2PW",
$method[] = array(PARAM_DATA_KEY => '3' "SDPay_Withdraw",
, PARAM_DATA_VALUE => 'CUP'); "settlement",
$method[] = array(PARAM_DATA_KEY => '4' "CPS",
, PARAM_DATA_VALUE => 'BIT'); "From_DB",
$method[] = array(PARAM_DATA_KEY => '5' "LBT(Japan)",
, PARAM_DATA_VALUE => 'H2P'); "Japan Remittance Voucher",
$method[] = array(PARAM_DATA_KEY => '6' "ZP_UPI",
, PARAM_DATA_VALUE => 'H2PW'); "Credit Card Deposit"
$method[] = array(PARAM_DATA_KEY => '7' ];
, PARAM_DATA_VALUE => 'SDPay_Withdraw');
$method[] = array(PARAM_DATA_KEY => '8' foreach($methodNames as $key => $value){
, PARAM_DATA_VALUE => 'settlement'); $method[] = [
$method[] = array(PARAM_DATA_KEY => '10' PARAM_DATA_KEY => $key,
, PARAM_DATA_VALUE => 'CPS'); PARAM_DATA_VALUE => $value
$method[] = array(PARAM_DATA_KEY => '9' ];
, PARAM_DATA_VALUE => 'From_DB'); }
$method[] = array(PARAM_DATA_KEY => '11'
, PARAM_DATA_VALUE => 'LBT(Japan)');
$method[] = array(PARAM_DATA_KEY => '12'
, PARAM_DATA_VALUE => 'Japan Remittance Voucher');
$method[] = array(PARAM_DATA_KEY => '13'
, PARAM_DATA_VALUE => 'ZP_UPI');
$method[] = array(PARAM_DATA_KEY => '14'
, PARAM_DATA_VALUE => 'Credit Card Deposit');
foreach($method as $row) { foreach($method as $row) {
$rtn .= '<label>' . $this -> makeCheckOne(PARAM_METHOD . '" class="method', PARAM_METHOD, $row[PARAM_DATA_VALUE], $row[PARAM_DATA_VALUE] , $this -> method) . '</label>'; $rtn .= '<label>' . $this -> makeCheckOne(PARAM_METHOD . '" class="method', PARAM_METHOD, $row[PARAM_DATA_VALUE], $row[PARAM_DATA_VALUE] , $this -> method) . '</label>';
...@@ -387,7 +371,8 @@ class TransactionLogsModelClass extends ModelClassEx { ...@@ -387,7 +371,8 @@ class TransactionLogsModelClass extends ModelClassEx {
$resFolder = $logFolder.DIRECTORY_SEPARATOR.'SDPayWithdraw'.DIRECTORY_SEPARATOR.'response'.DIRECTORY_SEPARATOR.'*.log'; $resFolder = $logFolder.DIRECTORY_SEPARATOR.'SDPayWithdraw'.DIRECTORY_SEPARATOR.'response'.DIRECTORY_SEPARATOR.'*.log';
break; break;
case 'settlement': case 'settlement':
$resFolder = $logFolder.DIRECTORY_SEPARATOR.'settlement'.DIRECTORY_SEPARATOR.'access'.DIRECTORY_SEPARATOR.'*.log'; $reqFolder = $logFolder.DIRECTORY_SEPARATOR.'settlement'.DIRECTORY_SEPARATOR.'access'.DIRECTORY_SEPARATOR.'*.log';
$resFolder = $logFolder.DIRECTORY_SEPARATOR.'settlement'.DIRECTORY_SEPARATOR.'settlement_response_data'.DIRECTORY_SEPARATOR.'*.log';
break; break;
case 'LBT(Japan)': case 'LBT(Japan)':
$resFolder = $logFolder.DIRECTORY_SEPARATOR.'LBTF3'.DIRECTORY_SEPARATOR.'*.log'; $resFolder = $logFolder.DIRECTORY_SEPARATOR.'LBTF3'.DIRECTORY_SEPARATOR.'*.log';
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment