返回顶部
首页 > 资讯 > 精选 >如何使用快递单号物流查询接口通用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://lsjlt.com/news/230622.html(转载时请注明来源链接)

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

猜你喜欢
  • 如何使用快递单号物流查询接口通用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
  • .netcore 写快递100的快递物流信息查询接口的实现
    快递100的物流信息查询接口,官方提供了一些demo;还好官方提供的代码是.netcore版本写的,不过写的有点low;根据官方提供的代码,我按照.netcore 的风格重构了代码;...
    99+
    2024-04-02
  • 怎么用SpringBoot实现快递物流查询
    本篇内容介绍了“怎么用SpringBoot实现快递物流查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!快递物流查询注:需要购买快递物流查询...
    99+
    2023-06-25
  • 利用JavaScript模拟京东快递单号查询效果
    1、上面放大框开始是隐藏的,当输入单号后,就显示,并且里面的内容是输入框的内容的字体的放大 <!DOCTYPE html> <html lang="en">...
    99+
    2024-04-02
  • 如何使用MDC快速查询应用接口全部执行日志
    这篇文章主要介绍“如何使用MDC快速查询应用接口全部执行日志”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用MDC快速查询应用接口全部执行日志”文章能帮助大家解决问题。MDCMDC是日志门面框...
    99+
    2023-07-04
  • MySQL 普通查询、流式查询、游标查询以及使用 mybatis 如何实现
    MySQL 普通查询、流式查询、游标查询以及使用 mybatis 如何实现 MySQL 普通查询、流式查询、游标查询以及使用 mybatis 如何实现普通查询流式查询游标查询mybatis 如...
    99+
    2023-09-28
    mybatis java mysql
  • 使用MDC快速查询应用接口全部执行日志
    目录引言引言 对于每一个开发者来说,查询接口的执行日志都是一个高频率的操作,每当测试说接口有问题时,我们都需要去服务器或者日志系统上查报错的原因。 一般情况下,我们会通过对应的关键...
    99+
    2023-01-08
    MDC查询接口执行日志 MDC 查询接口
  • 如何查询chatgpt-API-KEY接口的使用额度,代码php和python源码
    ChatGPT是一款由OpenAI开发的强大自然语言处理模型,可以帮助开发者实现各种自然语言相关的应用场景。为了能够使用ChatGPT,开发者需要通过OpenAI获取API-KEY,然后才能使用模型接口进行开发。 但是,在使用ChatG...
    99+
    2023-08-31
    chatgpt
  • SpringBoot 如何使用Dataway配置数据查询接口
    目录Dataway介绍第一步:引入相关依赖第二步:配置 Dataway,并初始化数据表第三步:配置数据源第四步:把数据源设置到 Hasor 容器中第五步:在SprintBoot 中启...
    99+
    2024-04-02
  • 如何使用mysql连接查询、联合查询、子查询
    这篇文章主要讲解了如何使用mysql连接查询、联合查询、子查询,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。连接查询:连接查询就是将多个表联合起来查询,连接查询方式有内连接、外...
    99+
    2024-04-02
  • Insomnia教程:如何使用PHP API接口
    PHP API接口:如何使用Insomnia Insomnia是一款功能强大的API测试和调试工具,它能够帮助开发者快速、方便地测试和验证API接口,支持多种编程语言和协议,其中包括PHP。本文将介绍如何使用Insomnia测试...
    99+
    2024-01-22
    API PHP Insomnia
  • 微信域名拦截查询之如何使用网址被屏蔽检测api接口
    这篇文章将为大家详细讲解有关微信域名拦截查询之如何使用网址被屏蔽检测api接口,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。背景公司是做文学相关的业务,在微信上做营销推广的时候,经常发现域名被微信屏蔽了,...
    99+
    2023-06-05
  • 如何利用ASP接口实现大数据索引的快速查询?
    如何利用ASP接口实现大数据索引的快速查询? 随着大数据时代的到来,数据量的增长使得数据的查询变得越来越复杂和困难。这时候,我们需要一种快速高效的数据查询方式,这就是利用ASP接口实现大数据索引的快速查询。本文将会介绍如何利用ASP接口实现...
    99+
    2023-10-04
    接口 大数据 索引
  • 如何利用PHP的API接口快速处理数组?
    PHP是一门广泛应用的编程语言,特别是在Web开发领域。在PHP中,数组是一种非常常见的数据类型。处理数组是PHP开发人员的日常工作之一。API接口是一种常用的数据交互方式。本文将介绍如何利用PHP的API接口快速处理数组。 一、什么是AP...
    99+
    2023-10-09
    api 接口 数组
  • 如何用PHP编写简单的api数据接口
    目录一、编写接口所需几样工具或软件(均是win7+64位)二、安装后台开发环境三、正式编写接口四、总结一、编写接口所需几样工具或软件(均是win7+64位) 1.phpStudy、S...
    99+
    2024-04-02
  • PHP 如何使用 Elasticsearch 的 索引 API 接口
    目录 一、实战场景 二、知识点 PHP Elasticsearch 索引 index MySQL 三、菜鸟实战 一、实战场景 如何在 PHP 中使用 Elasticsearch 的索引 API 接口 二、知识点 PHP Elas...
    99+
    2023-08-31
    elasticsearch 大数据
  • MySQL如何在查询中使用通配符
    MySQL中可以使用通配符来进行模糊查询,常用的通配符有%和_。 %匹配任意多个字符,可以出现在字符串的任意位置。 _匹配单个字符...
    99+
    2024-03-06
    MySQL
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作