테스트 사이트 - 개발 중인 베타 버전입니다

아이코드(Icode) LMS(SMS)발송샘플

· 1년 전 · 1189 · 6

https://github.com/gnuboard/youngcart5/blob/master/lib/icode.lms.lib.php

2째줄 if (!defined('_GNUBOARD_')) exit; 제외하고 그대로 가져와서 파일로 생성해도 무방합니다.

그리고 샘플코드입니다. 눈으로만 검수했습니다. 디버깅이 필요 할 수 있어요.

[code]

<?php

$config['cf_icode_token_key'] = '';//아이코드 토큰

$config['icode_server_ip'] = $_SERVER['SERVER_ADDR'];//서버IP

$config['icode_id'] = '';//아이코드ID

$config['icode_pw'] = '';//아이코드PW

//상수추가 

define('ICODE_JSON_SOCKET_HOST', '211.172.232.124');
define('ICODE_JSON_SOCKET_PORT', '9201');

define('G5_ICODE_LMS_MAX_LENGTH', 1500);    // 구버전 LMS 최대길이
define('G5_ICODE_JSON_MAX_LENGTH', 2000);   // JSON 버전 LMS 최대길이

 

include_once('./icode.lms.lib.php');//라이브러리 위치로 변경 사용

if (!function_exists("get_icode_userinfo")) {

    function get_icode_userinfo($id, $pass)

    {

        $res = get_sock('http://www.icodekorea.com/res/userinfo.php?userid='.$id.'&userpw='.$pass, 2);

        $res = explode(';', $res);

        $userinfo = array(

            'code'      => $res[0], // 결과코드

            'coin'      => $res[1], // 고객 잔액 (충전제만 해당)

            'gpay'      => $res[2], // 고객의 건수 별 차감액 표시 (충전제만 해당)

            'payment'   => $res[3]  // 요금제 표시, A:충전제, C:정액제

        );

 

        return $userinfo;

    }

}

if (!function_exists("get_sock")) {

    function get_sock($url, $timeout=30)

    {

        // host 와 uri 를 분리

        //if (ereg("http://([a-zA-Z0-9_\-\.]+)([^<]*)", $url, $res))

        if (preg_match("/http:\/\/([a-zA-Z0-9_\-\.]+)([^<]*)/", $url, $res))

        {

            $host = $res[1];

            $get  = $res[2];

        }

       

        $header = '';

 

        // 80번 포트로 소캣접속 시도

        $fp = fsockopen ($host, 80, $errno, $errstr, $timeout);

        if (!$fp)

        {

            //die("$errstr ($errno)\n");

 

            echo "$errstr ($errno)\n";

            return null;

        }

        else

        {

            fputs($fp, "GET $get HTTP/1.0\r\n");

            fputs($fp, "Host: $host\r\n");

            fputs($fp, "\r\n");

 

            // header 와 content 를 분리한다.

            while (trim($buffer = fgets($fp,1024)) != "")

            {

                $header .= $buffer;

            }

            while (!feof($fp))

            {

                $buffer .= fgets($fp,1024);

            }

        }

        fclose($fp);

 

        // content 만 return 한다.

        return $buffer;

    }

}




 

$send_name = '발송인';//발송인명

$send_phone_number = '021113333';//발송번호

$recv_phone_number = '01000000000';//받는사람핸드폰

$SMS_CONTENTS = '내용';//발송컨텐츠

 

$port_setting = get_icode_port_type($config['icode_id'], $config['icode_pw']);

 

if($port_setting !== false) {

   

$SMS = new LMS;

    $SMS->SMS_con($config['icode_server_ip'], $config['icode_id'], $config['icode_pw'], $port_setting);

                           

    $strDest     = array();

    $strDest[]   = $recv_phone_number;

    $strCallBack = $send_phone_number;

    //$strCaller   = iconv_euckr(trim($send_name));

    $strCaller   = iconv('utf-8', 'euc-kr', trim($send_name));

    $strSubject  = '';

    $strURL      = '';

    //$strData     = iconv_euckr($SMS_CONTENTS);

    $strData     = iconv('utf-8', 'euc-kr', $SMS_CONTENTS);

    $strDate     = '';

    $nCount      = count($strDest);

    $res = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);

    $SMS->Send();

    $rst = $SMS->Result;//발송결과값

    $SMS->Init();

}


 

[/code]

댓글 작성

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

로그인하기

댓글 6개

1년 전

팁 주셔서 감사합니다.

알려줘도 질문거리가 생기네요..

icode_server_ip 는 본인 서버의 주소인가요?

샘플에는 토큰키 넣는곳이 없는데 토큰없이 사용할수 있는건지요

일단 알려주신데로 해보면 에러가 납니다.

Fatal error: Uncaught Error: Call to undefined function get_icode_userinfo()

@타버린나무 코드 변경하여 올려드렸습니다.

1년 전

@RYANRYAN 

 

혹시 라이언님은 동작 하시나요?

떠먹여 주시는데 못받아먹어서 너무 죄송하네요.

 

sms.php만들어 올려주신 코드에 토큰 생성해서 입력하고 나머지도 내용에 맞게 입력했는데 에러가 발생하네요.

그누보드 없이 정규식으로만 코딩하는게 얼마나 힘든지 체험중입니다.

참고로 icode.lms.lib.php는 같은 폴더에 존재하고 현재 그누보드를 이용해서는 토큰없이 잘 사용하고 있습니다.


 

@타버린나무 

혹 오류 있으면 다시 말씀주세요.

댓글보니 상수가 필요하여 해당부분 위 코드에 추가하였습니다.

상단부분에

//상수추가

로 올려놓았습니다.

1년 전

@RYANRYAN 

감사합니다.

게시글 목록

번호 제목
22896
22895
22885
22875
22872
22862
22860
22855
22849
22846
22824
22812
22809
22801
22795
22786
22765
22756
22739
22735
22685
22639
22636
22607
22605
22603
22592
22583
22578
22577