New Function #144
closed[ADMIN] Scheduler/Callback - delivery tracking (스마트 택배 배송추적)
Description
[Scheduler] delivery tracking
1.cron tab
- 12:00 every day
2.process
1) select target list
DB: st_order
condition:
st_mall.mall_type='online' AND
(
(order_status='OS02' (배송중) AND delivery_invoice_no is NOT empty(NULL))
OR
(order_status='OS30' (교환재배송중) AND redelivery_invoice_no is NOT empty(NULL))
)
2) call tracking request API (each selected target)
a) config properties
a-1) dev
delivery.api.tracking.domain=http://trace-api-dev.sweettracker.net:8102
delivery.api.tracking.tier=testuser
delivery.api.tracking.key=testuser
a-2) prod
delivery.api.tracking.domain=http://trace-api.sweettracker.net/
delivery.api.tracking.tier=
delivery.api.tracking.key=
b) API (refer to attach pdf > 3.3 운송장 추적 요청 API)
b-1) URL: POST {delivery.tracking.domain}/add_invoice
b-2) parameter
- num:
if order_status='OS02', {delivery_invoice_no} (after remove space or "-")
if order_status='OS30', {redelivery_invoice_no} (after remove space or "-")
- code:
if order_status='OS02', {delivery_company_code}
if order_status='OS30', {redelivery_company_code}
- fid :
if order_status='OS02', "OS02:" + {order_no}
if order_status='OS30', "OS30:" + {order_no}
- callback_url: {site.domain}/delivery/tracking_receive
- callback_type: "json"
- tier: {delivery.api.tracking.tier}
- key: {delivery.api.key}
- type: "json"
3) log
a) if API call success
- leave log: level(DEBUG), message: "[Scheduler] DeliveryTracking Request Success: num={num},fid={fid}"
b) if API call fails
- leave log: level(ERROR), message: "[Scheduler] DeliveryTracking Request Fail: num={num},fid={fid},e_code={e_code},e_message={e_message}"
[Callback] delivery tracking
1.API (refer to attach pdf > 3.5 운송장 추적정보 수신API(Callback_URL))
1) URL: POST {site.domain}/delivery/tracking_receive
- permit all
2.process
1) get fid / invoice_no / level parameter
- parse fid and get order_status and order_no (ex: OS02:231108180642UHFS)
- leave log: level(DEBUG), message: "[Scheduler] DeliveryTracking Callback Receive: fid={fid},invoice_no={invoice_no},level={level}"
2) select order
DB: st_order
conditions: order_no={order_no param} AND order_status={order_status param}
3) if no select data, break
4) update order status
4-1) if {order_status param} = 'OS02'
a) if st_oder.delivery_invoice_no = {invoice_no param} and {level param} = 6
- UPDATE st_order
SET order_status='OS03' (배송완료), mod_date={current datetime}
condition: order_no={order_no param}
4-2) if {order_status param} = 'OS30'
a) if st_oder.redelivery_invoice_no = {invoice_no param} and {level param} = 6
- UPDATE st_order
SET order_status='OS31' (교환완료), mod_date={current datetime}
condition: order_no={order_no param}
4-3) leave log
level(DEBUG), message: "[Scheduler] DeliveryTracking Callback Process: order_no={order_no},order_status={updated order_status}"
Files
Updated by Deca Park over 1 year ago
- Subject changed from [ADMIN] Scheduler - delivery tracking (배송추적) to [ADMIN] Scheduler/Callback - delivery tracking (배송추적)
Updated by bryant bryant over 1 year ago
- Status changed from New to Resolved
- Assignee changed from bryant bryant to Deca Park
Updated by Deca Park over 1 year ago
[Callback] delivery tracking callback
1.URL is called
- method: POST
- encoding : UTF-8 (we should consider ??)
2.Logic
1) select order
- find by just orderNo (currently, it's search with orderNo + orderStatus)
2) not found
- set message like "fail - invalid fid (fid={fid value})"
Updated by Deca Park over 1 year ago
- Status changed from Resolved to Feedback
- Assignee changed from Deca Park to bryant bryant
Updated by bryant bryant over 1 year ago
- Status changed from Feedback to Resolved
- Assignee changed from bryant bryant to Deca Park
Updated by Deca Park over 1 year ago
- File delivery_tracking_1.png delivery_tracking_1.png added
[Callback] delivery tracking
1.Response
- replace "success" with "code"
[format]
{
"code":true,
"message":"success"
}
Updated by Jisoo Choi 7 months ago
- Status changed from Closed to In Progress
현재 배송 추적이 되지 않고 있어서 확인을 부탁드리고 싶습니다.
혹시 몰라 개발, 운영 모두 진행해봤으나 둘 다 추적이 되지 않는 것 같습니다.
이전(11월)에 응답 처리 완료했던 이력을 전달 드립니다.
2023-11-14 17:43:00 2774198268 [pool-4439812-thread-1] INFO c.s.t.agent.job.SyncWorker_New - http://210.123.124.139:8084/delivery/tracking_receive : {"code":true,"message":"success"}
[(현재) 테스트 정보]
- 개발: http://210.123.124.139:8084/onlineOrder/240807180213XLCI?menuCode=M6004
- 운영: http://plus.storyway.co.kr/admin/onlineOrder/240807181007SCQF?menuCode=M6004
*스플 주문 상태는 '배송중'이고, 실제 택배사 기준으로는 '배송완료' 처리된 주문입니다. 익일 낮 12시가 넘어서 확인했으나 상태가 자동으로 변경되지 않은 것 같습니다.
**실제 택배사 상태: (CJ 대한통운 686652842501) https://st.sweettracker.co.kr/#/parcel
[배송 추적 API 운영 서버 설정 및 키]
- domain=http://trace-api.sweettracker.net/
- tier=korailretail
- key=nlUqBxlKRgS0pgMWCrGM1Q
- white IP 등록 요청 IP , 포트: 80,443
- 추적 OutBound IP: (운영 서버) 14.129.18.111
- 등록(요청) OutBound IP: (운영 서버) WAS1: 223.130.173.153 / WAS2: 223.130.172.101
*해당 키는 후불 키라서 만료되거나 한 이슈는 아닌 것 같습니다. 배송 조회 키와 다르게 만료 여부 등을 제가 확인할 수 없어서 확인 부탁드립니다.
Updated by Jisoo Choi 6 months ago
- Subject changed from [ADMIN] Scheduler/Callback - delivery tracking (배송추적) to [ADMIN] Scheduler/Callback - delivery tracking (스마트 택배 배송추적)
Updated by Jisoo Choi 6 months ago
운영 서버 확인을 위해 테스트 데이터를 생성한 상태입니다.
- URL: http://plus.storyway.co.kr/admin/onlineOrder/240826100841KTJE?menuCode=M6004
- 스토리 쇼핑 주문번호: 240826100841KTJE
*해당 페이지에서 배송 상태 조회 시에도 정상적으로 '배송 완료'로 확인되고 있습니다.
Updated by Deca Park 6 months ago
[확인 결과]
1.운영서버 에러 로그
2024-08-24 12:02:10,880 ERROR [com.stoneitgt.admin.services.DeliveryTrackingService] Connect to trace-api.sweettracker.net:80 [trace-api.sweettracker.net/14.129.18.52] failed: Connection timed out (Connection timed out)
java.net.ConnectException: Connection timed out (Connection timed out)
2.조치 사항
- 배송업체에 OutBound IP 를 web-lb(웹 로드밸런스) IP: 211.188.64.180 등록 요청해야 될 것으로 보임
Updated by Jisoo Choi 6 months ago
- Assignee changed from Jisoo Choi to Deca Park
ip는 등록 완료된 상태인데, 현재 배송업체 쪽에서도 API 정상 수신이 아닌 것으로 보인다고 합니다.
아래의 url로 저희를 호출하는 IP를 체크할 수 있으니 귀사 실제 서버에서 호출 하시어 IP 확인부탁드립니다.
- http://trace-api-dev.sweettracker.net:8102/checkip
Updated by Deca Park 6 months ago
- Assignee changed from Deca Park to Jisoo Choi
[확인 결과]
was 서버에서 http://trace-api.sweettracker.net/ 접근이 안됨 (방화벽에 막힌 것 같음)
Updated by Jisoo Choi 6 months ago
- Assignee changed from Jisoo Choi to Deca Park
현재 방화벽 허용 처리는 완료된 상태라고 하는데, 배송 추적이 정상적으로 안 되는 것 같아서 확인을 부탁드리고 싶습니다.
테스트 데이터 (운영 서버)
- 링크 URL: http://plus.storyway.co.kr/admin/onlineOrder/240909181853DZZP?menuCode=M6004
- 주문번호: 240909181853DZZP
Updated by Deca Park 6 months ago
- Assignee changed from Deca Park to Jisoo Choi
[확인 내용]
배송업체의 배송추적서버 (http://trace-api.sweettracker.net) 에 was001/was002 IP 추가 요청해 주기 바랍니다
- was001 : 211.188.34.160
- was002 : 211.188.32.144
Updated by Jisoo Choi 5 months ago
- Assignee changed from Jisoo Choi to Deca Park
WAS001, WAS002 모두 IP 추가 완료되었는데, 배송완료 처리가 되지 않아서 확인을 부탁드리고 싶습니다.
테스트 데이터 (운영 서버)
- 링크 URL: http://plus.storyway.co.kr/admin/onlineOrder/240909181853DZZP?menuCode=M6004
- 주문번호: 240909181853DZZP
Updated by Deca Park 5 months ago
[Real server log]
application-2024-09-13-1.log:2024-09-13 12:00:00,863 INFO [com.stoneitgt.admin.services.DeliveryTrackingService] [Scheduler] DeliveryTracking addInvoice requestUrl: http://trace-api.sweettracker.net//add_invoice
application-2024-09-13-1.log:2024-09-13 12:00:00,863 INFO [com.stoneitgt.admin.services.DeliveryTrackingService] [Scheduler] DeliveryTracking addInvoice queryParams: num=39013687392&code=06&fid=OS02%3A240910203522BYLH&callback_url=https%3A%2F%2Fplus.storyway.co.kr%2Fadmin%2Fdelivery%2Ftracking_receive&callback_type=json&tier=korailretail&key=nlUqBxlKRgS0pgMWCrGM1Q&type=json
application-2024-09-13-2.log:2024-09-14 09:01:24,008 INFO [com.stoneitgt.admin.controller.DeliveryTrackingController] [Scheduler] DeliveryTracking Callback Process: fail - invalid fid(fid=null)