상품구매시 문자 관련 질문입니다.
본문
5.2.6 버전에서 상품구매시 문자를 보내려고 하는데 문자가 발신 자체가 되지 않습니다.
orderformupdate.php 를 확인해보니 is_sms_send가 없어서 아예 실행이 안되는데 is_sms_send가 어디서 선언된 함수인가요?
<code>
// SMS BEGIN --------------------------------------------------------
// 주문고객과 쇼핑몰관리자에게 SMS 전송
if($config['cf_sms_use'] && ($default['de_sms_use2'] || $default['de_sms_use3'])) {
$is_sms_send = (function_exists('is_sms_send')) ? is_sms_send('orderformupdate') : false;
if($is_sms_send) {
$sms_contents = array($default['de_sms_cont2'], $default['de_sms_cont3']);
$recv_numbers = array($od_hp, $default['de_sms_hp']);
$send_numbers = array($default['de_admin_company_tel'], $default['de_admin_company_tel']);
$sms_count = 0;
$sms_messages = array();
for($s=0; $s<count($sms_contents); $s++) {
$sms_content = $sms_contents[$s];
$recv_number = preg_replace("/[^0-9]/", "", $recv_numbers[$s]);
$send_number = preg_replace("/[^0-9]/", "", $send_numbers[$s]);
$sms_content = str_replace("{이름}", $od_name, $sms_content);
$sms_content = str_replace("{보낸분}", $od_name, $sms_content);
$sms_content = str_replace("{받는분}", $od_b_name, $sms_content);
$sms_content = str_replace("{주문번호}", $od_id, $sms_content);
$sms_content = str_replace("{주문금액}", number_format($tot_ct_price + $od_send_cost + $od_send_cost2), $sms_content);
$sms_content = str_replace("{회원아이디}", $member['mb_id'], $sms_content);
$sms_content = str_replace("{회사명}", $default['de_admin_company_name'], $sms_content);
$idx = 'de_sms_use'.($s + 2);
if($default[$idx] && $recv_number) {
$sms_messages[] = array('recv' => $recv_number, 'send' => $send_number, 'cont' => $sms_content);
$sms_count++;
}
}
// 무통장 입금 때 고객에게 계좌정보 보냄
if($od_settle_case == '무통장' && $default['de_sms_use2'] && $od_misu > 0) {
$sms_content = $od_name."님의 입금계좌입니다.\n금액:".number_format($od_misu)."원\n계좌:".$od_bank_account."\n".$default['de_admin_company_name'];
$recv_number = preg_replace("/[^0-9]/", "", $od_hp);
$send_number = preg_replace("/[^0-9]/", "", $default['de_admin_company_tel']);
$sms_messages[] = array('recv' => $recv_number, 'send' => $send_number, 'cont' => $sms_content);
$sms_count++;
}
// SMS 전송
if($sms_count > 0) {
if($config['cf_sms_type'] == 'LMS') {
include_once(G5_LIB_PATH.'/icode.lms.lib.php');
print_r2('11111111');
exit;
$port_setting = get_icode_port_type($config['cf_icode_id'], $config['cf_icode_pw']);
print_r2($port_setting);
exit;
// SMS 모듈 클래스 생성
if($port_setting !== false) {
$SMS = new LMS;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);
$print_r2($SMS.'lms');
for($s=0; $s<count($sms_messages); $s++) {
$strDest = array();
$strDest[] = $sms_messages[$s]['recv'];
$strCallBack = $sms_messages[$s]['send'];
$strCaller = iconv_euckr(trim($default['de_admin_company_name']));
$strSubject = '';
$strURL = '';
$strData = iconv_euckr($sms_messages[$s]['cont']);
$strDate = '';
$nCount = count($strDest);
$res = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);
$SMS->Send();
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
}
}
} else {
include_once(G5_LIB_PATH.'/icode.sms.lib.php');
$SMS = new SMS; // SMS 연결
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
print_r2($SMS.'sms');
exit;
for($s=0; $s<count($sms_messages); $s++) {
$recv_number = $sms_messages[$s]['recv'];
$send_number = $sms_messages[$s]['send'];
$sms_content = iconv_euckr($sms_messages[$s]['cont']);
$SMS->Add($recv_number, $send_number, $config['cf_icode_id'], $sms_content, "");
}
$SMS->Send();
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
}
}
}
}
</code>
답변 2
https://github.com/gnuboard/gnuboard5/blob/master/lib/common.lib.php#L3936
5.2.6 버전 에는 없는것 같고
5.4.2.4 버전 부터 추가된것 같습니다.
https://github.com/gnuboard/gnuboard5/blob/5.4.2.4/lib/common.lib.php#L3626
$is_sms_send = (function_exists('is_sms_send')) ? is_sms_send('orderformupdate') : false;
/lib/common.lib.php 에보시면
해당 함수로 정의되어있습니다.
function is_sms_send($is_type=''){
global $config;
$is_sms_send = false;
// 토큰키를 사용한다면
if(isset($config['cf_icode_token_key']) && $config['cf_icode_token_key']){
$is_sms_send = true;
} else if($config['cf_icode_id'] && $config['cf_icode_pw']) {
// 충전식일 경우 잔액이 있는지 체크
$userinfo = get_icode_userinfo($config['cf_icode_id'], $config['cf_icode_pw']);
if($userinfo['code'] == 0) {
if($userinfo['payment'] == 'C') { // 정액제
$is_sms_send = true;
} else {
$minimum_coin = 100;
if(defined('G5_ICODE_COIN'))
$minimum_coin = intval(G5_ICODE_COIN);
if((int)$userinfo['coin'] >= $minimum_coin)
$is_sms_send = true;
}
}
}
return $is_sms_send;
}
참고 바랍니다.
!-->