⚙️ 콜백 설정 상세
기능 개요
IAM 콜백 시스템은 4개의 모달(팝업)로 구성되어 있으며, 각 모달은 서로 연결된 하나의 워크플로우를 이룹니다:
| 순서 | 모달 ID | 제목 | 역할 |
| ① | callback_msg_modal | 콜백 메시지 설정하기 | 진입점 — 포인트 확인 및 결제 |
| ② | callback_making_modal | 콜백 메시지 등록하기 | 새 메시지 작성 및 등록 |
| ③ | callback_list_modal | 콜백 메시지 리스트 | 등록된 메시지 조회/관리 |
| ④ | callback_list_edit_modal | 콜백 메시지 (수정) | 기존 메시지 수정/발송 |
모달 구조 전체 보기
① callback_msg_modal — 콜백 메시지 설정하기
| 영역 | 클래스 | 기능 |
| 헤더 | modal-title (background: #99cc00) | "콜백 메시지 설정하기" |
| 안내 | modal-header | 서비스 설명 + 포인트 충전 + 이용내역버튼 |
| 포인트 | settlement_btn | 포인트로 충전하기 / 보유포인트 / 포인트 쉐어하기 |
| 버튼 | btn-submit | 콜백리스트보기 / 포인트내역보기 |
| 주의 | border-box | 300포인트 차감, 디폴트 설정, 변경 가능 |
| 푸터 | modal-footer | 취소하기 / 콜백 메시지 설정하기 → settlement('callmake') |
② callback_making_modal — 콜백 메시지 등록하기
| 영역 | 기능 |
| 헤더 | "콜백 메시지 등록하기" + AI와 대화하기 버튼 |
| 입력 | 제목(textarea), 메시지내용(textarea 152px) |
| 상세 | 타이틀, 콘텐츠, 이미지(file), 링크주소, 단축주소 복사 |
| 푸터 | 취소하기 / 등록하기 → form_save_call() |
| 폼 | action="/admin/ajax/mms_callback_save.php", enctype="multipart/form-data" |
③ callback_list_modal — 콜백 메시지 리스트
| 영역 | 기능 |
| 헤더 | "콜백 메시지 리스트" |
| 테이블 | No, 타이틀, 메시지, 이미지, 보기/링크, 조회수, 유지/해지, 등록일, 노출여부, 수정/삭제 |
| 데이터 | AJAX로 /ajax/edit_event_callback.php 에서 HTML 로드 |
| 푸터 | 발송 주기 select(a0~a3) + [등록] 버튼 |
④ callback_list_edit_modal — 콜백 메시지 수정
| 영역 | 기능 |
| 헤더 | "콜백 메시지" |
| 폼 | action="/ajax/edit_event_callback.php" — 아이디, 요청메시지, 콜백 타이틀/메시지, 링크, 이미지, 단축주소, 조회수, 등록일시 |
| 발송 | 셀프폰 발송하기 / 푸시형 전송하기 → 수신자 ID 입력 → 전송하기 |
| 푸터 | 뒤로가기 / 저장 → save_call_edit_ev() |
기술 아키텍처
콜백 메시지 폼 전송 (form_save_call)
function form_save_call() {
// 1. 입력값 유효성 검증
if ($("#call_title").val() == "") → alert + return
if ($("#call_content").val() == "") → alert + return
if ($("#msgtitle_call").val() == "" || $("#msgdesc_call").val() == "")
→ alert + return
// 2. AJAX multipart 전송 (파일 업로드 포함)
var formData = new FormData($("#dForm_call")[0]);
$.ajax({
method: "post",
processData: false, // FormData 자동 처리
contentType: false, // multipart/form-data
url: "/admin/ajax/mms_callback_save.php",
data: formData,
success: function(data) {
// 3. 단축 URL 파싱 및 저장
arr = data.split("{");
data = "{" + arr[1];
res = JSON.parse(data);
short_url = res.shorturl;
$("#call_msg_surl").val(res.shorturl);
alert("등록되었습니다.");
}
});
}
settlement('callmake') 호출 흐름
// settlement('callmake') 실행 시:
// 1. callback_msg_modal 닫기
// 2. callback_making_modal 열기
// 3. 새로운 콜백 메시지 등록 폼 초기화
전체 필드 레퍼런스
| 필드명 (name) | 타입 | 모달 | 용도 |
mode | hidden | ② 등록 | "reg_msg" — 신규 등록 모드 |
msgtitle_call | textarea | ② 등록 | 메시지 제목 (중앙 정렬, 큰 글씨) |
msgdesc_call | textarea | ② 등록 | 메시지 본문 내용 |
call_title | textarea | ② 등록 / ④ 수정 | 리스트용 타이틀 |
call_content | textarea | ② 등록 / ④ 수정 | 상세 콘텐츠 |
call_img | file | ② 등록 | 첨부 이미지 |
call_event_img | file | ④ 수정 | 이미지 교체 |
iam_link | text | ② 등록 | 메시지 내 포함될 링크 |
call_iam_link | text | ④ 수정 | 수정용 링크주소 |
call_msg_surl | hidden | ② 등록 | 자동 생성된 단축 URL |
call_short_url | text | ④ 수정 | 수정용 단축주소 |
event_title_call | textarea | ④ 수정 | 요청메시지 제목 |
event_desc_call | textarea | ④ 수정 | 요청메시지 내용 |
call_event_title | textarea | ④ 수정 | 콜백 타이틀 |
call_event_desc | textarea | ④ 수정 | 콜백 메시지 |
call_event_idx | hidden | ④ 수정 | 수정 대상 이벤트 인덱스 |
call_read_cnt | text | ④ 수정 | 조회수 |
call_regdate1 | text | ④ 수정 | 등록일시 |
save | hidden | ④ 수정 | "save" — 저장 모드 |
API 엔드포인트
| 엔드포인트 | 메서드 | 주요 파라미터 | 응답 |
/admin/ajax/mms_callback_save.php | POST | mode=reg_msg, msgtitle_call, msgdesc_call, call_title, call_content, call_img, iam_link | JSON { shorturl: "..." } |
/ajax/edit_event_callback.php (리스트) | POST | get_callback_list=Y, mem_id | HTML (테이블 행) |
/ajax/edit_event_callback.php (수정) | POST | save=save, call_event_idx, event_title_call, event_desc_call, call_event_title, call_event_desc, ... | JSON |
/ajax/edit_event_callback.php (삭제) | POST | delete=Y, call_event_idx | JSON |
고급 설정
포인트 차감 정책
- 콜백 메시지 신청자 1명당 300포인트 차감
- 캐시포인트로 결제 (씨드포인트는 내부 기능 전용)
- 콜백 메시지 설정 동의 회원의 메시지함에 디폴트 메시지로 등록
- 회원이 추후 다른 메시지로 변경 가능
앱 설치 연동
- 앱 패키지:
mms5.onepagebook.com.onlyonesms
- 커스텀 스킴:
onlyone://onlyoneapp
- 인텐트:
intent://onlyone#Intent;scheme=onlyoneapp;package=mms5.onepagebook.com.onlyonesms;end
- Google Play: 온리원문자 다운로드
접근 제한
- Android에서만 정상 동작 (
navigator.userAgent 검사)
- PC/iPhone 접속 시 "휴대폰에서 이용해주세요" 안내
- 앱 미설치 시
confirm() → 플레이스토어 이동