From 20302f831277367c23656f0d2e06d370ab44b0e6 Mon Sep 17 00:00:00 2001 From: chicpro Date: Fri, 25 Sep 2015 09:38:56 +0900 Subject: [PATCH] =?UTF-8?q?sms5=20LMS=20=EB=AA=A8=EB=93=88=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/css/admin.css | 7 +- adm/sms_admin/_common.php | 1 + adm/sms_admin/config.php | 4 - adm/sms_admin/history_send.php | 209 ++++++++++---- adm/sms_admin/history_view.php | 2 + adm/sms_admin/sms_write.php | 38 ++- adm/sms_admin/sms_write_send.php | 218 ++++++++++----- extend/sms5.extend.php | 4 - lib/icode.lms.lib.php | 2 +- plugin/sms5/sms5.lib.php | 463 ++++++++++++++++++++----------- plugin/sms5/write.php | 3 + plugin/sms5/write_update.php | 8 + 12 files changed, 672 insertions(+), 287 deletions(-) diff --git a/adm/css/admin.css b/adm/css/admin.css index c7066ba54..feecc59d8 100644 --- a/adm/css/admin.css +++ b/adm/css/admin.css @@ -758,4 +758,9 @@ strong.sodr_nonpay {display:block;padding:5px 0;text-align:right} #grp_color li span{width:10px;height:10px; display:inline-block;background:rgb(75, 178, 197);margin-right:5px;} #grp_color li.color2 span{background:rgb(234, 162, 40);} #chart_wr h5{text-align:center;border:1px solid #eee;padding:30px 0} -#chart_wr{margin:20px } \ No newline at end of file +#chart_wr{margin:20px } + +/*전송실패 문자 재전송 내역*/ +.sms_table{padding:0 20px 40px;} +.sms_table table th{border:1px solid #ddd;padding:9px 0} +.sms_table table td{border:1px solid #ddd;text-align:center;width:16%;padding:9px 0} \ No newline at end of file diff --git a/adm/sms_admin/_common.php b/adm/sms_admin/_common.php index e44e58e4d..4afeddf37 100644 --- a/adm/sms_admin/_common.php +++ b/adm/sms_admin/_common.php @@ -2,6 +2,7 @@ define('G5_IS_ADMIN', true); include_once ('../../common.php'); include_once(G5_ADMIN_PATH.'/admin.lib.php'); +include_once(G5_SMS5_PATH.'/sms5.lib.php'); if (!strstr($_SERVER['SCRIPT_NAME'], 'install.php')) { if(!mysql_num_rows(mysql_query(" show tables like '{$g5['sms5_config_table']}' "))) diff --git a/adm/sms_admin/config.php b/adm/sms_admin/config.php index 858cfb313..0b532b447 100644 --- a/adm/sms_admin/config.php +++ b/adm/sms_admin/config.php @@ -86,10 +86,6 @@ if ($config['cf_sms_use'] == 'icode') { // 아이코드 사용 - - 건별 금액 - 원 - diff --git a/adm/sms_admin/history_send.php b/adm/sms_admin/history_send.php index 214815a6a..109dfcc41 100644 --- a/adm/sms_admin/history_send.php +++ b/adm/sms_admin/history_send.php @@ -39,7 +39,8 @@ if (!$res['cnt']) { $sql = sql_query("select * from {$g5['sms5_history_table']} where wr_no='$wr_no' $sql_renum $sql_flag"); while ($res = sql_fetch_array($sql)) { - $res['bk_hp'] = get_hp($res['bk_hp'], 0); + $res['bk_hp'] = get_hp($res['hs_hp'], 0); + $res['bk_name'] = $res['hs_name']; if ($g5['sms5_demo']) $res['bk_hp'] = '0100000000'; @@ -48,6 +49,7 @@ while ($res = sql_fetch_array($sql)) } $wr_total = count($list); +$reply = str_replace('-', '', trim($write['wr_reply'])); if ($config['cf_sms_use'] != 'icode') { alert('기본환경설정에서 icode sms 사용이 비활성화 되어 있습니다.'); @@ -55,79 +57,170 @@ if ($config['cf_sms_use'] != 'icode') { include_once(G5_ADMIN_PATH.'/admin.head.php'); $SMS = new SMS5; -$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']); -$reply = str_replace('-', '', trim($write['wr_reply'])); +if($config['cf_sms_type'] == 'LMS') { + $port_setting = get_icode_port_type($config['cf_icode_id'], $config['cf_icode_pw']); -$result = $SMS->Add($list, $reply, '', '', $write['wr_message'], '', $wr_total); - -if ($result) -{ - $result = $SMS->Send(); - - if ($result) //SMS 서버에 접속했습니다. - { - sql_query("insert into {$g5['sms5_write_table']} set wr_no='$wr_no', wr_renum='$new_wr_renum', wr_reply='".addslashes($write['wr_reply'])."', wr_message='".addslashes($write['wr_message'])."', wr_total='$wr_total', wr_datetime='".G5_TIME_YMDHIS."'"); + if($port_setting !== false) { + $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting); $wr_success = 0; $wr_failure = 0; $count = 0; - foreach ($SMS->Result as $result) - { - list($phone, $code) = explode(":", $result); + for($i=0; $i<$wr_total; $i++) { + $strDest = array(); + $strDest[] = $list[$i]['bk_hp']; + $strCallBack = $reply; + $strCaller = $config['cf_title']; + $strSubject = ''; + $strURL = ''; + $strData = $write['wr_message']; + if( !empty($list[$i]['bk_name']) ){ + $strData = str_replace("{이름}", $list[$i]['bk_name'], $strData); + } + $strDate = $booking; + $nCount = 1; - if (substr($code,0,5) == "Error") - { - $hs_code = substr($code,6,2); + $result = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount); - switch ($hs_code) { - case '02': // "02:형식오류" - $hs_memo = "형식이 잘못되어 전송이 실패하였습니다."; - break; - case '23': // "23:인증실패,데이터오류,전송날짜오류" - $hs_memo = "데이터를 다시 확인해 주시기바랍니다."; - break; - case '97': // "97:잔여코인부족" - $hs_memo = "잔여코인이 부족합니다."; - break; - case '98': // "98:사용기간만료" - $hs_memo = "사용기간이 만료되었습니다."; - break; - case '99': // "99:인증실패" - $hs_memo = "인증 받지 못하였습니다. 계정을 다시 확인해 주세요."; - break; - default: // "미 확인 오류" - $hs_memo = "알 수 없는 오류로 전송이 실패하었습니다."; - break; + if($result) { + $result = $SMS->Send(); + + if ($result) //SMS 서버에 접속했습니다. + { + foreach ($SMS->Result as $result) + { + list($phone, $code) = explode(":", $result); + + if (substr($code,0,5) == "Error") + { + $hs_code = substr($code,6,2); + + switch ($hs_code) { + case '02': // "02:형식오류" + $hs_memo = "형식이 잘못되어 전송이 실패하였습니다."; + break; + case '23': // "23:인증실패,데이터오류,전송날짜오류" + $hs_memo = "데이터를 다시 확인해 주시기바랍니다."; + break; + case '97': // "97:잔여코인부족" + $hs_memo = "잔여코인이 부족합니다."; + break; + case '98': // "98:사용기간만료" + $hs_memo = "사용기간이 만료되었습니다."; + break; + case '99': // "99:인증실패" + $hs_memo = "인증 받지 못하였습니다. 계정을 다시 확인해 주세요."; + break; + default: // "미 확인 오류" + $hs_memo = "알 수 없는 오류로 전송이 실패하였습니다."; + break; + } + $wr_failure++; + $hs_flag = 0; + } + else + { + $hs_code = $code; + $hs_memo = get_hp($phone, 1)."로 전송했습니다."; + $wr_success++; + $hs_flag = 1; + } + + $row = $list[$i]; + $row['bk_hp'] = get_hp($row['bk_hp'], 1); + + $log = array_shift($SMS->Log); + $log = @iconv('euc-kr', 'utf-8', $log); + + sql_query("insert into {$g5['sms5_history_table']} set wr_no='$wr_no', wr_renum='$new_wr_renum', bg_no='{$row['bg_no']}', mb_id='{$row['mb_id']}', bk_no='{$row['bk_no']}', hs_name='".addslashes($row['bk_name'])."', hs_hp='{$row['bk_hp']}', hs_datetime='".G5_TIME_YMDHIS."', hs_flag='$hs_flag', hs_code='$hs_code', hs_memo='".addslashes($hs_memo)."', hs_log='".addslashes($log)."'", false); + } + + $SMS->Init(); // 보관하고 있던 결과값을 지웁니다. } - $wr_failure++; - $hs_flag = 0; } - else - { - $hs_code = $code; - $hs_memo = get_hp($phone, 1)."로 전송했습니다."; - $wr_success++; - $hs_flag = 1; - } - - $row = array_shift($list); - $row['bk_hp'] = get_hp($row['bk_hp'], 1); - - $log = array_shift($SMS->Log); - $log = @iconv('euc-kr', 'utf-8', $log); - - sql_query("insert into {$g5['sms5_history_table']} set wr_no='$wr_no', wr_renum='$new_wr_renum', bg_no='{$row['bg_no']}', mb_id='{$row['mb_id']}', bk_no='{$row['bk_no']}', hs_name='{$row['hs_name']}', hs_hp='{$row['hs_hp']}', hs_datetime='".G5_TIME_YMDHIS."', hs_flag='$hs_flag', hs_code='$hs_code', hs_memo='".addslashes($hs_memo)."', hs_log='".addslashes($log)."'", false); } - $SMS->Init(); // 보관하고 있던 결과값을 지웁니다. - sql_query("update {$g5['sms5_write_table']} set wr_success='$wr_success', wr_failure='$wr_failure' where wr_no='$wr_no' and wr_renum='$new_wr_renum'"); + sql_query("insert into {$g5['sms5_write_table']} set wr_no='$wr_no', wr_renum='$new_wr_renum', wr_reply='".addslashes($write['wr_reply'])."', wr_message='".addslashes($write['wr_message'])."', wr_success='$wr_success', wr_failure='$wr_failure', wr_total='$wr_total', wr_datetime='".G5_TIME_YMDHIS."'"); + sql_query("update {$g5['sms5_write_table']} set wr_re_total=wr_re_total+1 where wr_no='$wr_no' and wr_renum=0"); } - else alert("에러: SMS 서버와 통신이 불안정합니다."); +} else { + $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']); + + $reply = str_replace('-', '', trim($write['wr_reply'])); + + $result = $SMS->Add($list, $reply, '', '', $write['wr_message'], '', $wr_total); + + if ($result) + { + $result = $SMS->Send(); + + if ($result) //SMS 서버에 접속했습니다. + { + sql_query("insert into {$g5['sms5_write_table']} set wr_no='$wr_no', wr_renum='$new_wr_renum', wr_reply='".addslashes($write['wr_reply'])."', wr_message='".addslashes($write['wr_message'])."', wr_total='$wr_total', wr_datetime='".G5_TIME_YMDHIS."'"); + + $wr_success = 0; + $wr_failure = 0; + $count = 0; + + foreach ($SMS->Result as $result) + { + list($phone, $code) = explode(":", $result); + + if (substr($code,0,5) == "Error") + { + $hs_code = substr($code,6,2); + + switch ($hs_code) { + case '02': // "02:형식오류" + $hs_memo = "형식이 잘못되어 전송이 실패하였습니다."; + break; + case '23': // "23:인증실패,데이터오류,전송날짜오류" + $hs_memo = "데이터를 다시 확인해 주시기바랍니다."; + break; + case '97': // "97:잔여코인부족" + $hs_memo = "잔여코인이 부족합니다."; + break; + case '98': // "98:사용기간만료" + $hs_memo = "사용기간이 만료되었습니다."; + break; + case '99': // "99:인증실패" + $hs_memo = "인증 받지 못하였습니다. 계정을 다시 확인해 주세요."; + break; + default: // "미 확인 오류" + $hs_memo = "알 수 없는 오류로 전송이 실패하었습니다."; + break; + } + $wr_failure++; + $hs_flag = 0; + } + else + { + $hs_code = $code; + $hs_memo = get_hp($phone, 1)."로 전송했습니다."; + $wr_success++; + $hs_flag = 1; + } + + $row = array_shift($list); + $row['bk_hp'] = get_hp($row['bk_hp'], 1); + + $log = array_shift($SMS->Log); + $log = @iconv('euc-kr', 'utf-8', $log); + + sql_query("insert into {$g5['sms5_history_table']} set wr_no='$wr_no', wr_renum='$new_wr_renum', bg_no='{$row['bg_no']}', mb_id='{$row['mb_id']}', bk_no='{$row['bk_no']}', hs_name='{$row['hs_name']}', hs_hp='{$row['hs_hp']}', hs_datetime='".G5_TIME_YMDHIS."', hs_flag='$hs_flag', hs_code='$hs_code', hs_memo='".addslashes($hs_memo)."', hs_log='".addslashes($log)."'", false); + } + $SMS->Init(); // 보관하고 있던 결과값을 지웁니다. + + sql_query("update {$g5['sms5_write_table']} set wr_success='$wr_success', wr_failure='$wr_failure' where wr_no='$wr_no' and wr_renum='$new_wr_renum'"); + sql_query("update {$g5['sms5_write_table']} set wr_re_total=wr_re_total+1 where wr_no='$wr_no' and wr_renum=0"); + } + else alert("에러: SMS 서버와 통신이 불안정합니다."); + } + else alert("에러: SMS 데이터 입력도중 에러가 발생하였습니다."); } -else alert("에러: SMS 데이터 입력도중 에러가 발생하였습니다."); ?>