广告
返回顶部
首页 > 资讯 > 精选 >如何使用快递单号物流查询接口通用API
  • 668
分享到

如何使用快递单号物流查询接口通用API

2023-06-02 16:06:08 668人浏览 独家记忆
摘要

这篇文章主要介绍了如何使用快递单号物流查询接口通用api,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。快递查询接口通用API是给发货电商用来实现查询快递物流轨迹功能的,接口对

这篇文章主要介绍了如何使用快递单号物流查询接口通用api,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

快递查询接口通用API是给发货电商用来实现查询快递物流轨迹功能的,接口对接前要先到快递鸟网站申请接口秘钥和APIKEY

快递API的应用场景与用途

最常见的应用场景如下:

(1)电商网站:例如B2C、团购、B2B、批发分销站、C2C、本地生活交易等网站。

(2)管理系统:订单处理平台、订货平台、发货平台、分销系统、渠道管理系统、客户管理系统、ERP等。

快递API的用途如下:

(1)让顾客登录网站后,直接在“我的订单”页面内就能看到订单的物流状态。

(2)自动筛选出“已签收”、“疑难件”等状态的单号,减轻物流跟单人员的压力。

(3)改变订单的状态和交易流程,例如单号变为“已签收”,就能让订单变为可以确认退换货等。

(4)评估选择快递公司,根据“已签收”的运单数,可以算出销售人员的业绩,且便于应对的结算。

(5)邮件、短信提醒用户运单的最新状态,可以安抚用户,也可以利用邮件短信二次营销。

对接要求:

(1)、查询接口支持按照运单号查询(单个查询,并发不超过10个/S)。

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

(3)、返回的物流跟踪信息按照发生的时间升序排列。

(4)、接口指令1002

(5)、接口提供:快递鸟

(6)、请求地址:Http://www.kdniao.com

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.security.MessageDigest;import java.util.HashMap;import java.util.Map; public class KdniaoTrackQueryAPI {        //DEMO    public static void main(String[] args) {        KdniaoTrackQueryAPI api = new KdniaoTrackQueryAPI();        try {            String result = api.getOrderTracesByJSON("ANE", "210001633605");            System.out.print(result);                    } catch (Exception e) {            e.printStackTrace();        }    }        //电商ID    private String EBusinessID="申请";    //电商加密私钥,注意保管,不要泄漏    private String AppKey="申请";    //请求url    private String ReqURL="http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx";             public String getOrderTracesByjson(String expCode, String expNo) throws Exception{        String requestData= "{'OrderCode':'','ShipperCode':'" + expCode + "','LoGISticCode':'" + expNo + "'}";                Map params = new HashMap();        params.put("RequestData", urlEncoder(requestData, "UTF-8"));        params.put("EBusinessID", EBusinessID);        params.put("RequestType", "1002");        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;    }         @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 = new StringBuffer(32);        for (int i = 0; i < result.length; i++) {            int val = result[i] & 0xff;            if (val <= 0xf) {                sb.append("0");            }            sb.append(Integer.toHexString(val));        }        return sb.toString().toLowerCase();    }            private String base64(String str, String charset) throws UnsupportedEncodingException{        String encoded = base64Encode(str.getBytes(charset));        return encoded;        }            @SuppressWarnings("unused")    private String urlEncoder(String str, String charset) throws UnsupportedEncodingException{        String result = URLEncoder.encode(str, charset);        return result;    }            @SuppressWarnings("unused")    private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exception    {        if (keyValue != null)        {            return base64(MD5(content + keyValue, charset), charset);        }        return base64(MD5(content, charset), charset);    }             @SuppressWarnings("unused")    private String sendPost(String url, Map params) {        OutputStreamWriter out = null;        BufferedReader in = null;                StringBuilder result = new StringBuilder();         try {            URL realUrl = new URL(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 = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");            // 发送请求参数                        if (params != null) {                  StringBuilder param = new StringBuilder();                   for (Map.Entry 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 = new BufferedReader(                    new InputStreamReader(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();    }            private static char[] base64EncodeChars = new char[] {         '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', '+', '/' };         public static String base64Encode(byte[] data) {         StringBuffer sb = new StringBuffer();         int len = data.length;         int i = 0;         int b1, 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]);         }         return sb.toString();     }}

感谢你能够认真阅读完这篇文章,希望小编分享的“如何使用快递单号物流查询接口通用API”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: 如何使用快递单号物流查询接口通用API

本文链接: https://www.lsjlt.com/news/230622.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用快递单号物流查询接口通用API
    这篇文章主要介绍了如何使用快递单号物流查询接口通用API,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。快递查询接口通用API是给发货电商用来实现查询快递物流轨迹功能的,接口对...
    99+
    2023-06-02
  • 快递物流单号识别查询api接口调用对接的示例分析
    小编给大家分享一下快递物流单号识别查询api接口调用对接的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!免费获取源码地址:https://github.c...
    99+
    2023-06-02
  • 快递鸟物流单号查询API的的用途和对接分析案例
    一、背景介绍      商品的交易模式这几十年来经历的转变:步行到就近的小集市交易——骑车到较远的大集市交易——坐车或开车到市区的大商场交易——上网交易(快递转运);当然这仅仅是个人观点,但这个发展的潮流趋势应...
    99+
    2023-06-05
  • .netcore如何写快递100的快递物流信息查询接口
    小编给大家分享一下.netcore如何写快递100的快递物流信息查询接口,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!快递100的物流信息查询接口,官方提供了一些...
    99+
    2023-06-14
  • 如何使用MDC快速查询应用接口全部执行日志
    这篇文章主要介绍“如何使用MDC快速查询应用接口全部执行日志”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用MDC快速查询应用接口全部执行日志”文章能帮助大家解决问题。MDCMDC是日志门面框...
    99+
    2023-07-04
  • 如何查询chatgpt-API-KEY接口的使用额度,代码php和python源码
    ChatGPT是一款由OpenAI开发的强大自然语言处理模型,可以帮助开发者实现各种自然语言相关的应用场景。为了能够使用ChatGPT,开发者需要通过OpenAI获取API-KEY,然后才能使用模型接口进行开发。 但是,在使用ChatG...
    99+
    2023-08-31
    chatgpt
  • 微信域名拦截查询之如何使用网址被屏蔽检测api接口
    这篇文章将为大家详细讲解有关微信域名拦截查询之如何使用网址被屏蔽检测api接口,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。背景公司是做文学相关的业务,在微信上做营销推广的时候,经常发现域名被微信屏蔽了,...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作