公司ERP系统需要实现快递物流运输状态跟踪。有用过免费的爱快递,快递100,快递鸟。
爱快递免费2000次每天,普通用很不错了。返回的快递状态比较多,如派件中,拒收,退件,疑难件等。响应速度略慢。
快递100,常用的快递要收费。
快递鸟功能非常强大,免费,可以随时查询快递轨迹,也可以推送快递状态,很强大很方便。直接上实现代码。直接上代码:
这是开发的快递鸟推送的快递信息接口,接收数据处理数据。这里method一定要post
@RequestMapping(value = "tuisong",method=RequestMethod.POST)@ResponseBodypublic Map tuisong(String RequestData,String RequestType,String DataSign) {RequestData=Encodes.unescapeHtml(RequestData);Map result=new HashMap();//判断是从快递鸟进入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 shipList=Lists.newArrayList();Ship ship=null;for(int i=0;i
这里是个工具类,提供静态方法。KdniaoUtils.java
public class KdniaoUtils {//DEMOpublic static void main(String[] args) throws UnsupportedEncodingException, Exception {}//电商IDprivate static String EBusinessID="1283391";//电商加密私钥,快递鸟提供,注意保管,不要泄漏private static String AppKey="9df9507a-62fa-47f3-9227-bdd02b95ccf1";//请求urlprivate static String ReqURL="http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx"; public static Map StateMap=new HashMap();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;}}/*** 快递物流轨迹跟踪* @param ship* @return*/public static Map trace(Ship ship){Map map = new HashMap();try {String result=getOrderTracesByJson(ship.getExpress().getKdniao(),ship.getExpressNo());JSONObject dataJson = new JSONObject(result);if(dataJson.getBoolean("Success")){map.put("errCode",0);String state=dataJson.getString("state");map.put("status",getShipStatus(state));map.put("statusName",StateMap.containsKey(state)?StateMap.get(state):state);JSONArray list = (JSONArray) dataJson.get("Traces");if(list!=null&&list.length()>0) {List
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!