Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CJ 대한통운 API endpoint 업데이트 요청 #198

Open
kimiroo opened this issue Jun 13, 2024 · 0 comments
Open

CJ 대한통운 API endpoint 업데이트 요청 #198

kimiroo opened this issue Jun 13, 2024 · 0 comments

Comments

@kimiroo
Copy link

kimiroo commented Jun 13, 2024

현재 사용중인 endpoint보다 더 상세하면서도 사용하기 편한 endpoint를 발견하여 제보드립니다.

원 URL: https://trace.cjlogistics.com/next/tracking.html?wblNo={송장번호}

송장 정보 API Endpoint: https://trace.cjlogistics.com/next/rest/selectTrackingWaybil.do

JSON response:
{
    "data": {
        "crgStDcd": "",
        "empno": "",
        "patnBranCd": "",
        "branCd": "",
        "rcvrClphno": "010-{개인정보 제거}",
        "wblNo": "{개인정보 제거}",
        "workHms": "",
        "acprRlpDcd": "",
        "repGoodsNm": "Switches",
        "workDt": "",
        "procBranTelNo": "",
        "sndrAddr": "서울특별시 강서구 공항동******",
        "patnBranTelNo": "",
        "rcvrAddr": "서울특별시 용산구******",
        "acprNm": "김*",
        "crgStDnm": "",
        "sndrNm": "에*",
        "branNm": "",
        "sndrClphno": "02-2665-****",
        "qty": "1",
        "crgStDcdVal": "",
        "goodsDtlNm": "",
        "acprRlpDnm": "본인",
        "rcvrNm": "김*",
        "patnBranNm": "",
        "empynm": ""
    },
    "resultCode": 200,
    "resultMessage": "성공"
}

배송 트래킹 API Endpoint: https://trace.cjlogistics.com/next/rest/selectTrackingDetailList.do

JSON response:
{
    "data": {
        "svcOutList": [
            {
                "crgStDcd": "11",
                "empno": "13411744",
                "patnBranCd": "",
                "branCd": "9596",
                "rcvrClphno": "",
                "wblNo": "{개인정보 제거}",
                "workHms": "20:47:47",
                "acprRlpDcd": "",
                "repGoodsNm": "",
                "workDt": "2024-06-08",
                "procBranTelNo": "010-2375-9952",
                "sndrAddr": "",
                "patnBranTelNo": "",
                "rcvrAddr": "",
                "acprNm": "",
                "crgStDnm": "집화처리",
                "sndrNm": "",
                "branNm": "글로벌직구팀직영(이기형)",
                "sndrClphno": "",
                "qty": "",
                "crgStDcdVal": "보내시는 고객님으로부터 상품을 인수받았습니다",
                "goodsDtlNm": "",
                "acprRlpDnm": "",
                "rcvrNm": "",
                "patnBranNm": "",
                "empynm": "이기형"
            },
            {
                "crgStDcd": "42",
                "empno": "607598",
                "patnBranCd": "X",
                "branCd": "V041",
                "rcvrClphno": "",
                "wblNo": "{개인정보 제거}",
                "workHms": "20:35:04",
                "acprRlpDcd": "",
                "repGoodsNm": "",
                "workDt": "2024-06-09",
                "procBranTelNo": "031-895-2584",
                "sndrAddr": "",
                "patnBranTelNo": "",
                "rcvrAddr": "",
                "acprNm": "",
                "crgStDnm": "간선하차",
                "sndrNm": "",
                "branNm": "군포BHub",
                "sndrClphno": "",
                "qty": "",
                "crgStDcdVal": "접수하신 물품이 중계점에 도착하였습니다",
                "goodsDtlNm": "",
                "acprRlpDnm": "",
                "rcvrNm": "",
                "patnBranNm": "",
                "empynm": "오토소터(small)"
            },
            {
                "crgStDcd": "R1",
                "empno": "607598",
                "patnBranCd": "4C92",
                "branCd": "V041",
                "rcvrClphno": "",
                "wblNo": "{개인정보 제거}",
                "workHms": "20:35:19",
                "acprRlpDcd": "",
                "repGoodsNm": "",
                "workDt": "2024-06-09",
                "procBranTelNo": "031-895-2584",
                "sndrAddr": "",
                "patnBranTelNo": "",
                "rcvrAddr": "",
                "acprNm": "",
                "crgStDnm": "행낭포장",
                "sndrNm": "",
                "branNm": "군포BHub",
                "sndrClphno": "",
                "qty": "",
                "crgStDcdVal": "물품을 행낭포장하였습니다",
                "goodsDtlNm": "",
                "acprRlpDnm": "",
                "rcvrNm": "",
                "patnBranNm": "",
                "empynm": "오토소터(small)"
            },
            {
                "crgStDcd": "41",
                "empno": "664415",
                "patnBranCd": "V020",
                "branCd": "V041",
                "rcvrClphno": "",
                "wblNo": "{개인정보 제거}",
                "workHms": "21:41:24",
                "acprRlpDcd": "",
                "repGoodsNm": "",
                "workDt": "2024-06-09",
                "procBranTelNo": "031-895-2584",
                "sndrAddr": "",
                "patnBranTelNo": "043-531-1261",
                "rcvrAddr": "",
                "acprNm": "",
                "crgStDnm": "간선상차",
                "sndrNm": "",
                "branNm": "군포BHub",
                "sndrClphno": "",
                "qty": "",
                "crgStDcdVal": "배송지역으로 상품이 이동중입니다.",
                "goodsDtlNm": "",
                "acprRlpDnm": "",
                "rcvrNm": "",
                "patnBranNm": "옥천Hub",
                "empynm": "상차B3"
            },
            {
                "crgStDcd": "42",
                "empno": "477712",
                "patnBranCd": "V041",
                "branCd": "V020",
                "rcvrClphno": "",
                "wblNo": "{개인정보 제거}",
                "workHms": "01:53:12",
                "acprRlpDcd": "",
                "repGoodsNm": "",
                "workDt": "2024-06-10",
                "procBranTelNo": "043-531-1261",
                "sndrAddr": "",
                "patnBranTelNo": "031-895-2584",
                "rcvrAddr": "",
                "acprNm": "",
                "crgStDnm": "간선하차",
                "sndrNm": "",
                "branNm": "옥천Hub",
                "sndrClphno": "",
                "qty": "",
                "crgStDcdVal": "접수하신 물품이 중계점에 도착하였습니다",
                "goodsDtlNm": "",
                "acprRlpDnm": "",
                "rcvrNm": "",
                "patnBranNm": "군포BHub",
                "empynm": "하차B_10"
            },
            {
                "crgStDcd": "42",
                "empno": "637134",
                "patnBranCd": "V020",
                "branCd": "V020",
                "rcvrClphno": "",
                "wblNo": "{개인정보 제거}",
                "workHms": "01:54:20",
                "acprRlpDcd": "",
                "repGoodsNm": "",
                "workDt": "2024-06-10",
                "procBranTelNo": "043-531-1261",
                "sndrAddr": "",
                "patnBranTelNo": "043-531-1261",
                "rcvrAddr": "",
                "acprNm": "",
                "crgStDnm": "간선하차",
                "sndrNm": "",
                "branNm": "옥천Hub",
                "sndrClphno": "",
                "qty": "",
                "crgStDcdVal": "접수하신 물품이 중계점에 도착하였습니다",
                "goodsDtlNm": "",
                "acprRlpDnm": "",
                "rcvrNm": "",
                "patnBranNm": "옥천Hub",
                "empynm": "4반신설초입"
            },
            {
                "crgStDcd": "41",
                "empno": "571008",
                "patnBranCd": "V116",
                "branCd": "V020",
                "rcvrClphno": "",
                "wblNo": "{개인정보 제거}",
                "workHms": "01:59:15",
                "acprRlpDcd": "",
                "repGoodsNm": "",
                "workDt": "2024-06-10",
                "procBranTelNo": "043-531-1261",
                "sndrAddr": "",
                "patnBranTelNo": "02-749-4212",
                "rcvrAddr": "",
                "acprNm": "",
                "crgStDnm": "간선상차",
                "sndrNm": "",
                "branNm": "옥천Hub",
                "sndrClphno": "",
                "qty": "",
                "crgStDcdVal": "배송지역으로 상품이 이동중입니다.",
                "goodsDtlNm": "",
                "acprRlpDnm": "",
                "rcvrNm": "",
                "patnBranNm": "용산1Sub",
                "empynm": "B-83-15"
            },
            {
                "crgStDcd": "42",
                "empno": "575923",
                "patnBranCd": "V116",
                "branCd": "V116",
                "rcvrClphno": "",
                "wblNo": "{개인정보 제거}",
                "workHms": "09:43:40",
                "acprRlpDcd": "",
                "repGoodsNm": "",
                "workDt": "2024-06-10",
                "procBranTelNo": "02-749-4212",
                "sndrAddr": "",
                "patnBranTelNo": "02-749-4212",
                "rcvrAddr": "",
                "acprNm": "",
                "crgStDnm": "간선하차",
                "sndrNm": "",
                "branNm": "용산1Sub",
                "sndrClphno": "",
                "qty": "",
                "crgStDcdVal": "접수하신 물품이 중계점에 도착하였습니다",
                "goodsDtlNm": "",
                "acprRlpDnm": "",
                "rcvrNm": "",
                "patnBranNm": "용산1Sub",
                "empynm": "휠소터_2라인(용산1Sub)"
            },
            {
                "crgStDcd": "82",
                "empno": "639959",
                "patnBranCd": "",
                "branCd": "9568",
                "rcvrClphno": "",
                "wblNo": "{개인정보 제거}",
                "workHms": "10:31:23",
                "acprRlpDcd": "",
                "repGoodsNm": "",
                "workDt": "2024-06-10",
                "procBranTelNo": "010-{개인정보 제거}",
                "sndrAddr": "",
                "patnBranTelNo": "",
                "rcvrAddr": "",
                "acprNm": "",
                "crgStDnm": "배송출발",
                "sndrNm": "",
                "branNm": "서울용산랜드마크",
                "sndrClphno": "",
                "qty": "",
                "crgStDcdVal": "고객님의 상품을 배송할 예정입니다.(12~14시)(배송담당 : 김{개인정보 제거} 010-{개인정보 제거})",
                "goodsDtlNm": "",
                "acprRlpDnm": "",
                "rcvrNm": "",
                "patnBranNm": "",
                "empynm": "김{개인정보 제거}"
            },
            {
                "crgStDcd": "91",
                "empno": "639959",
                "patnBranCd": "",
                "branCd": "9568",
                "rcvrClphno": "",
                "wblNo": "{개인정보 제거}",
                "workHms": "12:18:16",
                "acprRlpDcd": "",
                "repGoodsNm": "",
                "workDt": "2024-06-10",
                "procBranTelNo": "010-{개인정보 제거}",
                "sndrAddr": "",
                "patnBranTelNo": "",
                "rcvrAddr": "",
                "acprNm": "",
                "crgStDnm": "배송완료",
                "sndrNm": "",
                "branNm": "서울용산랜드마크",
                "sndrClphno": "",
                "qty": "",
                "crgStDcdVal": "고객님의 상품이 배송완료 되었습니다.(담당사원 : 김{개인정보 제거} 010-{개인정보 제거})",
                "goodsDtlNm": "",
                "acprRlpDnm": "",
                "rcvrNm": "",
                "patnBranNm": "인수자 : (본인)김*",
                "empynm": "김{개인정보 제거}"
            }
        ]
    },
    "resultCode": 200,
    "resultMessage": "성공"
}

사용방법:

  • POST요청을 urlencoded form 형식으로 wblNo 키에 송장번호를 넣어서 날리면 됩니다. 두 엔드포인트 모두 동일합니다.
  • 별다른 csrf 토큰이나 쿠키는 필요하지 않습니다.
  • 필요 헤더는 Content-Type, Content-Length, Host 만 넣으면 됩니다.
  • 쿠키값이 없어도 정상적으로 response를 돌려주는 것을 확인했습니다.

특이사항:

  • 기존 소스코드 내 parseStatusCode() 부분(배송 단계 코드)은 트래킹 API의 응답의 crgStDcd 변수를 쓰시면 될 것 같습니다.
  • 91은 배송완료, 82는 최종 배송 등 거의 동일합니다만, 행낭포장은 R1으로 표기되는 등 일부 수정이 필요해보입니다.

제가 TypeScript는 익숙치 않아서 직접 코드를 짜보진 못했습니다. 그래도 현재 사용중인 엔드포인트보다 쿠키나 토큰을 관리할 필요가 없고, 더 많은 정보를 제공하기에 endpoint 업데이트 요청해봅니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant