顺丰丰桥接口之下订单接口,适用于第三方系统对接
生活随笔
收集整理的這篇文章主要介紹了
顺丰丰桥接口之下订单接口,适用于第三方系统对接
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
順豐豐橋接口之下訂單接口,適用于第三方系統(tǒng)對(duì)接
語(yǔ)言 JAVA
作者:不停留的風(fēng)
1、加Servlet訪(fǎng)問(wèn)
2、循環(huán)獲取數(shù)據(jù)庫(kù)的數(shù)據(jù)
Fy_OrderDao fod=new Fy_OrderDao();List<FYOrder> a=fod.findAll();for(int i=0;a.size()>i;i++){//商品信息 cargoDetailsString adgroup_name=a.get(i).getadgroup_name(); //商品名稱(chēng)String total_price=a.get(i).gettotal_price(); //總價(jià)double quantity=1.0;//數(shù)量String unit1="個(gè)"; //單位........3、根據(jù)豐橋指定的格式進(jìn)行數(shù)據(jù)傳輸
//第三層//cargoDetailsJSONObject obj1 = new JSONObject();obj1.put("amount", total_price);obj1.put("count", quantity);obj1.put("name", adgroup_name);obj1.put("unit", unit1);obj1.put("volume", volume1);obj1.put("weight", weight1);//COD代收貨款String value1=a.get(i).gettotal_price();JSONObject obj4 = new JSONObject();obj4.put("name", "COD");obj4.put("value", value1);//contactInfoList //寄件方地址JSONObject obj2 = new JSONObject();obj2.put("address", address1);obj2.put("city", city1);obj2.put("company", company1);obj2.put("contact", contact1);obj2.put("contactType", contactType1);obj2.put("county", county1);obj2.put("mobile", mobile1);obj2.put("province", province1);//收件方地址JSONObject obj3 = new JSONObject();obj3.put("address", address2);obj3.put("city", city2);obj3.put("contact", contact2);obj3.put("county", county2);obj3.put("contactType", contactType2);obj3.put("mobile", mobile2);obj3.put("province", province2);//第二層//cargoDetailsJSONArray js1=new JSONArray();js1.add(0, obj1);//contactInfoListJSONArray js2=new JSONArray();js2.add(0, obj2);js2.add(1, obj3);//CODJSONArray js3=new JSONArray();js3.add(0,obj4);//第一層JSONObject obj = new JSONObject();obj.put("cargoDetails", js1);obj.put("contactInfoList", js2);obj.put("expressTypeId", expressTypeId1);obj.put("isOneselfPickup", isOneselfPickup1);obj.put("language", language1);obj.put("monthlyCard", monthlyCard1);obj.put("orderId", orderId1);obj.put("parcelQty", parcelQty1);obj.put("payMethod", payMethod1);obj.put("totalWeight", totalWeight1);String spare7=a.get(i).getspare7();String sss="貨到付款";System.out.print(spare7+"--"+sss);if(spare7.equals(sss)){ obj.put("COD", js3);}else{System.out.print("");}//整合String rs;rs = new Gson().toJson(obj);4、調(diào)用接口,獲取返回的訂單數(shù)據(jù)
EspServiceCode testService = EspServiceCode.EXP_RECE_CREATE_ORDER; //下訂單// EspServiceCode testService = EspServiceCode.EXP_RECE_SEARCH_ORDER_RESP; //查訂單// EspServiceCode testService = EspServiceCode.EXP_RECE_UPDATE_ORDER;//訂單取消// EspServiceCode testService = EspServiceCode.EXP_RECE_FILTER_ORDER_BSP;//訂單篩選// EspServiceCode testService = EspServiceCode.EXP_RECE_SEARCH_ROUTES;//查路由// EspServiceCode testService = EspServiceCode.EXP_RECE_GET_SUB_MAILNO;//子單號(hào)// EspServiceCode testService = EspServiceCode.EXP_RECE_QUERY_SFWAYBILL;//查運(yùn)費(fèi)CallExpressServiceTools client=CallExpressServiceTools.getInstance(); // set common headerMap<String, String> params = new HashMap<String, String>();String timeStamp = String.valueOf(System.currentTimeMillis());String msgData =new Gson().toJson(obj);params.put("partnerID", CLIENT_CODE); // 顧客編碼 ,對(duì)應(yīng)豐橋上獲取的clientCodeparams.put("requestID", UUID.randomUUID().toString().replace("-", ""));params.put("serviceCode",testService.getCode());// 接口服務(wù)碼params.put("timestamp", timeStamp); params.put("msgData",msgData); params.put("msgDigest", client.getMsgDigest(msgData,timeStamp,CHECK_WORD));// System.out.println(params.get("requestID"));long startTime = System.currentTimeMillis();System.out.println("====調(diào)用請(qǐng)求:" + params.get("msgData"));String result = HttpClientUtil.post(CALL_URL_PROD, params);System.out.println("====調(diào)用豐橋的接口服務(wù)代碼:" + String.valueOf(testService.getCode()) + " 接口耗時(shí):"+ String.valueOf(System.currentTimeMillis()-startTime)+"====");System.out.println("===調(diào)用地址 ==="+CALL_URL_PROD);System.out.println("===顧客編碼 ==="+CLIENT_CODE);System.out.println("===返回結(jié)果:" +result);5、對(duì)返回的接口進(jìn)行解析存儲(chǔ)
JSONObject job=(JSONObject) JSONObject.fromObject(result);String aa=(String) job.get("apiResultData");String aa2=aa.substring(1,aa.length()-1);// System.out.print("測(cè)試2"+aa2);JSONObject job2=(JSONObject) JSONObject.fromObject(aa2);JSONObject job4=(JSONObject) JSONObject.fromObject(job2.get("msgData"));JSONArray jay=new JSONArray().fromObject(job4.get("routeLabelInfo"));JSONObject sonObject = jay.getJSONObject(0);JSONObject dataObject = sonObject.getJSONObject("routeLabelData");String waybillNo = dataObject.getString("waybillNo");String sourceTransferCode=dataObject.getString("sourceTransferCode");String sourceCityCode=dataObject.getString("sourceCityCode");String sourceDeptCode=dataObject.getString("sourceDeptCode");String sourceTeamCode=dataObject.getString("sourceTeamCode");String destCityCode=dataObject.getString("destCityCode");String destDeptCode=dataObject.getString("destDeptCode");String destTeamCode=dataObject.getString("destTeamCode");String destTransferCode=dataObject.getString("destTransferCode");String destRouteLabel=dataObject.getString("destRouteLabel");String proName=dataObject.getString("proName");String cargoTypeCode=dataObject.getString("cargoTypeCode");.......需要自動(dòng)打印面單的話(huà),加個(gè)面單打印接口,然后下完單之后自動(dòng)調(diào)轉(zhuǎn)
需要自動(dòng)跳轉(zhuǎn)的話(huà),記得加個(gè)時(shí)間間隔代碼喲,不然跳轉(zhuǎn)太快,面單打印會(huì)出問(wèn)題。
面單打印接口,后續(xù)我也會(huì)寫(xiě)上
完整代碼下載:
https://download.csdn.net/download/weixin_48529185/12845771
總結(jié)
以上是生活随笔為你收集整理的顺丰丰桥接口之下订单接口,适用于第三方系统对接的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 机器学习入门目标检测之印章检测和分类
- 下一篇: 黄金流程—运费系统