PHP

[G5] 게시판 글작성후 SMS5 (디딤365) 연동해서 문자 발송

creat1ve 2019. 11. 19. 13:30
반응형

디딤365의 문자발송 시스템을 이용해서 게시글 작성시 문자가 발송하는 방법입니다.
게시판 스킨에 아래 내용을 추가하고 환경설정 수정하면 문자 발송이 가능합니다.


board / skin / basic / write_update.skin.php  파일을 생성후 아래와 같이 저장합니다.

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가


if ($w == '' && $bo_table=="게시판") {
    //----------------------------------------------------------
    // SMS 문자전송 시작
    //----------------------------------------------------------
    
    // 환경설정 시작
    $sms_admin = "";  // 보내는사람 연락처
    $sms_user  = $wr_1;  // 받는 사람 연락처
    
    $sms_send_admin = "Y"; // 관리자 > 관리자에게 sms 발송  Y: 보내기 / N: 안보내기
    $sms_send_user1 = "N"; // 신청자 > 관리자에게 sms 발송  Y: 보내기 / N: 안보내기
    $sms_send_user2 = "Y"; // 관리자 > 신청자에게 sms 발송  Y: 보내기 / N: 안보내기
    
    $guest_no  = "";  // 디딤365 SMS 계정번호
    $guest_key = "";  // 디딤365 SMS 계정인증키
    
    // 다운로드: http://snoopy.sourceforge.net/ 에서 다운로드후  lib 폴더에 업로드
    include_once G5_LIB_PATH."/Snoopy.class.php";
    // 환경설정 끝
    
    include_once G5_PLUGIN_PATH."/sms5/sms5.lib.php";
    if ( ! function_exists('get_hp')) {
        function get_hp($hp, $hyphen=1)
        {
            global $g5;
    
            if (!is_hp($hp)) return '';
    
            if ($hyphen) $preg = "$1-$2-$3"; else $preg = "$1$2$3";
    
            $hp = str_replace('-', '', trim($hp));
            $hp = preg_replace("/^(01[016789])([0-9]{3,4})([0-9]{4})$/", $preg, $hp);
    
            if ($g5['sms5_demo'])
                $hp = '0100000000';
    
            return $hp;
        }
    }
    
    
    if ($sms_send_admin == "Y") {
        // 관리자 > 관리자에게 sms 발송
        $snoopy = new Snoopy;
        $stran_msg2 = G5_BBS_URL."/board.php?bo_table={$bo_table}&wr_id={$wr_id} T. {$sms_user} ";  // 문자내용
        $tran_phone2 = urlencode($sms_admin); // 받는사람 번호
        $tran_callback2 = urlencode($sms_admin); // 보내는사람 번호
        //$tran_date = urlencode(iconv('EUC-KR', 'UTF-8', $tran_date)); // 예약전송 일시(생략시 즉시전송)
        //$stran_msg2 = urlencode(iconv('EUC-KR', 'UTF-8', $stran_msg2));  // euc-kr 일때만
        $tran_msg2 = urlencode($stran_msg2); //전송 메시지
        $cmd = "SendSms";
        $method = "GET";
        $url = "http://www.nesolution.com/service/sms.aspx?cmd={$cmd}";
        $url = $url."&method={$method}&guest_no={$guest_no}&guest_key={$guest_key}";
        $url = $url."&tran_phone={$tran_phone2}&tran_callback={$tran_callback2}";
        $url = $url."&tran_date={$tran_date2}&tran_msg={$tran_msg2}";
        $snoopy->fetchtext($url);
        $send_result = $snoopy->results;
        
        
        if ($send_result=="OK")
        {
            $recv_number = $sms_admin; // 발신자 전화번호
            $wr_reply    = $sms_user; // 발신자 전화번호
            $wr_message  = $stran_msg2;
            $wr_booking  = ""; // 예약전송
            $wr_total    = "1";
            
            $row = sql_fetch("select max(wr_no) as wr_no from {$g5['sms5_write_table']}");
            if ($row)
                $wr_no = $row['wr_no'] + 1;
            else
                $wr_no = 1;
    
            sql_query("insert into {$g5['sms5_write_table']} set wr_no='{$wr_no}', wr_renum=0, wr_reply='{$wr_reply}', wr_message='{$wr_message}', wr_booking='{$wr_booking}', wr_total='{$wr_total}', wr_datetime='".G5_TIME_YMDHIS."'");
    
            $wr_success = 0;
            $wr_failure = 0;
            $count      = 0;
                
            list($phone, $code) = explode(":", $result);
    
            $hs_code = $send_result;
            $hs_memo = get_hp($recv_number, 1)."로 전송했습니다.";
            $wr_success++;
            $hs_flag = 1;
    
            $row = array_shift($list);
            $row['bk_hp'] = get_hp($row['bk_hp'], 1);
    
            $log = array_shift($SMS->Log);
    
            sql_query("insert into {$g5['sms5_history_table']} set wr_no='{$wr_no}', wr_renum=0, bg_no='1', mb_id='{$row['mb_id']}', bk_no='1', hs_name='".addslashes($row['bk_name'])."', hs_hp='{$wr_reply}', hs_datetime='".G5_TIME_YMDHIS."', hs_flag='{$hs_flag}', hs_code='{$hs_code}', hs_memo='".addslashes($hs_memo)."', hs_log='".addslashes($log)."'");
            
            sql_query("update {$g5['sms5_write_table']} set wr_success='{$wr_success}', wr_failure='{$wr_failure}', wr_memo='{$str_serialize}' where wr_no='{$wr_no}' and wr_renum=0");
        }
    }



    if ($sms_send_user1 == "Y") {
        // 신청자 > 관리자에게 sms 발송
        $snoopy = new Snoopy;
        $stran_msg2 = "글등록 ".G5_BBS_URL."/board.php?bo_table={$bo_table}&wr_id={$wr_id}";  // 문자내용
        $tran_phone2 = urlencode($sms_admin); // 받는사람 번호
        $tran_callback2 = urlencode($sms_user); // 보내는사람 번호
        //$tran_date = urlencode(iconv('EUC-KR', 'UTF-8', $tran_date)); // 예약전송 일시(생략시 즉시전송)
        //$stran_msg2 = urlencode(iconv('EUC-KR', 'UTF-8', $stran_msg2));  // euc-kr 일때만
        $tran_msg2 = urlencode($stran_msg2); //전송 메시지
        $cmd = "SendSms";
        $method = "GET";
        $url = "http://www.nesolution.com/service/sms.aspx?cmd={$cmd}";
        $url = $url."&method={$method}&guest_no={$guest_no}&guest_key={$guest_key}";
        $url = $url."&tran_phone={$tran_phone2}&tran_callback={$tran_callback2}";
        $url = $url."&tran_date={$tran_date2}&tran_msg={$tran_msg2}";
        $snoopy->fetchtext($url);
        $send_result = $snoopy->results;
    }
    
    
    if ($sms_send_user2 == "Y") {
        // 관리자 > 신청자에게 sms 발송
        if ($wr_1) {
            $snoopy = new Snoopy;
            $stran_msg2 = G5_URL." 문의감사합니다. 빠른시간안에 연락드리겠습니다" ;  // 문자내용
            $tran_phone2 = urlencode($sms_user); // 받는사람 번호
            $tran_callback2 = urlencode($sms_admin); // 보내는사람번호
            //$tran_date = urlencode(iconv('EUC-KR', 'UTF-8', $tran_date)); // 예약전송 일시(생략시 즉시전송)
            //$stran_msg2 = urlencode(iconv('EUC-KR', 'UTF-8', $stran_msg2));  // euc-kr 일때만
            $tran_msg2 = urlencode($stran_msg2); //전송 메시지
            $cmd = "SendSms";
            $method = "GET";
            $url = "http://www.nesolution.com/service/sms.aspx?cmd={$cmd}";
            $url = $url."&method={$method}&guest_no={$guest_no}&guest_key={$guest_key}";
            $url = $url."&tran_phone={$tran_phone2}&tran_callback={$tran_callback2}";
            $url = $url."&tran_date={$tran_date2}&tran_msg={$tran_msg2}";
            $snoopy->fetchtext($url);
            $send_result = $snoopy->results;
        }
    }
    
    //echo $url."<br>";
    //echo "send_result = ".$send_result."<br>";
    //----------------------------------------------------------
    // SMS 문자전송 끝
    //----------------------------------------------------------
}

?>

 

반응형