...
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
</dependencies>
...
package com.hotsse.sample;
import java.util.Map;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
@SpringBootTest
class CallNtsTests {
@Test
void contextLoads() throws Exception {
Map<String, Object> result = this.callNtsGetTaxType("2208717483");
System.out.println("regYn = " + result.get("regYn"));
System.out.println("validYn = " + result.get("validYn"));
}
@SuppressWarnings("unchecked")
private Map<String, Object> callNtsGetTaxType(String socNo) {
Map<String, Object> result = new HashMap<String, Object>();
final String url = "https://teht.hometax.go.kr/wqAction.do?actionId=ATTABZAA001R08&screenId=UTEABAAA13&popupYn=false";
try {
String dongCode = socNo.substring(3, 5);
String request = String.format("<map id=\"ATTABZAA001R08\"><pubcUserNo/><mobYn>N</mobYn><inqrTrgtClCd>1</inqrTrgtClCd><txprDscmNo>%s</txprDscmNo><dongCode>%s</dongCode><psbSearch>Y</psbSearch><map id=\"userReqInfoVO\"/></map>"
, socNo
, dongCode);
String response = new RestTemplate().postForObject(url, request, String.class);
Map<String, String> map = new XmlMapper().readValue(response, Map.class);
if(map.get("smpcBmanTrtCntn")
.trim()
.equals("등록되어 있는 사업자등록번호 입니다.")) {
result.put("regYn", "Y");
if(Pattern.matches("부가가치세.*입니다\\."
, map.get("trtCntn").trim())) {
result.put("validYn", "Y");
}
else {
result.put("validYn", "N");
}
}
else {
result.put("regYn", "N");
result.put("validYn", "N");
}
}
catch(Exception e) {
e.printStackTrace();
result.put("regYn", "N");
result.put("validYn", "N");
}
return result;
}
}