web前端如何用快递鸟开发查询快递api接口

2020-12-20 07:32

阅读:681

标签:shm   oid   request   url   case   live   except   instance   错误   

快递查询接口是指快递查询网对外开放的应用程序接口,开发人员能够通过调用该接口与快递查询网进行交互,并基于该接口开发自己的快递查询应用程序。
技术图片
技术文档请参考快递鸟官网api:免费查询快递接口_100%安全保障_物流即时查询API-快递鸟请添加链接描述

(一)接入流程:

1、登录快递鸟官网注册页面注册快递鸟账号

网址:快递单号查询接口_电子面单_APIKey授权申请-快递鸟账号注册

2、登录快递鸟用户管理后台

网址:用户登录_快递鸟API让物流接口对接更简单

接口说明

(1)、接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):“application/x-www-form-urlencoded;charset=utf-8”。

(2)、指定的物流运单号选择相应的快递公司编码,格式不对或则编码错误都会返失败的信息。如EMS物流单号应选择快递公司编码(EMS)

(3)、 API测试地址:http://testapi.kdniao.cc:8081/api/dist

(4)、API正式地址:http://api.kdniao.cc/api/dist

(5)、定时推送新的物流信息

(6)、接口秘钥申请:快递鸟(http://www.kdniao.com/reg)

JSON请求

{

    "ShipperCode":"SF",

    "OrderCode":"SF201608081055208281",

    "LogisticCode":"3100707578976",

    "PayType":"1",

    "ExpType":"1",

    "CustomerName":"",

    "CustomerPwd":"",

    "MonthCode":"",

    "IsNotice":"0",

    "Sender":{

        "Name":"1255760",

        "Tel":"",

        "Mobile":"13700000000",

        "ProvinceName":"广东省",

        "CityName":"深圳市",

        "ExpAreaName":"福田区",

        "Address":"测试地址"    },

    "Receiver":{

        "Name":"1255760",

        "Tel":"",

        "Mobile":"13800000000",

        "ProvinceName":"广东省",

        "CityName":"深圳市",

        "ExpAreaName":"龙华新区",

        "Address":"测试地址2"    },

    "Commodity":[

        {

            "GoodsName":"书本"        }

    ]}

java请求:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import java.util.HashMap;import java.util.Map;import java.security.MessageDigest;

publicclass KdniaoSubscribeAPI {

    //DEMOpublicstaticvoid main(String[] args) {

        KdniaoSubscribeAPI api =new KdniaoSubscribeAPI();

        try {

            String result = api.orderTracesSubByJson();

            System.out.print(result);

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    //电商IDprivateString EBusinessID="请到快递鸟官网申请";

    //电商加密私钥,注意保管,不要泄漏privateString AppKey="请申请";

    //测试请求urlprivateString ReqURL ="http://testapi.kdniao.cc:8081/api/dist";

    //正式请求url

    //private String ReqURL = "http://api.kdniao.cc/api/dist";/**

    * Json方式  物流信息订阅

    * @throws Exception

    */public String orderTracesSubByJson() throws Exception{

        String requestData="{‘OrderCode‘: ‘SF201608081055208281‘,"+"‘ShipperCode‘:‘SF‘,"+"‘LogisticCode‘:‘3100707578976‘,"+"‘PayType‘:1,"+"‘ExpType‘:1,"+"‘CustomerName‘:‘‘,"+"‘CustomerPwd‘:‘‘,"+"‘MonthCode‘:‘‘,"+"‘IsNotice‘:0,"+"‘Cost‘:1.0,"+"‘OtherCost‘:1.0,"+"‘Sender‘:"+"{"+"‘Company‘:‘LV‘,‘Name‘:‘Taylor‘,‘Mobile‘:‘15018442396‘,‘ProvinceName‘:‘上海‘,‘CityName‘:‘上海‘,‘ExpAreaName‘:‘青浦区‘,‘Address‘:‘明珠路73号‘},"+"‘Receiver‘:"+"{"+"‘Company‘:‘GCCUI‘,‘Name‘:‘Yann‘,‘Mobile‘:‘15018442396‘,‘ProvinceName‘:‘北京‘,‘CityName‘:‘北京‘,‘ExpAreaName‘:‘朝阳区‘,‘Address‘:‘三里屯街道雅秀大厦‘},"+"‘Commodity‘:"+"[{"+"‘GoodsName‘:‘鞋子‘,‘Goodsquantity‘:1,‘GoodsWeight‘:1.0}],"+"‘Weight‘:1.0,"+"‘Quantity‘:1,"+"‘Volume‘:0.0,"+"‘Remark‘:‘小心轻放‘}";

        Mapparams=newHashMap();

        params.put("RequestData", urlEncoder(requestData,"UTF-8"));

        params.put("EBusinessID", EBusinessID);

        params.put("RequestType","1008");

        String dataSign=encrypt(requestData, AppKey,"UTF-8");

        params.put("DataSign", urlEncoder(dataSign,"UTF-8"));

        params.put("DataType","2");

        String result=sendPost(ReqURL,params);

        //根据公司业务处理返回的信息......return result;

    }

    /**

    * MD5加密

    * @param str 内容     

    * @param charset 编码方式

    * @throws Exception

    */    @SuppressWarnings("unused")

    private String MD5(String str, String charset) throws Exception {

        MessageDigest md = MessageDigest.getInstance("MD5");

        md.update(str.getBytes(charset));

        byte[] result = md.digest();

        StringBuffer sb =newStringBuffer(32);

        for(inti =0; i 0){

                          param.append("&");

                      }             

                      param.append(entry.getKey());

                      param.append("=");

                      param.append(entry.getValue());                   

                      System.out.println(entry.getKey()+":"+entry.getValue());

                  }

                  System.out.println("param:"+param.toString());

                  out.write(param.toString());

            }

            // flush输出流的缓冲out.flush();

            // 定义BufferedReader输入流来读取URL的响应in=new BufferedReader(

                    newInputStreamReader(conn.getInputStream(),"UTF-8"));

            String line;

            while((line =in.readLine()) !=null) {

                result.append(line);

            }

        } catch (Exception e) {         

            e.printStackTrace();

        }

        //使用finally块来关闭输出流、输入流        finally{try{

                if(out!=null){

                    out.close();

                }

                if(in!=null){

                    in.close();

                }

            }

            catch(IOException ex){

                ex.printStackTrace();

            }

        }

        return result.toString();

    }

    privatestaticchar[] base64EncodeChars =newchar[] {

            ‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘,‘G‘,‘H‘,

            ‘I‘,‘J‘,‘K‘,‘L‘,‘M‘,‘N‘,‘O‘,‘P‘,

            ‘Q‘,‘R‘,‘S‘,‘T‘,‘U‘,‘V‘,‘W‘,‘X‘,

            ‘Y‘,‘Z‘,‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,

            ‘g‘,‘h‘,‘i‘,‘j‘,‘k‘,‘l‘,‘m‘,‘n‘,

            ‘o‘,‘p‘,‘q‘,‘r‘,‘s‘,‘t‘,‘u‘,‘v‘,

            ‘w‘,‘x‘,‘y‘,‘z‘,‘0‘,‘1‘,‘2‘,‘3‘,

            ‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘+‘,‘/‘ };

    publicstaticString base64Encode(byte[] data) {

        StringBuffer sb =new StringBuffer();

        intlen = data.length;

        inti =0;

        int b1, b2, b3;

        while(i >>2]);

                sb.append(base64EncodeChars[(b1 &0x3) >>2]);

                sb.append(base64EncodeChars[((b1 &0x03) >>4)]);

                sb.append(base64EncodeChars[(b2 &0x0f) >>2]);

            sb.append(base64EncodeChars[((b1 &0x03) >>4)]);

            sb.append(base64EncodeChars[((b2 &0x0f) >>6)]);

            sb.append(base64EncodeChars[b3 &0x3f]);

        }

        return sb.toString();

    }}

web前端如何用快递鸟开发查询快递api接口

标签:shm   oid   request   url   case   live   except   instance   错误   

原文地址:https://blog.51cto.com/13914620/2542464


评论


亲,登录后才可以留言!