分享好友 维修大全首页 维修大全分类 切换频道

吉日象维修app

基于java的圆通快递单号自动识别api接口代码实例

2023-10-202080

一、产品介绍

输入运单号自动识别物流公司,实时返回对应物流公司编码。查询单号时,返回的结果可能存在一个或多个物流公司编码,mykuaidi管家大数据平台通过智能分析,实时更新单号库,保障物流公司编码准确率。自动识别物流公司。

基于java的<a href=圆通快递单号自动识别api接口代码实例_mykuaidi管家" decoding="async" width="1024" height="409" src="http://www.mykuaidi.com/wp-content/uploads/2022/04/快递单号识别-1-1024x409.png" alt="" class="wp-image-1840" srcset="http://www.mykuaidi.com/wp-content/uploads/2022/04/快递单号识别-1-1024x409.png 1024w, http://www.mykuaidi.com/wp-content/uploads/2022/04/快递单号识别-1-300x120.png 300w, http://www.mykuaidi.com/wp-content/uploads/2022/04/快递单号识别-1-768x307.png 768w, http://www.mykuaidi.com/wp-content/uploads/2022/04/快递单号识别-1.png 1123w" sizes="(max-width: 1024px) 100vw, 1024px" />

二、产品优势

实时查询:输入运单号自动识别物流公司编码,结合物流轨迹查询接口完成轨迹查询功能。(单号识别使用次数:3万次/天)

基于java的圆通快递单号自动识别api接口代码实例_mykuaidi管家

三、圆通快递单号自动识别接口实例

圆通快递单号识别地址:http://www.kdniao.com/

基于java的圆通快递单号自动识别api接口代码实例_mykuaidi管家
基于java的圆通快递单号自动识别api接口代码实例_mykuaidi管家

importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.io.OutputStreamWriter;

importjava.io.UnsupportedEncodingException;

importjava.net.HttpURLConnection;

importjava.net.URL;

importjava.net.URLEncoder;

importjava.security.MessageDigest;

importjava.util.HashMap;

importjava.util.Map;

publicclassKdApiOrderDistinguish {

    //DEMO

    publicstaticvoidmain(String[] args) {

        KdApiOrderDistinguish api = newKdApiOrderDistinguish();

        try{

            String result = api.getOrderTracesByJson(“3967950525457”);

            System.out.print(result);

        } catch(Exception e) {

            e.printStackTrace();

        }

    }

    //电商ID

    privateString EBusinessID=”请到mykuaidi管家官网申请http://www.kdniao.com/ServiceApply.aspx”;

    //电商加密私钥,mykuaidi管家提供,注意保管,不要泄漏

    privateString AppKey=”请到mykuaidi管家官网申请http://www.kdniao.com/ServiceApply.aspx”;

    //请求url

    privateString ReqURL=”http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx”;  

    

    publicString getOrderTracesByJson(String expNo) throwsException{

        String requestData= “{‘LogisticCode’:'”+ expNo + ‘}”;

        Map<String, String> params = newHashMap<String, String>();

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

        params.put(“EBusinessID”, EBusinessID);

        params.put(“RequestType”, “2002”);

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

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

        params.put(“DataType”, “2”);

        String result=sendPost(ReqURL, params);

        //根据公司业务处理返回的信息

        returnresult;

    }

    

    @SuppressWarnings(“unused”)

    privateString MD5(String str, String charset) throwsException {

        MessageDigest md = MessageDigest.getInstance(“MD5”);

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

        byte[] result = md.digest();

        StringBuffer sb = newStringBuffer(32);

        for(inti = 0; i < result.length; i++) {

            intval = result[i] & 0xff;

            if(val <= 0xf) {

                sb.append(“0”);

            }

            sb.append(Integer.toHexString(val));

        }

        returnsb.toString().toLowerCase();

    }

    

    privateString base64(String str, String charset) throwsUnsupportedEncodingException{

        String encoded = base64Encode(str.getBytes(charset));

        returnencoded;   

    }  

    @SuppressWarnings(“unused”)

    privateString urlEncoder(String str, String charset) throwsUnsupportedEncodingException{

        String result = URLEncoder.encode(str, charset);

        returnresult;

    }

    

    @SuppressWarnings(“unused”)

    privateString encrypt (String content, String keyValue, String charset) throwsUnsupportedEncodingException, Exception

    {

        if(keyValue != null)

        {

            returnbase64(MD5(content + keyValue, charset), charset);

        }

        returnbase64(MD5(content, charset), charset);

    }

     

    @SuppressWarnings(“unused”)

    privateString sendPost(String url, Map<String, String> params) {

        OutputStreamWriter out = null;

        BufferedReader in = null;       

        StringBuilder result = newStringBuilder();

        try{

            URL realUrl = newURL(url);

            HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();

            // 发送POST请求必须设置如下两行

            conn.setDoOutput(true);

            conn.setDoInput(true);

            // POST方法

            conn.setRequestMethod(“POST”);

            // 设置通用的请求属性

            conn.setRequestProperty(“accept”, “*/*”);

            conn.setRequestProperty(“connection”, “Keep-Alive”);

            conn.setRequestProperty(“user-agent”,

                    “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)”);

            conn.setRequestProperty(“Content-Type”, “application/x-www-form-urlencoded”);

            conn.connect();

            // 获取URLConnection对象对应的输出流

            out = newOutputStreamWriter(conn.getOutputStream(), “UTF-8”);

            // 发送请求参数           

            if(params != null) {

                  StringBuilder param = newStringBuilder();

                  for(Map.Entry<String, String> entry : params.entrySet()) {

                      if(param.length()>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 = newBufferedReader(

                    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();

            }

        }

        returnresult.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 = newStringBuffer();

        intlen = data.length;

        inti = 0;

        intb1, b2, b3;

        while(i < len) {

            b1 = data[i++] & 0xff;

            if(i == len)

            {

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

                sb.append(base64EncodeChars[(b1 & 0x3) << 4]);

                sb.append(“==”);

                break;

            }

            b2 = data[i++] & 0xff;

            if(i == len)

            {

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

                sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]);

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

                sb.append(“=”);

                break;

            }

            b3 = data[i++] & 0xff;

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

            sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]);

            sb.append(base64EncodeChars[((b2 & 0x0f) << 2) | ((b3 & 0xc0) >>> 6)]);

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

        }

        returnsb.toString();

    }

}

举报
打赏
物流包裹追踪怎么实现?一键掌握全流程!
物流包裹追踪已成为现代生活中不可或缺的服务。无论是电商购物、文件寄送还是跨国运输,消费者和企业都需要随时掌握物流动态。这

0评论2025-10-07483

物流API收费标准如何?2025年价格对比分析!
物流API收费标准解析与2025年价格对比 随着电子商务和数字化转型的加速,物流API成为企业优化供应链效率的核心工具。不同服务商

0评论2025-10-07711

实体店商家不退货找谁投诉?维权渠道汇总!
实体店商家拒绝退货时,许多消费者会陷入“投诉无门”的困境。如何高效维护自身合法权益?不同场景下的处理方式有哪些?哪些渠道

0评论2025-10-07268

菜鸟驿站取件全流程,轻松拿到心仪包裹
收到包裹到达通知后,先确认物流信息是否完整。当快递被投递至菜鸟驿站时,用户通常会通过短信、支付宝通知或购物平台消息接收到

0评论2025-10-07791

电商平台取件码管理:保障物流顺畅的关键
在电商物流体系中,包裹从仓库到消费者手中的过程需要经历多个环节,任何一个节点的低效或失误都可能影响整体配送体验。 取件码

0评论2025-10-07301

电子回单生成:让快递签收更规范便捷
快递行业的高速发展带来了业务量的指数级增长,传统纸质签收模式因效率低下、易丢失、信息回溯难等问题,逐渐难以适应市场需求。

0评论2025-10-07970

退运宝:商家退换货的得力助手
在电商行业蓬勃发展的今天,消费者对购物体验的要求愈发严格,尤其是退换货环节的效率与便捷性,已成为影响用户满意度和复购率的

0评论2025-10-07996

重量体积查询API对接技巧,提升物流信息准确性
在物流行业的高效运转中,货物重量与体积数据的准确性直接影响运输成本核算、仓储管理及配送效率。随着数字化工具的普及,重量体

0评论2025-10-07388

快递费用核算全流程,商家必知的财务要点
在当今电商高速发展的背景下,快递费用已成为商家运营成本的重要构成。对于企业而言,科学管理物流开支不仅是控制成本的关键,更

0评论2025-10-07954

知乎热议:快递查询 API 接口哪家更胜一筹?
在电商与物流行业高速发展的今天,快递信息查询已成为企业服务链条的关键环节。无论是电商平台需要实时追踪包裹状态,还是物流企

0评论2025-10-07417

关于我们  |  网站留言
(c)2026 吉日象维修app www.mykuaidi.com