Skip to content
  • Categories
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Flatly)
  • No Skin
Collapse

Odoo 中文社区

  1. Home
  2. Categories
  3. 技术之美
  4. 免费顺丰快递单号查询电子面单api接口对接(快递鸟案例)

免费顺丰快递单号查询电子面单api接口对接(快递鸟案例)

Scheduled Pinned Locked Moved 技术之美
1 Posts 1 Posters 1.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    fire70
    wrote on last edited by
    #1

    顺丰目前提供了两种对接方式: 一种是开发者自助对接,需要注册丰桥账户后,申请成为开发者,然后上传电子面单等操作,较为繁琐; 还有一种方式就是这里要重点介绍的,第三方软件对接(例如快递鸟),对接起来非常方便。
    替代文字
    物流轨迹查询-使用的物流单号和快递单号即可实现查询物流信息。 对接在电商网站或ERP系统上后,仅输入单号就可以查询物流,不需要物流编码。是通过两个接口实现的,一个是快递物流查询接口,一个是单号识别的接口

    接口提供:快递鸟
    接口名称:即时查询接口+单号识别接口
    编写语言:C#
    顺丰快递单号接口通过快递鸟接口对接简单方便,顺丰速运快递查询接口API和电子面单接口可以通过快递鸟对接,通过顺丰单号和手机号后四位查询轨迹信息,如果是通过快递鸟下单获得的顺丰单号,可通过单号直接查询,具体下载快递鸟接口技术文档查看接口说明。
    即时查询接口demo:
    using System;
    usingSystem.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Net;
    using System.IO;

    namespace KdGoldAPI
    {
    public class KdApiSearchDemo
    {
    //电商ID
    private string EBusinessID = "??????";
    //电商加密私钥,注意保管,不要泄漏
    private string AppKey = "??????";
    //请求url
    private string ReqURL ="http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx";

        /// 
    
        /// Json方式 查询订单物流轨迹
        /// 
    
        /// 
        public string getOrderTracesByJson()
        {
            string requestData ="{'OrderCode':'','ShipperCode':'SF','LogisticCode':'589707398027'}";
    
            Dictionaryparam = new Dictionary();
            param.Add("RequestData",HttpUtility.UrlEncode(requestData, Encoding.UTF8));
            param.Add("EBusinessID",EBusinessID);
            param.Add("RequestType","1002");
            string dataSign =encrypt(requestData, AppKey, "UTF-8");
            param.Add("DataSign",HttpUtility.UrlEncode(dataSign, Encoding.UTF8));
            param.Add("DataType","2");
    
            string result = sendPost(ReqURL,param);
    
            //根据公司业务处理返回的信息......
    
            return result;
        }
    
        /// 
    
        /// Post方式提交数据,返回网页的源代码
        /// 
    
        /// 发送请求的 URL
        /// 请求的参数集合
        /// 远程资源的响应结果
        private string sendPost(string url,Dictionary param)
        {
            string result = "";
            StringBuilder postData = newStringBuilder();
            if (param != null &¶m.Count > 0)
            {
                foreach (var p in param)
                {
                    if (postData.Length > 0)
                    {
                        postData.Append("&");
                    }
                    postData.Append(p.Key);
                   postData.Append("=");
                    postData.Append(p.Value);
                }
            }
            byte[] byteData =Encoding.GetEncoding("UTF-8").GetBytes(postData.ToString());
            try
            {
    
                HttpWebRequest request =(HttpWebRequest)WebRequest.Create(url);
                request.ContentType ="application/x-www-form-urlencoded";
                request.Referer = url;
                request.Accept ="*/*";
                request.Timeout = 30 * 1000;
                request.UserAgent ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 
    

    3.0.4506.2152; .NET CLR3.5.30729)";
    request.Method ="POST";
    request.ContentLength =byteData.Length;
    Stream stream =request.GetRequestStream();
    stream.Write(byteData, 0,byteData.Length);
    stream.Flush();
    stream.Close();
    HttpWebResponse response =(HttpWebResponse)request.GetResponse();
    Stream backStream =response.GetResponseStream();
    StreamReader sr = newStreamReader(backStream, Encoding.GetEncoding("UTF-8"));
    result = sr.ReadToEnd();
    sr.Close();
    backStream.Close();
    response.Close();
    request.Abort();
    }
    catch (Exception ex)
    {
    result = ex.Message;
    }
    return result;
    }

        ///
    
        ///电商Sign签名
        ///
    
        ///内容
        ///Appkey
        ///URL编码
        ///DataSign签名
        private string encrypt(String content,String keyValue, String charset)
        {
            if (keyValue != null)
            {
                return base64(MD5(content +keyValue, charset), charset);
            }
            return base64(MD5(content,charset), charset);
        }
    
        ///
    
        /// 字符串MD5加密
        ///
    
        ///要加密的字符串
        ///编码方式
        ///密文
        private string MD5(string str, stringcharset)
        {
            byte[] buffer =System.Text.Encoding.GetEncoding(charset).GetBytes(str);
            try
            {
                System.Security.Cryptography.MD5CryptoServiceProvidercheck;
                check = newSystem.Security.Cryptography.MD5CryptoServiceProvider();
                byte[] somme =check.ComputeHash(buffer);
                string ret = "";
                foreach (byte a in somme)
                {
                    if (a < 16)
                        ret += "0" +a.ToString("X");
                    else
                        ret +=a.ToString("X");
                }
                return ret.ToLower();
            }
            catch
            {
                throw;
            }
        }
    
        /// 
    
        /// base64编码
        /// 
    
        /// 内容
        /// 编码方式
        /// 
        private string base64(String str,String charset)
        {
            returnConvert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str));
        }
    }
    

    }
    单号识别接口demo:
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Web;

    namespace KdGoldAPI
    {
    public class KdApiOrderDistinguish
    {
    //电商ID
    private string EBusinessID = "??????";
    //电商加密私钥,注意保管,不要泄漏
    private string AppKey = "???????";
    //请求url
    //测试环境
    private string ReqURL ="http://testapi.kdniao.cc:8081/Ebusiness/EbusinessOrderHandle.aspx";
    //正式环境
    //private string ReqURL ="http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx";

        /// 
    
        /// Json方式  单号识别
        /// 
    
        /// 
        public string orderTracesSubByJson()
        {
            string requestData = "{'LogisticCode':'3967950525457'}";
    
            Dictionaryparam = new Dictionary();
            param.Add("RequestData",HttpUtility.UrlEncode(requestData, Encoding.UTF8));
            param.Add("EBusinessID",EBusinessID);
            param.Add("RequestType","2002");
            string dataSign =encrypt(requestData, AppKey, "UTF-8");
            param.Add("DataSign",HttpUtility.UrlEncode(dataSign, Encoding.UTF8));
            param.Add("DataType","2");
    
            string result = sendPost(ReqURL,param);
    
            //根据公司业务处理返回的信息......
    
            return result;
        }
    
        /// 
    
        /// Post方式提交数据,返回网页的源代码
        /// 
    
        /// 发送请求的 URL
        /// 请求的参数集合
        /// 远程资源的响应结果
        private string sendPost(string url,Dictionary param)
        {
            string result = "";
            StringBuilder postData = newStringBuilder();
            if (param != null && param.Count> 0)
            {
                foreach (var p in param)
                {
                    if (postData.Length > 0)
                    {
                       postData.Append("&");
                    }
                    postData.Append(p.Key);
                   postData.Append("=");
                    postData.Append(p.Value);
                }
            }
            byte[] byteData =Encoding.GetEncoding("UTF-8").GetBytes(postData.ToString());
            try
            {
    
                HttpWebRequest request =(HttpWebRequest)WebRequest.Create(url);
                request.ContentType ="application/x-www-form-urlencoded";
                request.Referer = url;
                request.Accept = "*/*";
                request.Timeout = 30 * 1000;
                request.UserAgent ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR3.5.30729)";
                request.Method ="POST";
                request.ContentLength =byteData.Length;
                Stream stream =request.GetRequestStream();
                stream.Write(byteData, 0,byteData.Length);
                stream.Flush();
                stream.Close();
                HttpWebResponse response =(HttpWebResponse)request.GetResponse();
                Stream backStream =response.GetResponseStream();
                StreamReader sr = newStreamReader(backStream, Encoding.GetEncoding("UTF-8"));
                result = sr.ReadToEnd();
                sr.Close();
                backStream.Close();
                response.Close();
                request.Abort();
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }
            return result;
        }
    
        ///
    
        ///电商Sign签名
        ///
    
        ///内容
        ///Appkey
        ///URL编码
        ///DataSign签名
        private string encrypt(String content,String keyValue, String charset)
        {
            if (keyValue != null)
            {
                return base64(MD5(content +keyValue, charset), charset);
            }
            return base64(MD5(content,charset), charset);
        }
    
        ///
    
        /// 字符串MD5加密
        ///
    
        ///要加密的字符串
        ///编码方式
        ///密文
        private string MD5(string str, stringcharset)
        {
            byte[] buffer =System.Text.Encoding.GetEncoding(charset).GetBytes(str);
            try
            {
               System.Security.Cryptography.MD5CryptoServiceProvider check;
                check = newSystem.Security.Cryptography.MD5CryptoServiceProvider();
                byte[] somme =check.ComputeHash(buffer);
                string ret = "";
                foreach (byte a in somme)
                {
                    if (a < 16)
                        ret += "0" +a.ToString("X");
                    else
                        ret +=a.ToString("X");
                }
                return ret.ToLower();
            }
            catch
            {
                throw;
            }
        }
    
        /// 
    
        /// base64编码
        /// 
    
        /// 内容
        /// 编码方式
        /// 
        private string base64(String str,String charset)
        {
            returnConvert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str));
        }
    }
    

    }

    1 Reply Last reply
    0

    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

    With your input, this post could be even better 💗

    Register Login
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Tags
    • Popular
    • Users
    • Groups