상품구매시 문자 관련 질문입니다.

상품구매시 문자 관련 질문입니다.

QA

상품구매시 문자 관련 질문입니다.

답변 2

본문

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;
}

 

참고 바랍니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 95
© SIRSOFT
현재 페이지 제일 처음으로