電商網站物流快遞單號查詢api接口申請案例

【場景需求描述】

電商平臺及ISV商家對物流api接口的需求有很多,今天我們主要分享的就是快遞鳥快遞單號查詢接口的對接指南,快遞單號查詢接口對接的應用場景有很多,很多場景會遇到,最主要的就是電商網站用戶打開“我的訂單”時調用此API顯示物流信息詳情,電商管理後臺的物流系統,客服在對賬前查詢所有運單的簽收狀態,並追蹤問題,電商平臺對商家物流管控,要求必須在多久快遞必須發出要看到攬件狀態,多久必須收到貨物看到簽收狀態,根據這些狀態對商家管控從而提升用戶的整體滿意度。
電商網站物流快遞單號查詢api接口申請案例
【對接使用流程】

1、註冊快遞鳥賬號並申請認證

2、快遞鳥根據單號和快遞公司查詢到物流軌跡狀態

3、快遞鳥將查詢到的物流軌跡狀態反饋給電商平臺或ISV服務商

4、電商平臺或ISV服務商接收數據並實時處理做數據展示或應用

快遞鳥功能非常強大,免費,可以隨時查詢快遞軌跡,也可以推送快遞狀態,很強大很方便。直接上實現代碼。直接上代碼:這是開發的快遞鳥推送的快遞信息接口,接收數據處理數據。這裏method一定要post

@RequestMapping(value = "tuisong",method=RequestMethod.POST)
    @ResponseBody
    public Map<String,Object> tuisong(String RequestData,String RequestType,String DataSign) {
         RequestData=Encodes.unescapeHtml(RequestData);
         Map<String,Object> result=new HashMap<String,Object>();
        //判斷是從快遞鳥進入
        if(!(RequestType.equals("101") && KdniaoUtils.isFromKdniao(RequestData, DataSign))){
            result.put("Success",false);
            result.put("Reason","不是快遞鳥推送來的數據。");
            return result;
        }
        JSONObject jsonObj=new JSONObject(RequestData);
         result.put("EBusinessID",jsonObj.getString("EBusinessID"));
         result.put("UpdateTime",jsonObj.getString("PushTime"));
         try {
             JSONArray jsonArray=jsonObj.getJSONArray("Data");
             List<Ship> shipList=Lists.newArrayList();
             Ship ship=null;
             for(int i=0;i<jsonArray.length();i++){
                jsonObj=jsonArray.getJSONObject(i);
                 if(!jsonObj.getBoolean("Success")){
                     continue;
                 }
                 ship=new Ship();
                 ship.setExpress(ErpUtils.getExpressByKdniao(jsonObj.getString("ShipperCode")));
                 ship.setExpressNo(jsonObj.getString("LogisticCode"));
                 String state=jsonObj.getString("State");
                 ship.setStatus(KdniaoUtils.getShipStatus(state));
                 if(ship.getStatus().equals(Ship.STATUS_SIGN)){
                     JSONArray array=jsonObj.getJSONArray("Traces");
                     JSONObject obj=array.getJSONObject(array.length()-1);
                     String time=obj.getString("AcceptTime");
                     ship.setSignTime(DateUtils.parseDate(time,"yyyy-MM-dd HH:mm:ss"));
                 }
                 shipList.add(ship);
              }
             shipService.updateStatus(shipList);
             result.put("Success", true);
         }catch (Exception e) {
             result.put("Success", false);
             result.put("Reason ", "解析數據失敗。");
             e.printStackTrace();
         }
        return result;

這裏是個工具類,提供靜態方法。KdniaoUtils.java
``public class KdniaoUtils {
//DEMO
public static void main(String[] args) throws UnsupportedEncodingException, Exception {
}
//電商ID
private static String EBusinessID="1283391";
//電商加密私鑰,快遞鳥提供,注意保管,不要泄漏
private static String AppKey="9df9507a-62fa-47f3-9227-bdd02b95ccf1";
//請求url
private static String ReqURL="http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx";
public static Map<String,String> StateMap=new HashMap<String,String>();
static{
StateMap.put("0", "沒有記錄");
StateMap.put("1", "已攬收");
StateMap.put("2", "運輸途中");
StateMap.put("201", "到達目的城市");
StateMap.put("3", "已簽收");
StateMap.put("4", "問題件");
}
// 物流狀態: 0-無軌跡,1-已攬收,2-在途中 201-到達派件城市,3-簽收,4-問題件
public static int getShipStatus(String state){
switch (state){
case "0":
return Ship.STATUS_SHIPPED;
case "1":
return Ship.STATUS_SHIPPED;
case "2":
return Ship.STATUS_ONTHEWAY;
case "201":
return Ship.STATUS_PAISONG;
case "3":
return Ship.STATUS_SIGN;
case "4":
return Ship.STATUS_DIFFICULT;
default:
return Ship.STATUS_SHIPPED;
}
}
/**

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章