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 {
//log directory
$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)){
mkdir($requestUrl, 0777, true);
if(!file_exists($responseUrl)){
mkdir($responseUrl, 0777, true);
}
//log data
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');
chmod($requestUrl.DIRECTORY_SEPARATOR.'Log_'.date("Y-m-d").'.log',511);
$header = array('Content-Type: application/x-www-form-urlencoded'
, 'Content-Length: ' . strlen($data)
);
$opts = array('http' => array('method' => 'POST'
, 'header' => implode("\r\n", $header)
, 'content' => $data)
);
$context = stream_context_create($opts);
// コールバック送信!
$file = file_get_contents($callBack, false, $context);
// callback sender to merchant and response logger
$context = curl_init();
curl_setopt_array($context, [
CURLOPT_URL => $callBack,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HEADER => true,
CURLOPT_ENCODING => "utf8",
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Content-Type: application/x-www-form-urlencoded",
"Content-length: ".strlen($data)
]
]);
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'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
......@@ -184,10 +205,7 @@ class LogicSettlement extends SettlementModelClass {
}
// 転送をする
if($url != NO_STRING
&& $file == NO_COUNT
&& $result == NO_COUNT) { // 正常終了
if($url != NO_STRING && $result == NO_COUNT) { // 正常終了
// this insert command also comtains data that will passed to merchant's system.
$this -> accessModifyCommon('INSERT_LOG_POST', array(
$ip,
......
......@@ -158,15 +158,7 @@ class TransactionLogsModelClass extends ModelClassEx {
* @return : 表示用HTML文字列
-------------------------------------------------------------------------*/
function dispPager() {
$requestTrim = array();
$responseTrim = array();
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();
$total = count($merged['merged']);
......@@ -187,40 +179,32 @@ class TransactionLogsModelClass extends ModelClassEx {
function dispSolutions() {
// 変数宣言部
$rtn = NO_STRING;
$sStatus = array();
$checked = array();
$method = array();
$method[] = array(PARAM_DATA_KEY => '0'
, PARAM_DATA_VALUE => 'CASHFLOWVM');
$method[] = array(PARAM_DATA_KEY => '1'
, PARAM_DATA_VALUE => 'LBTC');
$method[] = array(PARAM_DATA_KEY => '2'
, PARAM_DATA_VALUE => 'Overseas');
$method[] = array(PARAM_DATA_KEY => '3'
, PARAM_DATA_VALUE => 'CUP');
$method[] = array(PARAM_DATA_KEY => '4'
, PARAM_DATA_VALUE => 'BIT');
$method[] = array(PARAM_DATA_KEY => '5'
, PARAM_DATA_VALUE => 'H2P');
$method[] = array(PARAM_DATA_KEY => '6'
, PARAM_DATA_VALUE => 'H2PW');
$method[] = array(PARAM_DATA_KEY => '7'
, PARAM_DATA_VALUE => 'SDPay_Withdraw');
$method[] = array(PARAM_DATA_KEY => '8'
, PARAM_DATA_VALUE => 'settlement');
$method[] = array(PARAM_DATA_KEY => '10'
, PARAM_DATA_VALUE => 'CPS');
$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');
$method = [];
$methodNames = [
"CASHFLOWVM",
"LBTC",
"Overseas",
"CUP",
"BIT",
"H2P",
"H2PW",
"SDPay_Withdraw",
"settlement",
"CPS",
"From_DB",
"LBT(Japan)",
"Japan Remittance Voucher",
"ZP_UPI",
"Credit Card Deposit"
];
foreach($methodNames as $key => $value){
$method[] = [
PARAM_DATA_KEY => $key,
PARAM_DATA_VALUE => $value
];
}
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>';
......@@ -387,7 +371,8 @@ class TransactionLogsModelClass extends ModelClassEx {
$resFolder = $logFolder.DIRECTORY_SEPARATOR.'SDPayWithdraw'.DIRECTORY_SEPARATOR.'response'.DIRECTORY_SEPARATOR.'*.log';
break;
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;
case 'LBT(Japan)':
$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