웹사이트에서 문자전송서비스와 연동하면 인증문자, 결제알림 문자 등을 보낼 수 있습니다.
연동방식은 업체별로 조금씩 다를 수 있구요.
일단 웹사이트가 있고, DB가 있을때 가장 쉽게 연동하는 방법은 DB를 이용한 연동방식이겠죠.
윈도우 서버냐 리눅스 서버냐 또는 ASP/PHP/JSP/JAVA 등 어떻게 개발된 사이트냐에 따라 연동방법이 달라지면 복잡할 수 있어요.
이미 웹사이트가 만들어져 있는 상태라면 그냥 DB에 삽입하는것 만으로 문자가 전송된다면 가장 간단하겠죠.
물론.. DB에 저장된 데이터를 문자전송업체로 전달하는 역할을 하는 프로그램이 중간에 있어야하지만..
이건 해당업체에서 다들 배포해주니 매뉴얼에 따라 설치하고 실행만 해주면 어렵지 않습니다.
대량문자연동에는 DB연동방식이 가장 안정적입니다.
쏜다넷 > 연동형서비스 > XDB 모듈을 다운받으면 매뉴얼과 설치파일이 첨부돼있구요.
딱히 설치랄것도 없고 설정파일(xdb.conf) 에 쏜다넷계정 정보와, 내DB접속 정보를 설정하고 프로그램 실행하면 보내기 준비 끝!!
설치된 프로그램이 실행되면 자동으로 전송에 필요한 테이블이 생성되어 있을겁니다.
이제 중요한건 DB에 전송할 메세지 내용을 삽입만 하면됩니다.
MS-SQL 기준으로 설명합니다.
-- 단문 (즉시전송) INSERT INTO MSG_DATA(CUR_STATE, REQ_DATE, CALL_TO, CALL_FROM, SMS_TXT, MSG_TYPE) VALUES(0, GETDATE(), '0101234567', '021234567', 'Test SMS입니다', 4); -- 단문 (예약전송) INSERT INTO MSG_DATA(CUR_STATE, REQ_DATE, CALL_TO, CALL_FROM, SMS_TXT, MSG_TYPE) VALUES(0, '2017-01-01 14:00:00', '0101234567', '021234567', '예약 SMS입니다', 4);
CUR_STATE 값은 처리상태를 나타내며 전송대기(0) → 전송중(1) → 수신대기(2) → 결과수신(3) 과 같이 변합니다.
전송대기(0)로 삽입해야 프로그램이 읽어서 쏜다넷 게이트웨이로 던집니다.
REQ_DATE 값은 전송할 시간입니다. 즉시전송할 땐 현재시간을, 원하는 시간을 예약하려면 해당 일시를 입력합니다.
CALL_TO 값은 받는사람 휴대폰번호입니다. 010,011,016,017,018,019 등으로 시작하는 번호겠죠.
CALL_FROM 값은 보내는사람 전화번호(이하 발신번호)입니다. 옛날엔 발신번호를 없이 보내거나 '0000', '1004' 등 원하는 번호를 마음대로 사용할 수 있었는데..
스미싱문자가 기승을 부리고 스팸이 하도 문제가 되다보니 작년부터 "발신번호 사전등록제"가 시행되어 아무번호나 마구 입력하시면 안됩니다.
SMS_TXT 값은 단문 전송할때 사용하는 컬럼이며, 메세지 내용을 저장합니다. (최대 90바이트)
임의로 컬럼의 사이즈를 늘리셔도 소용없어요^^;
90바이트를 최대한 알뜰히 쓰시려면 2바이트를 차지하는 엔터를 사용하지 않거나, 엔터를 1바이트로 줄이는 것도 팁입니다.
(CR 은 필요 없습니다. LF만 있으면 개행돼요)
MSG_TYPE 값은 단문을 의미하는 코드 '4'로 고정입니다. (장문/멀티는 '6')
-- 장문 (FILE_CNT = 0) INSERT INTO MMS_CONTENTS_INFO(FILE_CNT, MMS_SUBJECT, MMS_BODY)VALUES(0, 'LMS 제목' , 'LMS 내용'); INSERT INTO MSG_DATA(CUR_STATE, REQ_DATE, CALL_TO, CALL_FROM, SMS_TXT, MSG_TYPE, CONT_SEQ) VALUES(0, GETDATE(), '0101234567', '021234567', '', 6, @@IDENTITY);
장문과 멀티는 MSG_TYPE 값이 '6'이구요. 장문의 메세지와 첨부이미지는 별도의 테이블에 저장해놓고 참조합니다.
장문일때 FILE_CNT 는 0 으로 입력하시면 되구요.
MMS_SUBJECT 에 제목을, MMS_BODY 에 내용을 입력합니다. SMS_TXT 값은 의미 없습니다.
CONT_SEQ 값 필수!!
-- 멀티 / 이미지만 (FILE_CNT = 1) INSERT INTO MMS_CONTENTS_INFO(FILE_CNT, MMS_SUBJECT, MMS_BODY, FILE_TYPE1, FILE_NAME1, SERVICE_DEP1 )VALUES(1, 'MMS 제목' , '', 'IMG', 'C:/XDB2/attach/01.jpg', 'ALL'); INSERT INTO MSG_DATA(CUR_STATE, REQ_DATE, CALL_TO, CALL_FROM, SMS_TXT, MSG_TYPE, CONT_SEQ) VALUES(0, GETDATE(), '0101234567', '021234567', '', 6, @@IDENTITY); -- 멀티 / 텍스트+이미지 (FILE_CNT = 2) INSERT INTO MMS_CONTENTS_INFO(FILE_CNT, MMS_SUBJECT, MMS_BODY, FILE_TYPE1, FILE_NAME1, SERVICE_DEP1 )VALUES(2, 'MMS 제목' , 'MMS 내용', 'IMG', 'C:/XDB2/attach/01.jpg', 'ALL'); INSERT INTO MSG_DATA(CUR_STATE, REQ_DATE, CALL_TO, CALL_FROM, SMS_TXT, MSG_TYPE, CONT_SEQ) VALUES(0, GETDATE(), '0101234567', '021234567', '', 6, @@IDENTITY);
멀티메세지도 장문과 유사하며, 이미지는 필수이고, 내용 유무에 따라 FILE_CNT 값이 달라지구요.
첨부파일 관련된 정보가 추가로 필요합니다. (FILE_TYPE1, FILE_NAME1, SERVICE_DEP1)
이렇게 데이터를 삽입하면 CUR_STATE 값이 변하면서 전송하고 결과를 받게됩니다.
문자연동 쉽게하기 끝!!