270 lines
12 KiB
Plaintext
270 lines
12 KiB
Plaintext
<%@page import="java.io.InputStreamReader"%>
|
||
<%@page import="java.io.BufferedReader"%>
|
||
<%@page import="org.apache.http.HttpResponse"%>
|
||
<%@page import="org.apache.http.client.methods.HttpPost"%>
|
||
<%@page import="org.apache.http.impl.client.HttpClients"%>
|
||
<%@page import="org.apache.http.client.HttpClient"%>
|
||
<%@page import="org.apache.http.HttpEntity"%>
|
||
<%@page import="java.net.URLEncoder"%>
|
||
<%@page import="org.apache.http.entity.ContentType"%>
|
||
<%@page import="org.apache.http.entity.mime.content.FileBody"%>
|
||
<%@page import="java.io.File"%>
|
||
<%@page import="java.util.Iterator"%>
|
||
<%@page import="java.nio.charset.Charset"%>
|
||
<%@page import="org.apache.http.entity.mime.HttpMultipartMode"%>
|
||
<%@page import="org.apache.http.entity.mime.MultipartEntityBuilder"%>
|
||
<%@page import="java.util.HashMap"%>
|
||
<%@page import="java.util.Map"%>
|
||
<%@ page language="java" contentType="text/html; charset=utf-8 " pageEncoding="utf-8"%>
|
||
<%
|
||
try{
|
||
//기본 설정값
|
||
//final String encodingType = "utf-8";
|
||
final String encodingType = "UTF-8";
|
||
final String boundary = "____boundary____";
|
||
|
||
final String mberId = "goodgkdus";
|
||
final String accessKey = "0367a25ec370d1141898a0b9767103";
|
||
|
||
/**************** 문자전송하기 예제 ******************/
|
||
/* "result_code":결과코드,"message":결과문구, */
|
||
/* "msg_id":메세지ID,"error_cnt":에러갯수,"success_cnt":성공갯수 */
|
||
/* 동일내용 > 전송용 입니다.
|
||
/******************** 인증정보 ********************/
|
||
//String sms_url = "https://apis.aligo.in/send/"; // 전송요청 URL
|
||
//String sms_url = "https://api.munjaon.co.kr:9998/api/accessTest/Test"; // 전송요청 URL
|
||
//String sms_url = "https://api.munjaon.co.kr:9998/api/accessKey/SendMsg"; // 전송요청 URL
|
||
String sms_url = "http://localhost:8088/api/accessKey/SendMsg"; // 전송요청 URL
|
||
|
||
Map<String, String> sms = new HashMap<String, String>();
|
||
sms.put("mberId", mberId); // SMS 아이디
|
||
sms.put("accessKey", accessKey); //인증키
|
||
/******************** 인증정보 ********************/
|
||
|
||
|
||
//임시 - 테스트용 시작
|
||
//String p_mberId = request.getParameter("p_mberId"); //발신번호
|
||
//String p_accessKey = request.getParameter("p_accessKey"); //수신번호
|
||
//sms.put("mberId", p_mberId); // SMS 아이디
|
||
//sms.put("accessKey", p_accessKey); //인증키
|
||
//임시 - 테스트용 끝
|
||
/******************** 전송정보 ********************/
|
||
//전달 받은 값
|
||
//필수값
|
||
String p_callFrom = request.getParameter("p_callFrom"); //발신번호
|
||
String p_callToList = request.getParameter("p_callToList"); //수신번호
|
||
//String p_eachPrice = request.getParameter("p_eachPrice"); //전송문자 개별가격
|
||
//String p_fileCnt = request.getParameter("p_fileCnt"); //첨부파일갯수
|
||
//String p_sPrice = request.getParameter("p_sPrice"); //단문문자단가
|
||
//String p_totPrice = request.getParameter("p_totPrice"); //총결제금액
|
||
//String p_txtReplYn = request.getParameter("p_txtReplYn"); //치환문자 여부 Y//N
|
||
String p_txtReplYn = "N"; //치환문자 여부 - 초기 지원안함
|
||
String p_msgType = request.getParameter("p_msgType"); //문자타입 4-단문,5-URL,6-MMS,7-BARCODE,8-카카오알림톡
|
||
//String p_msgKind = request.getParameter("p_msgKind"); //N-일반,A-광고,C-선거
|
||
String p_msgKind = "N"; //N-일반,A-광고,C-선거 - 초기 지원안함
|
||
String p_smsTxt = request.getParameter("p_smsTxt"); //SMS용 메시지본문
|
||
|
||
//선택값
|
||
//String p_mmsPrice = request.getParameter("p_mmsPrice"); //mms단가
|
||
//String p_mPrice = request.getParameter("p_mPrice"); //장문문자단가
|
||
//String p_spamStatus = request.getParameter("p_spamStatus"); //스팸문자 유무
|
||
|
||
//예약문자의 경우(선택값)
|
||
String p_reserveYn = request.getParameter("p_reserveYn"); //예약문자 여부 N or Y
|
||
String p_divideCnt = request.getParameter("p_divideCnt"); //분할문자 건수
|
||
String p_divideTime = request.getParameter("p_divideTime"); //분할문자 간격
|
||
String p_reqDate = request.getParameter("p_reqDate"); //예약시간
|
||
|
||
//치환문자일경우(선택값) - 치환문자일 경우 txtReplYn=’Y’일때 필수 - 초기 지원안함
|
||
//String p_nameList = request.getParameter("p_nameList"); //치환 이름 리스트 String[]
|
||
//String p_rep1List = request.getParameter("p_rep1List"); //치환 문자1 리스트 String[]
|
||
//String p_rep2List = request.getParameter("p_rep2List"); //치환 문자2 리스트 String[]
|
||
//String p_rep3List = request.getParameter("p_rep3List"); //치환 문자3 리스트 String[]
|
||
//String p_rep4List = request.getParameter("p_rep4List"); //치환 문자4 리스트 String[]
|
||
//String p_shortMsgCnt= request.getParameter("p_shortMsgCnt"); //단문 건수
|
||
//String p_longMsgCnt = request.getParameter("p_longMsgCnt"); //장문 건수
|
||
//String p_imgMsgCnt = request.getParameter("p_imgMsgCnt"); //이미지 건수
|
||
|
||
//이미지일경우(선택값) - 초기 지원안함
|
||
//String p_imgFilePath= request.getParameter("p_imgFilePath"); //그림 이미지 경로 String[]
|
||
//String p_imgFileId = request.getParameter("p_imgFileId"); //이미지 atchId 배열 String[]
|
||
//String p_templateYn = request.getParameter("p_templateYn"); //이미지 에디터 사용여부 String[]
|
||
|
||
/*
|
||
sms.put("msg", "%고객명%님. 안녕하세요. API TEST SEND"); // 메세지 내용
|
||
sms.put("receiver", "01111111111,01111111112"); // 수신번호
|
||
sms.put("destination", "01111111111|담당자,01111111112|홍길동"); // 수신인 %고객명% 치환
|
||
sms.put("sender", ""); // 발신번호
|
||
sms.put("rdate", ""); // 예약일자 - 20161004 : 2016-10-04일기준
|
||
sms.put("rtime", ""); // 예약시간 - 1930 : 오후 7시30분
|
||
sms.put("testmode_yn", "Y"); // Y 인경우 실제문자 전송X , 자동취소(환불) 처리
|
||
sms.put("title", "제목입력"); // LMS, MMS 제목 (미입력시 본문중 44Byte 또는 엔터 구분자 첫라인)
|
||
*/
|
||
|
||
|
||
//전송내역조회
|
||
//(필수)
|
||
String p_msgGroupId = request.getParameter("p_msgGroupId"); //메시지 group id
|
||
|
||
//(선택)
|
||
String p_page = request.getParameter("p_page"); //페이지번호 기본-1
|
||
String p_pageSize = request.getParameter("p_pageSize"); //페이지당 출력갯수-30(30~500)
|
||
String p_startDate = request.getParameter("p_startDate"); //조회시작일자-기본값 오늘
|
||
String p_endDate = request.getParameter("p_endDate"); //조회마감일자-기본값 내일
|
||
|
||
|
||
//REST API 주소 받기
|
||
String p_api_type = request.getParameter("p_api_type").toUpperCase(); //api 호출 타입 msg,mass,hstry, hstryDetail,, myData
|
||
|
||
|
||
System.out.println("p_api_type");
|
||
System.out.println(p_api_type);
|
||
|
||
boolean b_is_send = true; //발송 처리 여부
|
||
|
||
|
||
switch (p_api_type) {
|
||
case "MSG":
|
||
//System.out.println("일반메세지발송");
|
||
sms_url = "http://192.168.0.59:8088/api/accessKey/SendMsg"; // 전송요청 URL
|
||
sms_url = "http://192.168.0.59:8088/api/send/sendMsg"; // 전송요청 URL
|
||
sms_url = "http://localhost:8088/api/send/sendMsg"; // 전송요청 URL
|
||
|
||
|
||
//추가 전송 데이터
|
||
sms.put("callFrom", p_callFrom); // 발신번호
|
||
sms.put("callToList", p_callToList); // 수신번호
|
||
sms.put("msgType", p_msgType); // 문자타입 4-단문,5-URL,6-MMS,7-BARCODE,8-카카오알림톡
|
||
sms.put("smsTxt", p_smsTxt); //SMS용 메시지본문
|
||
|
||
sms.put("reserveYn", p_reserveYn); //예약문자 여부 N or Y
|
||
sms.put("divideCnt", p_divideCnt); //분할문자 건수
|
||
sms.put("divideTime", p_divideTime); //분할문자 간격
|
||
sms.put("reqDate", p_reqDate); //예약시간
|
||
//System.out.println("일반메세지발송");
|
||
break;
|
||
|
||
case "MASS":
|
||
System.out.println("대량메세지발송");
|
||
sms_url = "http://localhost:8088/api/accessKey/mass"; // 전송요청 URL
|
||
sms_url = "http://localhost:8088/api/send/sendMsgs"; // 전송요청 URL
|
||
|
||
//추가 전송 데이터
|
||
sms.put("callFrom", p_callFrom); // 발신번호
|
||
sms.put("callToList", p_callToList); // 수신번호
|
||
sms.put("msgType", p_msgType); // 문자타입 4-단문,5-URL,6-MMS,7-BARCODE,8-카카오알림톡
|
||
sms.put("smsTxt", p_smsTxt); //SMS용 메시지본문
|
||
|
||
sms.put("reserveYn", p_reserveYn); //예약문자 여부 N or Y
|
||
sms.put("divideCnt", p_divideCnt); //분할문자 건수
|
||
sms.put("divideTime", p_divideTime); //분할문자 간격
|
||
sms.put("reqDate", p_reqDate); //예약시간
|
||
break;
|
||
|
||
case "HSTRY":
|
||
System.out.println("전체발송이력");
|
||
sms_url = "http://localhost:8088/api/inqry/hstry"; // 전송요청 URL
|
||
|
||
//추가 전송 데이터
|
||
sms.put("page" , p_page); //페이지번호
|
||
sms.put("pageSize" , p_pageSize); //페이지당 출력갯수
|
||
sms.put("startDate" , p_startDate); //시작일자
|
||
sms.put("endDate" , p_endDate); //마감일자
|
||
break;
|
||
|
||
case "HSTRYDETAIL":
|
||
System.out.println("상세발송이력");
|
||
sms_url = "http://localhost:8088/api/accessKey/hstryDetail"; // 전송요청 URL
|
||
sms_url = "http://localhost:8088/api/inqry/hstryDetail"; // 전송요청 URL
|
||
|
||
//추가 전송 데이터
|
||
sms.put("msgGroupId" , p_msgGroupId); //문자 전송 정보
|
||
|
||
sms.put("page" , p_page); //페이지번호
|
||
sms.put("pageSize" , p_pageSize); //페이지당 출력갯수
|
||
break;
|
||
|
||
case "MYDATA":
|
||
System.out.println("잔액|단가|발송가능건수");
|
||
sms_url = "http://localhost:8088/api/accessKey/myData"; // 전송요청 URL
|
||
sms_url = "http://localhost:8088/api/inqry/price"; // 전송요청 URL
|
||
break;
|
||
|
||
default:
|
||
b_is_send = false;
|
||
break;
|
||
}
|
||
|
||
System.out.println(b_is_send);
|
||
|
||
//REST API 요청
|
||
if (b_is_send){
|
||
System.out.println("일반메세지발송");
|
||
System.out.println(p_msgType);
|
||
System.out.println("일반메세지발송");
|
||
|
||
String image = "";
|
||
//image = "/tmp/pic_57f358af08cf7_sms_.jpg"; // MMS 이미지 파일 위치
|
||
|
||
/******************** 전송정보 ********************/
|
||
String result = "";
|
||
|
||
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
||
|
||
builder.setBoundary(boundary);
|
||
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
|
||
builder.setCharset(Charset.forName(encodingType));
|
||
|
||
for(Iterator<String> i = sms.keySet().iterator(); i.hasNext();){
|
||
String key = i.next();
|
||
//전달값이 없는 경우 오류
|
||
try{
|
||
System.out.println(key);
|
||
System.out.println(key);
|
||
System.out.println(sms.get(key));
|
||
builder.addTextBody(key, sms.get(key)
|
||
, ContentType.create("Multipart/related", encodingType));
|
||
}catch(Exception ex){
|
||
//ex.printStackTrace()
|
||
|
||
}
|
||
|
||
}
|
||
|
||
File imageFile = new File(image);
|
||
if(image!=null && image.length()>0 && imageFile.exists()){
|
||
|
||
builder.addPart("image",
|
||
new FileBody(imageFile, ContentType.create("application/octet-stream"),
|
||
URLEncoder.encode(imageFile.getName(), encodingType)));
|
||
}
|
||
|
||
HttpEntity entity = builder.build();
|
||
|
||
HttpClient client = HttpClients.createDefault();
|
||
HttpPost post = new HttpPost(sms_url);
|
||
post.setEntity(entity);
|
||
|
||
HttpResponse res = client.execute(post);
|
||
|
||
|
||
if(res != null){
|
||
BufferedReader in = new BufferedReader(new InputStreamReader(res.getEntity().getContent(), encodingType));
|
||
String buffer = null;
|
||
while((buffer = in.readLine())!=null){
|
||
result += buffer;
|
||
}
|
||
in.close();
|
||
}
|
||
out.print(result);
|
||
|
||
}else{
|
||
out.print("{\"resultCode\":99,\"message\":\"WRONG API METHOD\"}");
|
||
|
||
}
|
||
|
||
}catch(Exception e){
|
||
out.print(e.getMessage());
|
||
}
|
||
|
||
%> |