공공데이터포털 홈페이지에는 수많은 데이터들이 저장되어 있고,
해당 데이터를 누구나 활용할 수 있도록 공개해 두고 쓸 수 있게 해 두었는데요.
그냥 데이터를 엑셀로 받아서 사용하고 확인해 볼 수도 있지만,
api를 통해 좀 더 쉽게 데이터를 활용할 수 있습니다.
이번 포스팅에서는 공공데이터 포털에서 api를 통해 사업자번호를 사용하여,
사업자등록정보 진위확인 및 상태조회를 해보도록 하겠습니다.
1. 공공데이터 포털 홈페이지 접속
먼저 포털사이트에 검색을 통해 공공데이터 포털 홈페이지로 접속을 해줍니다.
2. api활용 신청하기
다음으로 api 활용 신청을 해주어야 합니다.
로그인이 필수이므로, 아이디가 있다면 로그인을 아이디가 없다면 회원가입해서 로그인을 진행해 줍니다.
이후 메인페이지에서 "사업자등록정보"라고 검색을 해줍니다.
검색 후 아래로 스크롤을 내리다 보면,
오픈 API에 있는 검색결과 제일 상단에 "국세청_사업자등록정보 진위확인 및 상태조회 서비스"라는 것이 보입니다.
오른쪽 끝에 활용신청 버튼을 클릭하여 활용 신청을 해줍니다.
신청한 api는 마이페이지 -> 데이터활용 -> Open API -> 활용신청 현황에서 확인할 수 있습니다.
상세 보기로 들어와서 서비스보기를 확인해 보면 일반인증키 인코딩과 디코딩이 나누어져 있는데,
저는 인코딩을 사용했습니다. api 환경에 따라서 자신에게 맞는 인증키로 사용하시면 되는데 보통 인코딩 사용하면 됩니다.
3. 사업자 등록번호 입력 폼 만들기
api키까지 발급을 다 받았다면 api를 사용할 준비는 완료되었습니다.
이제 사용자에게 사업자 등록번호를 입력받아서 입력받은 사업자 번호가 국세청에 등록된 사업자 번호인지 확인해 보겠습니다.
<input type="text" name="corp_reg" id="corp_reg" value=""/>
<input type="button" name="corp_button" id="corp_button" value="확 인" onclick="corp_chk();">
이렇게 간단하게 text 박스와 버튼 하나를 만들어 주었습니다.
확인 버튼을 누르면 corp_chk() 함수에서 ajax를 통해 사업자등록 번호를 조회합니다.
4. corp_chk 함수 작성
corp_chk() 함수를 통해서 공공데이터 포털 api를 사용할 것입니다.
api 호출 1회 당 최대 100개에 해당하는 정보만 처리할 수 있으니, 100개 이상의 사업자 번호는 넣지 않도록 합니다.
그리고 사업자정보 진위확인과 상태조회 어떤 것을 하냐에 따라서 필수입력사항이 달라집니다.
사업자 정보 진위확인을 한다면 사업자등록번호와 대표자성명 개업일자는 필수로 입력되어야 합니다.
상태조회를 할시에는 사업자등록번호만 필수로 입력해 주시면 됩니다.
사업자정보 상태조회 샘플코드는 위와 같이 나와있으며, 위의 코드를 활용하여 corp_chk() 함수를 작성해 보겠습니다.
function corp_chk() {
$("#corp_reg").val($("#corp_reg").val().replace(/[^0-9]/g, ""));
reg_num = $("#corp_reg").val();
if(!reg_num) {
alert("사업자등록번호를 입력해주세요.");
return false;
}
var data = {
"b_no": [reg_num]
};
$.ajax({
url: "https://api.odcloud.kr/api/nts-businessman/v1/status?serviceKey=xxxxxx", // serviceKey 값을 xxxxxx에 입력
type: "POST",
data: JSON.stringify(data), // json 을 string으로 변환하여 전송
dataType: "JSON",
traditional: true,
contentType: "application/json; charset:UTF-8",
accept: "application/json",
success: function(result) {
console.log(result);
if(result.match_cnt == "1") {
//성공
console.log("success");
} else {
//실패
console.log("fail");
alert(result.data[0]["tax_type"]);
}
},
error: function(result) {
console.log("error");
console.log(result.responseText); //responseText의 에러메세지 확인
}
});
}
먼저 corp_reg 텍스트 박스에 숫자 이외에 "-" 등 다른 문자들은 전부 제거해 줍니다.
reg_num이라는 변수에 값을 저장해 주고, 입력받은 값이 없다면 경고창을 출력해 줍니다.
data 값은 json형태로 전달되어야 하므로 "b_no"에 입력받은 사업자 번호를 넣어줍니다.
이후 ajax를 호출한 뒤, serviceKey 뒤에 xxxxx 부분을 지우고 공공데이터 포털에서 받은 api 일반 인증키를 입력해 줍니다.
이후 결과에 따라 success와 error 처리를 해줍니다.
에러는 잘 나오지 않지만 에러가 나온다면,
에러 메시지를 콘솔을 통해 확인하여 어떤 에러가 나오는지 확인 후 대처할 수 있도록 합니다.
성공한 값을 콘솔로 찍어서 확인하도록 했으니 해당 콘솔을 확인해 보겠습니다.
저는 삼성전자의 사업자 번호로 테스트해 보았습니다.
콘솔을 확인해 보면 사업자번호, 계속사업자인지 일반과세자 인지 등등 정보가 나옵니다.
사업자 등록번호를 잘못입력했을 때의 결과도 살펴보겠습니다.
잘못된 사업자번호를 입력하면 위와 같이 결과가 나오게 됩니다.
이 부분에서 data에 있는 Array값이 어떻게 출력되는지,
console.log(result.data [0]); 을 사용하여 자세히 보면 확인할 수 있습니다.
그래서 실패했을 때 사용자에게 보내기 좋은 적절한 문구로 tax_type을 alert를 사용하여 사용자에게 경고창을 띄우도록 했습니다.
결론
공공데이터 포털 api를 활용하여,
사업자등록번호가 국세청에 등록된 정확한 사업자 번호인지 확인하는 api 활용에 대해서 한번 알아보았습니다.
위의 내용을 잘 활용하여 사업자 번호가 정확하다면 이후 jQuery를 활용하여 사용자에게 보이는 페이지에 변화를 주거나,
회원가입이 가능하게 하거나 하는 식으로 응용이 가능할 것입니다.
이 외에도 공공데이터 포털에는 유용한 api가 많으니 많이 활용해 보시길 바랍니다.
'코딩' 카테고리의 다른 글
[PHP] 간단한 예제로 알아보는 날짜 함수 총정리 (137) | 2024.02.03 |
---|---|
[jQuery] 마우스 드래그로 크기 조절 가능한 텍스트 박스 만들기 + 텍스트 박스 크기에 따라 글자 수 제한 (138) | 2024.01.29 |
[PHP] 특정 문자열을 기준으로 문자열 나누어 배열로 바꿔주는 함수 - Explode() 함수 사용 방법 (100) | 2024.01.11 |
[PHP] str_replace 함수로 문자열 조작하기 (89) | 2024.01.08 |
[PHP] 배열이 값을 가지고 있는지 포함여부를 알 수 있는 함수 (in_array 사용법) (74) | 2023.12.27 |
댓글