日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

顺丰丰桥接口之下订单接口,适用于第三方系统对接

發(fā)布時(shí)間:2024/3/26 windows 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 顺丰丰桥接口之下订单接口,适用于第三方系统对接 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

順豐豐橋接口之下訂單接口,適用于第三方系統(tǒng)對(duì)接

語言 JAVA
作者:不停留的風(fēng)
1、加Servlet訪問

@WebServlet("/XXX") public class TestCallExpressNewAPIService extends HttpServlet{//豐橋新沙箱測(cè)試顧客編碼 Yg4Zf06w_sxZs3A5D//校驗(yàn)碼 3Xdk1jqeG1Xod9nUXus8Op7DNOkchTnwprivate static final String CLIENT_CODE = "XX"; //此處替換為您在豐橋平臺(tái)獲取的顧客編碼private static final String CHECK_WORD = "XXXXXXXXXXXX";//此處替換為您在豐橋平臺(tái)獲取的校驗(yàn)碼//沙箱環(huán)境的地址private static final String CALL_URL_BOX = "https://sfapi-sbox.sf-express.com/std/service";//生產(chǎn)環(huán)境的地址private static final String CALL_URL_PROD = "https://sfapi.sf-express.com/std/service";

2、循環(huán)獲取數(shù)據(jù)庫的數(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(); //商品名稱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)打印面單的話,加個(gè)面單打印接口,然后下完單之后自動(dòng)調(diào)轉(zhuǎn)
需要自動(dòng)跳轉(zhuǎn)的話,記得加個(gè)時(shí)間間隔代碼喲,不然跳轉(zhuǎn)太快,面單打印會(huì)出問題。

try {Thread.sleep(3 * 1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();} //設(shè)置暫停的時(shí)間 3 秒

面單打印接口,后續(xù)我也會(huì)寫上
完整代碼下載:
https://download.csdn.net/download/weixin_48529185/12845771

總結(jié)

以上是生活随笔為你收集整理的顺丰丰桥接口之下订单接口,适用于第三方系统对接的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。