File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.let.utl.user.service;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import com.fasterxml.jackson.databind.ObjectMapper;
import itn.let.kakao.kakaoComm.KakaoVO;
@Component
public class CheckNoServiceCommon{
/** 비즈 회원 아이디 */
@Value("#{globalSettings['Globals.mjon.biz.id']}")
private String mjonBizId;
/** 비즈 회원 API 키*/
@Value("#{globalSettings['Globals.mjon.biz.kakao.apiKey']}")
private String mjonBizKakaoApiKey;
/** 비즈 JSON 파일저장 경로*/
@Value("#{globalSettings['Globals.mjon.kakao.dir']}")
private String mjonBizJsonDir;
/**
* @param kakaoVO
* @return
* 국세청 사업자등록번호 상태 조회
* I : 사업자 등록 번호 - b_no
* O : 납세자상태(코드)
* b_stt_cd string
* default: 01
* xml: OrderedMap { "name": "BSttCd" }
* 납세자상태(코드):
* 01: 계속사업자,
* 02: 휴업자,
* 03: 폐업자
* https://www.data.go.kr/data/15081808/openapi.do#/%EC%82%AC%EC%97%85%EC%9E%90%EB%93%B1%EB%A1%9D%20%EC%83%81%ED%83%9C%EC%A1%B0%ED%9A%8C%20API/status
*/
public KakaoVO BizNoCheckApiEx2(
KakaoVO kakaoVO
, String p_b_no //사업자등록번호
, String p_b_nm //업체명
, String p_p_nm //대표자명
) {
int responscCode = 0;
String s_ret = "";
try {
String sendUrl = "https://kapi.ppurio.com";
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/status?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
String[] s_arr = {p_b_no};
HashMap<String, Object> resultMap = new HashMap();
resultMap.put("b_no", s_arr); //파라미터 설정
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(resultMap); //convert map to JSON String(JSON으로 변환)
System.out.println("json");
System.out.println(json);
System.out.println("json");
//step1.상태조회
String msgMap = statusREST(sendUrl, json);
s_ret = this.jsonParser4Status(msgMap); //"" : 오류, "01"-부가가치세 일반관세자
String[] s_arr_ret = s_ret.split("[|]");
if (s_arr_ret.length==2) {
if (!s_arr_ret[0].equals("01")) {
kakaoVO.setBizReturnCode("101");
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret[0]));
kakaoVO.setBizReturnMsg(s_arr_ret[1]);
return kakaoVO;
}
}else {
kakaoVO.setBizReturnCode("102");
kakaoVO.setBizReturnMsg("알수없는오류(S1)");
return kakaoVO;
}
//step2.bizno 결과 clawling - 설립일 가져오기
sendUrl = "https://www.bizno.net/article/"+p_b_no;
//sendUrl = "https://www.bizno.net/article/6538700857";
Document doc = null;
Elements e_els = null;
try {
doc = this.bizNoCrawling(sendUrl);
e_els = this.extractElements(doc, "div.details div.titles");
s_ret = this.printElements(e_els);
}catch(Exception ex) {
s_ret = "";
}
System.out.println("s_ret");
System.out.println(s_ret);
if ("".equals(s_ret)) {
kakaoVO.setBizReturnCode("201");
kakaoVO.setBizReturnMsg("알수없는오류(B1)");
return kakaoVO;
}
e_els = this.extractElements(doc, "div.details table tbody tr");
s_ret = this.findElementsData(e_els, "설립일").replaceAll("-", "");
if ("".equals(s_ret)) {
kakaoVO.setBizReturnCode("202");
kakaoVO.setBizReturnMsg("알수없는오류(B2)");
return kakaoVO;
}
//step3.진위확인
resultMap.put("b_no", p_b_no); //파라미터 설정
resultMap.put("start_dt", s_ret); //개업일자
resultMap.put("p_nm", p_p_nm); //대표자명
resultMap.put("b_nm", p_b_nm); //회사명
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/validate?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
HashMap<String, Object> resultMapVal = new HashMap();
//ObjectMapper mapper = new ObjectMapper();
json = mapper.writeValueAsString(resultMap); //convert map to JSON String(JSON으로 변환)
System.out.println("json");
Object[] s_arr_val = {resultMap};
//String[] s_arr = {"6538700858"};
System.out.println(json);
System.out.println("json");
resultMapVal.put("businesses", s_arr_val); //파라미터 설정
json = mapper.writeValueAsString(resultMapVal); //convert map to JSON String(JSON으로 변환)
System.out.println("jsonVal");
System.out.println(json);
System.out.println("jsonVal");
msgMap = this.validateREST(sendUrl, json);
s_ret = this.jsonParser4Validate(msgMap);
String[] s_arr_ret_2 = s_ret.split("[|]");
System.out.println("s_arr_ret_2[0]");
System.out.println(s_arr_ret_2[0]);
System.out.println(s_arr_ret_2[1]);
if (s_arr_ret_2.length==2) {
if (!s_arr_ret_2[0].equals("01")) {
kakaoVO.setBizReturnCode("301");
kakaoVO.setBizReturnMsg(s_arr_ret_2[1]);
return kakaoVO;
}
}else {
kakaoVO.setBizReturnCode("302");
kakaoVO.setBizReturnMsg("알수없는오류(V)");
return kakaoVO;
}
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret_2[0]));
kakaoVO.setBizReturnCode(s_arr_ret_2[0]);
kakaoVO.setBizReturnMsg(s_arr_ret_2[1]);
} catch (Exception e) {
e.printStackTrace();
//kakaoVO.setBizReturnCode(-1);
kakaoVO.setBizReturnCode("-1");
}
return kakaoVO;
}
/**
* @param kakaoVO
* @return
* 국세청 사업자등록번호 상태 조회
* I : 사업자 등록 번호 - b_no
* O : 납세자상태(코드)
* b_stt_cd string
* default: 01
* xml: OrderedMap { "name": "BSttCd" }
* 납세자상태(코드):
* 01: 계속사업자,
* 02: 휴업자,
* 03: 폐업자
* https://www.data.go.kr/data/15081808/openapi.do#/%EC%82%AC%EC%97%85%EC%9E%90%EB%93%B1%EB%A1%9D%20%EC%83%81%ED%83%9C%EC%A1%B0%ED%9A%8C%20API/status
*/
public KakaoVO BizNoCheckApiEx3(
KakaoVO kakaoVO
, String p_b_no //사업자등록번호
, String p_b_nm //업체명
, String p_p_nm //대표자명
, String p_start_dt //설립일(개업일)
) {
int responscCode = 0;
String s_ret = "";
try {
String sendUrl = "https://kapi.ppurio.com";
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/status?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
HashMap<String, Object> resultMap = new HashMap();
//step3.진위확인
resultMap.put("b_no", p_b_no); //파라미터 설정
resultMap.put("start_dt", p_start_dt); //개업일자
resultMap.put("p_nm", p_p_nm); //대표자명
resultMap.put("b_nm", p_b_nm); //회사명
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/validate?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
HashMap<String, Object> resultMapVal = new HashMap();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(resultMap); //convert map to JSON String(JSON으로 변환)
System.out.println("json");
Object[] s_arr_val = {resultMap};
//String[] s_arr = {"6538700858"};
System.out.println(json);
System.out.println("json");
resultMapVal.put("businesses", s_arr_val); //파라미터 설정
json = mapper.writeValueAsString(resultMapVal); //convert map to JSON String(JSON으로 변환)
System.out.println("jsonVal");
System.out.println(json);
System.out.println("jsonVal");
String msgMap = this.validateREST(sendUrl, json);
s_ret = this.jsonParser4Validate(msgMap);
String[] s_arr_ret_2 = s_ret.split("[|]");
System.out.println("s_arr_ret_2[0]");
System.out.println(s_arr_ret_2[0]);
System.out.println(s_arr_ret_2[1]);
if (s_arr_ret_2.length==2) {
if (!s_arr_ret_2[0].equals("01")) {
kakaoVO.setBizReturnCode("301");
kakaoVO.setBizReturnMsg(s_arr_ret_2[1]);
return kakaoVO;
}
}else {
kakaoVO.setBizReturnCode("302");
kakaoVO.setBizReturnMsg("알수없는오류(V)");
return kakaoVO;
}
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret_2[0]));
kakaoVO.setBizReturnCode(s_arr_ret_2[0]);
kakaoVO.setBizReturnMsg(s_arr_ret_2[1]);
} catch (Exception e) {
e.printStackTrace();
//kakaoVO.setBizReturnCode(-1);
kakaoVO.setBizReturnCode("-1");
}
return kakaoVO;
}
/**
* @param kakaoVO
* @return
* 국세청 사업자등록번호 상태 조회
* I : 사업자 등록 번호 - b_no
* O : 납세자상태(코드)
* b_stt_cd string
* default: 01
* xml: OrderedMap { "name": "BSttCd" }
* 납세자상태(코드):
* -1:알수없는 오류
* 0:국세청에 등록되지 않은 사업자등록번호입니다.
* 01: 계속사업자,
* 02: 휴업자,
* 03: 폐업자
* https://www.data.go.kr/data/15081808/openapi.do#/%EC%82%AC%EC%97%85%EC%9E%90%EB%93%B1%EB%A1%9D%20%EC%83%81%ED%83%9C%EC%A1%B0%ED%9A%8C%20API/status
*/
public KakaoVO BizNoAPICheckStep1(
KakaoVO kakaoVO
, String p_b_no //사업자등록번호
) {
//int responscCode = 0;
String s_ret = "";
try {
String sendUrl = "https://kapi.ppurio.com";
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/status?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
String[] s_arr = {p_b_no};
HashMap<String, Object> resultMap = new HashMap();
resultMap.put("b_no", s_arr); //파라미터 설정
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(resultMap); //convert map to JSON String(JSON으로 변환)
//System.out.println("json");
//System.out.println(json);
//System.out.println("json");
//step1.상태조회
String msgMap = statusREST(sendUrl, json);
s_ret = this.jsonParser4Status(msgMap); //"" : 오류, "01"-부가가치세 일반관세자
String[] s_arr_ret = s_ret.split("[|]");
if (s_arr_ret.length==2) {
if ("".equals(s_arr_ret[0])) {
kakaoVO.setBizReturnCode("0");
kakaoVO.setBizReturnMsg(s_arr_ret[1]);
}else {
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret[0]));
kakaoVO.setBizReturnCode(s_arr_ret[0]);
kakaoVO.setBizReturnMsg(s_arr_ret[1]);
}
}else {
kakaoVO.setBizReturnCode("-2");
kakaoVO.setBizReturnMsg("알수없는오류(S2)"); //구문오류
System.out.println("알수없는오류(S2)");
//return kakaoVO;
}
} catch (Exception e) {
e.printStackTrace();
kakaoVO.setBizReturnCode("-1");
kakaoVO.setBizReturnMsg("알수없는오류(S1)"); //구문오류
System.out.println("알수없는오류(S1)");
}
return kakaoVO;
}
/**
* @param kakaoVO
* @return
* 국세청 사업자등록번호 상태 조회
* I : 사업자 등록 번호 - b_no
* O : 납세자상태(코드)
* b_stt_cd string
* default: 01
* xml: OrderedMap { "name": "BSttCd" }
* 납세자상태(코드):
* STEP1. valid :
* 01 - 확인 가능
* 02 - 확인할 수 없습니다.
* 00 - 알수없는오류(0V)
*
* STEP2. 사업자등록번호 확인 :
* * -1:알수없는 오류
* 0:국세청에 등록되지 않은 사업자등록번호입니다.
* 11: 계속사업자,
* 12: 휴업자,
* 13: 폐업자
* https://www.data.go.kr/data/15081808/openapi.do#/%EC%82%AC%EC%97%85%EC%9E%90%EB%93%B1%EB%A1%9D%20%EC%83%81%ED%83%9C%EC%A1%B0%ED%9A%8C%20API/status
*/
public KakaoVO BizNoAPICheckStep3(
KakaoVO kakaoVO
, String p_b_no //사업자등록번호
, String p_b_nm //업체명
, String p_p_nm //대표자명
, String p_start_dt //설립일(개업일)
) {
int responscCode = 0;
String s_ret = "";
try {
String sendUrl = "https://kapi.ppurio.com";
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/status?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
HashMap<String, Object> resultMap = new HashMap();
//step3.진위확인
resultMap.put("b_no", p_b_no); //파라미터 설정
resultMap.put("start_dt", p_start_dt); //개업일자
resultMap.put("p_nm", p_p_nm); //대표자명
resultMap.put("b_nm", p_b_nm); //회사명
sendUrl = "https://api.odcloud.kr/api/nts-businessman/v1/validate?serviceKey=R3ueuGhIUlsnCPeJKxKaxlpoEPPmkkL%2BOaDLvOyggrXtHPuxbWIUtlxAwnzhgUq1Hx%2Fc3gpbi%2BoLUq2Dt6rHBg%3D%3D";
HashMap<String, Object> resultMapVal = new HashMap();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(resultMap); //convert map to JSON String(JSON으로 변환)
System.out.println("json");
Object[] s_arr_val = {resultMap};
//String[] s_arr = {"6538700858"};
System.out.println(json);
System.out.println("json");
resultMapVal.put("businesses", s_arr_val); //파라미터 설정
json = mapper.writeValueAsString(resultMapVal); //convert map to JSON String(JSON으로 변환)
System.out.println("jsonVal");
System.out.println(json);
System.out.println("jsonVal");
String msgMap = this.validateREST(sendUrl, json);
s_ret = this.jsonParser4ValidSttCD(msgMap);
System.out.println("s_ret========");
System.out.println(s_ret);
System.out.println(s_ret);
String[] s_arr_ret_2 = s_ret.split("[|]");
System.out.println("s_arr_ret_2[0]");
System.out.println(s_arr_ret_2.length);
System.out.println(s_arr_ret_2[0]);
System.out.println(s_arr_ret_2[1]);
System.out.println(s_arr_ret_2[2]);
System.out.println("s_arr_ret_2[0]");
if (s_arr_ret_2.length==3) {
if (s_arr_ret_2[0].equals("01")) {
if (s_arr_ret_2[1].equals("01")) {
kakaoVO.setBizReturnCode("11");
kakaoVO.setBizReturnMsg(s_arr_ret_2[2]);
}else if (s_arr_ret_2[1].equals("02")) {
kakaoVO.setBizReturnCode("12");
kakaoVO.setBizReturnMsg(s_arr_ret_2[2]);
}else if (s_arr_ret_2[1].equals("03")) {
kakaoVO.setBizReturnCode("13");
kakaoVO.setBizReturnMsg(s_arr_ret_2[2]);
}else {
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret_2[1]));
kakaoVO.setBizReturnCode(s_arr_ret_2[1]);
kakaoVO.setBizReturnMsg(s_arr_ret_2[2]);
}
}else {
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret_2[0]));
kakaoVO.setBizReturnCode(s_arr_ret_2[0]);
kakaoVO.setBizReturnMsg(s_arr_ret_2[2]);
}
}else {
//kakaoVO.setBizReturnCode(4);
kakaoVO.setBizReturnCode("4");
kakaoVO.setBizReturnMsg("검증실패(V4)");
return kakaoVO;
}
//kakaoVO.setBizReturnCode(Integer.parseInt(s_arr_ret_2[0]));
//kakaoVO.setBizReturnMsg(s_arr_ret_2[1]);
} catch (Exception e) {
e.printStackTrace();
kakaoVO.setBizReturnCode("-1");
kakaoVO.setBizReturnMsg("검증실패(V-1)");
}
return kakaoVO;
}
/////////////////////////////////////////////////////////////////////////////
//rest api 데이터 가져오기 - 상태조회
private String statusREST(String sendUrl, String jsonValue) throws IllegalStateException {
String inputLine = null;
StringBuffer outResult = new StringBuffer();
try{
//logger.debug("REST API Start");
System.out.println("REST API Start");
URL url = new URL(sendUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setConnectTimeout(10000);
conn.setReadTimeout(10000);
OutputStream os = conn.getOutputStream();
os.write(jsonValue.getBytes("UTF-8"));
os.flush();
System.out.println(jsonValue.getBytes("UTF-8").toString());
// 리턴된 결과 읽기
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
while ((inputLine = in.readLine()) != null) {
outResult.append(inputLine);
System.out.println(inputLine);
}
conn.disconnect();
System.out.println("REST API End");
//logger.debug("REST API End");
}catch(Exception e){
// logger.error(e.getMessage(), e);
e.printStackTrace();
}
System.out.println("outResult.toString()");
System.out.println(outResult.toString());
System.out.println("outResult.toString()");
return outResult.toString();
}
//rest api 데이터 가져오기
private String jsonParser4Status(String p_parserData) throws Exception {
String s_ret = "";
try {
JSONParser jsonParser = new JSONParser();
//JSON데이터를 넣어 JSON Object 로 만들어 준다.
JSONObject jsonObject = (JSONObject) jsonParser.parse(p_parserData);
//books의 배열을 추출
JSONArray bookInfoArray = (JSONArray) jsonObject.get("data");
System.out.println("* DATAS *");
/*
for(int i=0; i<bookInfoArray.size(); i++){
System.out.println("=BOOK_"+i+" ===========================================");
//배열 안에 있는것도 JSON형식 이기 때문에 JSON Object 로 추출
JSONObject bookObject = (JSONObject) bookInfoArray.get(i);
//JSON name으로 추출
System.out.println("bookInfo: name==>"+bookObject.get("b_no"));
System.out.println("bookInfo: writer==>"+bookObject.get("b_stt"));
System.out.println("bookInfo: price==>"+bookObject.get("b_stt_cd"));
System.out.println("bookInfo: genre==>"+bookObject.get("tax_type"));
System.out.println("bookInfo: publisher==>"+bookObject.get("tax_type_cd"));
}
*/
if (bookInfoArray.size()>0) {
//배열 안에 있는것도 JSON형식 이기 때문에 JSON Object 로 추출
JSONObject bookObject = (JSONObject) bookInfoArray.get(0);
s_ret = (String)bookObject.get("b_stt_cd")+"|"+(String)bookObject.get("tax_type");
}
/*
JSONArray personInfoArray = (JSONArray) jsonObject.get("persons");
System.out.println("\r\n* PERSONS *");
for(int i=0; i<personInfoArray.size(); i++){
System.out.println("=PERSON_"+i+" ===========================================");
JSONObject personObject = (JSONObject) personInfoArray.get(i);
System.out.println("personInfo: name==>"+personObject.get("name"));
System.out.println("personInfo: age==>"+personObject.get("age"));
System.out.println("personInfo: gender==>"+personObject.get("gender"));
System.out.println("personInfo: nickname==>"+personObject.get("nickname"));
}
*/
}catch(Exception ex) {
//} catch (ParseException e) {
// TODO Auto-generated catch block
s_ret = "|알수없는오류(4S)";
ex.printStackTrace();
}
System.out.println("s_ret");
System.out.println(s_ret);
System.out.println(s_ret);
return s_ret;
}
//rest api 데이터 가져오기 - 진위확인
private String validateREST(String sendUrl, String jsonValue) throws IllegalStateException {
String inputLine = null;
StringBuffer outResult = new StringBuffer();
try{
//logger.debug("REST API Start");
System.out.println("REST API Start");
URL url = new URL(sendUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setConnectTimeout(10000);
conn.setReadTimeout(10000);
OutputStream os = conn.getOutputStream();
os.write(jsonValue.getBytes("UTF-8"));
os.flush();
System.out.println(jsonValue.getBytes("UTF-8").toString());
// 리턴된 결과 읽기
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
while ((inputLine = in.readLine()) != null) {
outResult.append(inputLine);
System.out.println(inputLine);
}
conn.disconnect();
System.out.println("REST API End");
//logger.debug("REST API End");
}catch(Exception e){
// logger.error(e.getMessage(), e);
e.printStackTrace();
}
System.out.println("outResult.toString()");
System.out.println(outResult.toString());
System.out.println("outResult.toString()");
return outResult.toString();
}
//rest api 데이터 가져오기
private String jsonParser4Validate(String p_parserData) throws Exception {
String s_ret = "";
try {
JSONParser jsonParser = new JSONParser();
//JSON데이터를 넣어 JSON Object 로 만들어 준다.
JSONObject jsonObject = (JSONObject) jsonParser.parse(p_parserData);
//books의 배열을 추출
JSONArray bookInfoArray = (JSONArray) jsonObject.get("data");
if (bookInfoArray.size()>0) {
//배열 안에 있는것도 JSON형식 이기 때문에 JSON Object 로 추출
JSONObject bookObject = (JSONObject) bookInfoArray.get(0);
//books의 배열을 추출
JSONObject bookStatusObject = (JSONObject) bookObject.get("status");
//s_ret = (String)bookStatusObject.get("b_stt_cd")+"|"+(String)bookStatusObject.get("tax_type");
s_ret = (String)bookStatusObject.get("b_stt_cd")+"|"+(String)bookStatusObject.toString();
}
}catch(Exception ex) {
//} catch (ParseException e) {
// TODO Auto-generated catch block
ex.printStackTrace();
s_ret = "|알수없는오류(4V)";
}
return s_ret;
}
//rest api 데이터 가져오기
/**
* @param p_parserData
* @return valid|stt_cd
* valid - 01 정상
* 02 오류
* stt_cd - 01 - 계속사업자
* 02 - 휴업
* 03 - 폐업
* @throws Exception
*/
private String jsonParser4ValidSttCD(String p_parserData) throws Exception {
String s_ret = "";
try {
JSONParser jsonParser = new JSONParser();
//JSON데이터를 넣어 JSON Object 로 만들어 준다.
JSONObject jsonObject = (JSONObject) jsonParser.parse(p_parserData);
//books의 배열을 추출
JSONArray bookInfoArray = (JSONArray) jsonObject.get("data");
if (bookInfoArray.size()>0) {
//배열 안에 있는것도 JSON형식 이기 때문에 JSON Object 로 추출
JSONObject bookObject = (JSONObject) bookInfoArray.get(0);
s_ret = (String)bookObject.get("valid");
if ("01".equals(s_ret)) {
//books의 배열을 추출
JSONObject bookStatusObject = (JSONObject) bookObject.get("status");
//s_ret = (String)bookStatusObject.get("b_stt_cd")+"|"+(String)bookStatusObject.get("tax_type");
s_ret = s_ret
+ "|" + (String)bookStatusObject.get("b_stt_cd")
+ "|" + (String)bookStatusObject.get("b_stt");
}else if ("02".equals(s_ret)) {
try{
//books의 배열을 추출
String s_msg = (String) bookObject.get("valid_msg");
//s_ret = (String)bookStatusObject.get("b_stt_cd")+"|"+(String)bookStatusObject.get("tax_type");
s_ret = s_ret
+ "|02"
+ "|(국세청 : 02 - " + s_msg +")";
}catch(Exception ex) {
//} catch (ParseException e) {
// TODO Auto-generated catch block
ex.printStackTrace();
s_ret = "00|02|(국세청 : 02 - valid_msg 없음)";
}
}else{
s_ret = " |"+s_ret+"| "+s_ret;
}
}
}catch(Exception ex) {
//} catch (ParseException e) {
// TODO Auto-generated catch block
ex.printStackTrace();
s_ret = "00| |국세청 검증결과 데이터 파싱실패(0V)";
}
return s_ret;
}
//rest api 데이터 가져오기 - 사이트 크롤링
private Document bizNoCrawling(String sendUrl) throws Exception {
String s_url = sendUrl;
Document doc = null; //Document에는 페이지의 전체 소스가 저장된다
try{
//2.페이지 호출
doc = Jsoup.connect(s_url).get();
}catch(Exception ex){
ex.printStackTrace();
}
return doc;
}
//rest api 데이터 가져오기 - 사이트 크롤링
private Elements extractElements(
Document p_doc
, String p_selectQuery
) throws Exception {
//3.상세 url 추출
Elements elements = p_doc.select(p_selectQuery);
return elements;
}
//rest api 데이터 가져오기 - 사이트 크롤링 글자 찾기
private String findElementsData(
Elements p_element
, String p_findData
) throws Exception {
//3.상세 data 값 찾기
String s_ret = "";
// SOLR 결과값 디크립트 부분
for (int i=0;i<p_element.size();i++) {
Element f_ele = p_element.get(i);
if (f_ele.select("th").text().indexOf(p_findData)>-1) {
if (!"".equals(f_ele.select("td").text())) {
s_ret = f_ele.select("td").text();
}
}
}
return s_ret;
}
//rest api 데이터 가져오기 - 사이트 크롤링
private String printElements(
Elements p_els
) throws Exception {
String s_ret = "";
//3.상세 url 추출
for (int i=0;i<p_els.size();i++) {
if (!"".equals(p_els.get(i).text())) {
s_ret = p_els.get(i).text();
}
}
return s_ret;
}
//rest api 데이터 가져오기
private void jsonBizNoParser(String p_parserData) throws Exception {
try {
System.out.println("p_parserData");
System.out.println(p_parserData);
System.out.println("p_parserData");
JSONParser jsonParser = new JSONParser();
//JSON데이터를 넣어 JSON Object 로 만들어 준다.
JSONObject jsonObject = (JSONObject) jsonParser.parse(p_parserData);
//books의 배열을 추출
JSONArray bookInfoArray = (JSONArray) jsonObject.get("data");
System.out.println("* DATAS *");
for(int i=0; i<bookInfoArray.size(); i++){
System.out.println("=BOOK_"+i+" ===========================================");
//배열 안에 있는것도 JSON형식 이기 때문에 JSON Object 로 추출
JSONObject bookObject = (JSONObject) bookInfoArray.get(i);
//JSON name으로 추출
System.out.println("bookInfo: name==>"+bookObject.get("b_no"));
System.out.println("bookInfo: writer==>"+bookObject.get("b_stt"));
System.out.println("bookInfo: price==>"+bookObject.get("b_stt_cd"));
System.out.println("bookInfo: genre==>"+bookObject.get("tax_type"));
System.out.println("bookInfo: publisher==>"+bookObject.get("tax_type_cd"));
}
/*
JSONArray personInfoArray = (JSONArray) jsonObject.get("persons");
System.out.println("\r\n* PERSONS *");
for(int i=0; i<personInfoArray.size(); i++){
System.out.println("=PERSON_"+i+" ===========================================");
JSONObject personObject = (JSONObject) personInfoArray.get(i);
System.out.println("personInfo: name==>"+personObject.get("name"));
System.out.println("personInfo: age==>"+personObject.get("age"));
System.out.println("personInfo: gender==>"+personObject.get("gender"));
System.out.println("personInfo: nickname==>"+personObject.get("nickname"));
}
*/
}catch(Exception ex) {
//} catch (ParseException e) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
}
}