2026, 새로운 도약을 시작합니다.

카폐24 문자 보내기 채택완료

1년 전 조회 2,270

카페24 sms api 를 이용해 문자를 보내려고 합니다. 

write_update_skin.php 에 함수를 넣어서

글이 작성되면 알림문자가 되게 하려고 합니다. 

일단 아래와 같이 작성하였고

Copy


아래는 cafe24 참고 소스입니다.
Copy


//입력폽

    

    

        sms - php 

        

            function setPhoneNumber(val){

                var numList = val.split("-");

                document.smsForm.sphone1.value=numList[0];

                document.smsForm.sphone2.value=numList[1];

                if(numList[2] != undefined){

                    document.smsForm.sphone3.value=numList[2];

                }

            }

            function loadJSON(){

                var data_file = "/calljson.php";

                var http_request = new XMLHttpRequest();

                try{

                    // Opera 8.0+, Firefox, Chrome, Safari

                    http_request = new XMLHttpRequest();

                }catch (e){

                    // Internet Explorer Browsers

                    try{

                        http_request = new ActiveXObject("Msxml2.XMLHTTP");

                    }catch (e) {

                        try{

                            http_request = new ActiveXObject("Microsoft.XMLHTTP");

                        }catch (e){

                            // Eror

                            alert("지원하지 않는브라우저!");

                            return false;

                        }

                    }

                }

                http_request.onreadystatechange = function(){

                    if (http_request.readyState == 4  ){

                        // Javascript function JSON.parse to parse JSON data

                        var jsonObj = JSON.parse(http_request.responseText);

                        if(jsonObj['result'] == "Success"){

                            var aList = jsonObj['list'];

                            var selectHtml = "";

                            selectHtml += "발신번호를 선택해주세요";

                            for(var i=0; i  aList.length; i++){

                                selectHtml += "";

                                selectHtml += aList[i];

                                selectHtml += "";

                            }

                            selectHtml += "";

                            document.getElementById("sendPhoneList").innerHTML = selectHtml;

                        }

                    }

                }

                http_request.open("GET", data_file, true);

                http_request.send();

            }

        

    

    

    

        

        발송타입 단문(SMS)장문(LMS) 


        제목 :  장문(LMS)인 경우(한글30자이내)


        전송메세지 내용입력

        

단문(SMS) : 최대 90byte까지 전송할 수 있으며, 잔여건수 1건이 차감됩니다. 


            장문(LMS) : 한번에 최대 2,000byte까지 전송할 수 있으며 1회 발송당 잔여건수 3건이 차감됩니다.

        

        
받는 번호  예) 011-011-111 , '-' 포함해서 입력.

        
이름삽입번호  예) 010-000-0000|홍길동

        


        보내는 번호  

        

        

        

        
예약 날짜  예)20090909

        
예약 시간  예)173000 ,오후 5시 30분,예약시간은 최소 10분 이상으로 설정.

        
return url 

        
 test flag  예) 테스트시: Y

        
nointeractive  예) 사용할 경우 : 1, 성공시 대화상자(alert)를 생략.

        
반복설정 

        
 반복횟수 

            1

            2

            3

         예) 1~10회 가능.

        
전송간격 예)15분 이상부터 가능.

            15

            20

            25

        분마다

        


        

        
이통사 정책에 따라 발신번호와 수신번호가 같은 경우 발송되지 않습니다.

    

    

    

Copy


    if($_POST['action']=='go'){

       /******************** 인증정보 ********************/

        $sms_url = "https://sslsms.cafe24.com/sms_sender.php"; // HTTPS 전송요청 URL

        // $sms_url = "http://sslsms.cafe24.com/sms_sender.php"; // 전송요청 URL

        $sms['user_id'] = base64_encode("bareunsms"); //SMS 아이디.

        $sms['secure'] = base64_encode("인증후 사용하세요") ;//인증키

        $sms['msg'] = base64_encode(stripslashes($_POST['msg']));

        if( $_POST['smsType'] == "L"){

              $sms['subject'] =  base64_encode($_POST['subject']);

        }

        $sms['rphone'] = base64_encode($_POST['rphone']);

        $sms['sphone1'] = base64_encode($_POST['sphone1']);

        $sms['sphone2'] = base64_encode($_POST['sphone2']);

        $sms['sphone3'] = base64_encode($_POST['sphone3']);

        $sms['rdate'] = base64_encode($_POST['rdate']);

        $sms['rtime'] = base64_encode($_POST['rtime']);

        $sms['mode'] = base64_encode("1"); // base64 사용시 반드시 모드값을 1로 주셔야 합니다.

        $sms['returnurl'] = base64_encode($_POST['returnurl']);

        $sms['testflag'] = base64_encode($_POST['testflag']);

        $sms['destination'] = strtr(base64_encode($_POST['destination']), '+/=', '-,');

        $returnurl = $_POST['returnurl'];

        $sms['repeatFlag'] = base64_encode($_POST['repeatFlag']);

        $sms['repeatNum'] = base64_encode($_POST['repeatNum']);

        $sms['repeatTime'] = base64_encode($_POST['repeatTime']);

        $sms['smsType'] = base64_encode($_POST['smsType']); // LMS일경우 L

        $nointeractive = $_POST['nointeractive']; //사용할 경우 : 1, 성공시 대화상자(alert)를 생략

        $host_info = explode("/", $sms_url);

        $host = $host_info[2];

        $path = $host_info[3]."/".$host_info[4];

        srand((double)microtime()*1000000);

        $boundary = "---------------------".substr(md5(rand(0,32000)),0,10);

        //print_r($sms);

        // 헤더 생성

        $header = "POST /".$path ." HTTP/1.0\r\n";

        $header .= "Host: ".$host."\r\n";

        $header .= "Content-type: multipart/form-data, boundary=".$boundary."\r\n";

        // 본문 생성

        foreach($sms AS $index => $value){

            $data .="--$boundary\r\n";

            $data .= "Content-Disposition: form-data; name=\"".$index."\"\r\n";

            $data .= "\r\n".$value."\r\n";

            $data .="--$boundary\r\n";

        }

        $header .= "Content-length: " . strlen($data) . "\r\n\r\n";

        $fp = fsockopen($host, 80);

        if ($fp) {

            fputs($fp, $header.$data);

            $rsp = '';

            while(!feof($fp)) {

                $rsp .= fgets($fp,8192);

            }

            fclose($fp);

            $msg = explode("\r\n\r\n",trim($rsp));

            $rMsg = explode(",", $msg[1]);

            $Result= $rMsg[0]; //발송결과

            $Count= $rMsg[1]; //잔여건수

            //발송결과 알림

            if($Result=="success") {

                $alert = "성공";

                $alert .= " 잔여건수는 ".$Count."건 입니다.";

            }

            else if($Result=="reserved") {

                $alert = "성공적으로 예약되었습니다.";

                $alert .= " 잔여건수는 ".$Count."건 입니다.";

            }

            else if($Result=="3205") {

                $alert = "잘못된 번호형식입니다.";

            }

            else if($Result=="0044") {

                $alert = "스팸문자는발송되지 않습니다.";

            }

            else {

                $alert = "[Error]".$Result;

            }

        }

        else {

            $alert = "Connection Failed";

        }

         if($nointeractive=="1" && ($Result!="success" && $Result!="Test Success!" && $Result!="reserved") ) {

            echo "alert('".$alert ."')";

        }

        else if($nointeractive!="1") {

            echo "alert('".$alert ."')";

        }

        echo "location.href='".$returnurl."';";

    }

            

Copy


    $oCurl = curl_init();

    $url =  "https://sslsms.cafe24.com/smsSenderPhone.php";

    $aPostData['userId'] = "bareunsms"; // SMS 아이디

    $aPostData['passwd'] = "인증후 사용하세요"; // 인증키

    curl_setopt($oCurl, CURLOPT_URL, $url);

    curl_setopt($oCurl, CURLOPT_POST, 1);

    curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($oCurl, CURLOPT_POSTFIELDS, $aPostData);

    curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, 0);

    $ret = curl_exec($oCurl);

    echo $ret;

    curl_close($oCurl);

            

예제소스를 넣으니 소스가 기네요. 조언 부탁드립니다.

답변 1개

예를 들어, write_update_skin.php 파일에 글이 작성되는 부분에 알림 문자를 보내는 코드를 추가하면, 글이 작성될 때마다 알림 문자가 전송되지 않을까 생각합니다.

예를 들어 아래와 같이 하면 되지 않을까요?

Copy


// 글이 작성되는 부분

// 여기서 알림 문자를 보내고 싶다면

$message = "새로운 글이 작성되었습니다."; // 보낼 메시지 설정

sendSMS($message); // 알림 문자 보내기
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고