우체국 배송(등기) 정보 파싱 프로그램 > 그누보드5 팁자료실

그누보드5 팁자료실

우체국 배송(등기) 정보 파싱 프로그램 정보

우체국 배송(등기) 정보 파싱 프로그램

첨부파일

epost_parsing.png (39.2K) 14회 다운로드 2018-01-10 22:04:32
delivery_parser.zip (4.0K) 55회 다운로드 2018-01-10 22:01:08

본문

먼저 이글을 한번 읽어주시구요.  https://sir.kr/cm_free/1441713?page=2

 

우체국 배송정보를 파싱하는 php 모듈입니다.  앞으로 계속 추가할 예정이구요. 아마 10개 ~ 20개 정도 만들것 같네요.

guzzle + dom crawer  를 사용하였기 때문에 php 5.5 이상에서 해당 라이브리러리를 composer 로 설치하셔야 합니다.

 

업로드한 class 파일은 파싱만 수행함으로 영카트에서 사용하기 위해선 테이블 생성과, db입력 부분은 추가로 작업하셔야 합니다.

 

영카트에서 사용할수 완성된 형태의 코드는  별도로 작업하여 플러그인 게시판에 업로드 하도록 하겠습니다.

 


<?php
require_once '../vendor/autoload.php';
use Delivery\EpostParser;

set_time_limit(120); //최대 실행시간은 2분으로
ini_set('display_errors', 'On');
error_reporting(E_ALL & ~E_NOTICE);

//파싱된 데이타 구조
/**
 * 배송 관련
 * part1 배송 기본정보 delivery_info
 * 택배사     company_name
 * 택배사 코드 comapny_id
 * 운송장번호  invoice_no
 * 주문번호    order_no
 * 발송인      sender
 * 발송전화번호 sender_telno
 * 주소        receiver_addr
 * 수취인      receiver
 * 수취전화번호   receiver_telno
 * 상태      status
 * 배송 진행상태   step 1: 배송준비중, 2:집하완료, 3:배송중, 4: 지점도착, 5: 배송출발, 6:배송완료
 *  STEP1 접수 STEP2 상품이동중 STEP3 배달지도착 STEP4 배달준비 STEP5 배달완료
 * 배송 완료여부  complete_yn
 * 배송예정 시간 estimate_time
 *
 * part2 delivery_product 배송 품목정보
 * 품명   item_name
 * 수량   item_qty
 * 브랜드  item_brand
 *
 * part3 배송 상세 delivery_history (array)
 * 날짜/시간    d_datetime
 * 현재위치     d_location
 * 처리현황     d_status
 * 담당자명     d_person
 * 담당자 연락처 d_person_telno
 * 수령인      d_recipient
 * 비고        d_etc
 */
//todo 주문서에 해당하는 배송정보를 가져와 배송상태를 확인한다.
//배송이 완료된건이면, 배송정보를 파싱하지 않는다.
$delivery = new EpostParser();
$invoice_no = "6074985271983"; //우체국 택 송장번호배 13자리
$result = $delivery->getDeliveryInfo($invoice_no);
if($result['delivery_info']['step'] == "-1") { //배송정보 오류
    echo "배송 정보가 아직 입력되지 않았거나, 등기(송장)번호 오류입니다.";
}
//todo 파싱된 배송정보를 db에 insert/update 처리한다.
//마지막 파싱 시간을 기록하여, 파싱이 너무 자주 실행되지 않도록 한다.
//너무 자주 실행하면 IP 차단 당할수 있음으로 realtime 파싱보다는 배치 처리하도록 한다.
echo "<xmp>";
print_r($result);
echo "</xmp>";
?>

 

작업후기

우체국 배송정보 파싱 작업하면서 느낀부분인데,  문제가 많네요

일단 태그구조가 깨져있습니다.   남발함. 웹표준 따윈 바라지도 않습니다. 일반적

위의 문제 때문에 코드에서 이를 처리하기 위해 예외적 코드가 들어가, 코드를 깔끔하게 만들려고 한 저의 노력이 바랜 느낌입니다.

 

나름 국가기관급 홈페이지인데, 다른 택배사는 몰라도 적어도 우체국은 openapi를 제공해야 되지 않을까요?

얼른 업그레이드 해줬으면 하는 바램입니다.

아래 santa100님이 우체국 오픈 api를 알려주셨네요. 

 

다음번엔 사용빈도가 높은 CJ 택배를 파싱하는 모듈을 작업하도록 하겠습니다.

 

추천
9
  • 복사

댓글 15개

@엘카 님 께서 남겨주신 링크의 종추적 api 입니다.
저 같은 경우는 접수랑 같이 사용중이구요.

api문의는 우정사업부(가까운곳)의 전산실에 전화해서 담당자있는지 확인해보시면됩니다.
(담당자 찾기가 힘듭니다. 전 12번 통화만에 찾았네요. 이제는 퇴사하셨지만...)



-------------------------

우체국 접수 API이용 방법
> 우체국 계약 -> 고객번호 받고, 계약승인번호 요청 -> 인터넷 우체국에 회원가입(가입되있으면 정보수정) -> 고객번호 인증(000으로 시작해서 10자리)
- 계약고객전용시스템 접속(로그인 후)
- 오픈 api 사용신청
- 우편집중국 전산실(API담당) *** 개인정보보호를 위한 전화번호 노출방지 *** / api 호출 관리(국내) *** 개인정보보호를 위한 전화번호 노출방지 ***

-------------------------
종추적은 그냥 API받아서 사용하면됩니다.
© SIRSOFT
현재 페이지 제일 처음으로