順豐快遞單號查詢API接口demo免費對接【快遞鳥API】
順豐目前提供了兩種對接方式:
一種是開發者自助對接,需要注冊豐橋賬戶后,申請成為開發者,然后上傳電子面單等操作,較為繁瑣;
還有一種方式就是這里要重點介紹的,第三方軟件對接(例如快遞鳥),對接起來非常方便。
物流軌跡查詢-使用的物流單號和快遞單號即可實現查詢物流信息。 對接在電商網站或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));
}
}
}
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/69945342/viewspace-2653697/,如需轉載,請注明出處,否則將追究法律責任。
轉載于:http://blog.itpub.net/69945342/viewspace-2653697/
智能推薦
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...
styled-components —— React 中的 CSS 最佳實踐
https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...
19.vue中封裝echarts組件
19.vue中封裝echarts組件 1.效果圖 2.echarts組件 3.使用組件 按照組件格式整理好數據格式 傳入組件 home.vue 4.接口返回數據格式...
猜你喜歡
【一只蒟蒻的刷題歷程】【藍橋杯】歷屆試題 九宮重排 (八數碼問題:BFS+集合set)
資源限制 時間限制:1.0s 內存限制:256.0MB 問題描述 如下面第一個圖的九宮格中,放著 1~8 的數字卡片,還有一個格子空著。與空格子相鄰的格子中的卡片可以移動到空格中。經過若干次移動,可以形成第二個圖所示的局面。 我們把第一個圖的局面記為:12345678. 把第二個圖的局面記為:123.46758 顯然是按從上到下,從左到右的順序記錄數字,空格記為句點。 本題目的任務是已知九宮的初態...
dataV組件容器寬高發生變化后,組件不會自適應解決方法
項目中需要大屏幕數據展示,于是使用了dataV組件,但是使用是發現拖動瀏覽器邊框,dataV組件顯示異常,如圖: 于是查了官網,官網的解釋如下: 于是按照官網的意思編寫代碼: 于是可以自適應了...
CSS3干貨10:如何做一個板塊標題水平線左邊帶顏色效果
很多網站在設計欄目標題的時候,喜歡用下劃線分開欄目標題和內容部分。 而且線條左邊的部分往往還有顏色,且這個顏色跟標題的文字長短保持一致。效果如圖所示: 這種效果其實很簡單。 我這里給大家推薦兩種方式: 假定我們的標題部分 HTML 結構如下: 方式一:利用下邊框。灰色部分是 h1 的下邊框,藍色部分是 span 標簽的下邊框。 h1 的高度為 40px,span 也設置它的高度為 40px。這樣,...
拜師————python基礎入門——程序的構成,對象,引用,棧內存和堆內存,標識符命名規則——day4
第九節課:任務9:009.程序的構成 Python程序的構成,一個程序是由什么構成的 1.python程序由模塊組成 , 一個模塊對應一個python源文件,(文件后綴名.py) 2.模塊由語句構成 運行程序時,安裝模塊中語句的順序依次執行。 代碼的組織和縮進 “龜叔”在設計python時,直接通過縮進來組織代碼 縮進時,幾個空格都是允許的,但是空格數必須統一,我們通常用四...
spark 總結 算子篇
1、創建工程 在這里添加 spark core包,添加bulid 插件。 算子總結 map 算子 主要是做數據結構的轉換,數據條數不變。 mapPartitions(func) 對分區數據進行轉換。將某一個分區的所有數據拿過來形成一個可迭代的集合要求 返回可迭代的集合。提高效率會使用它。 應用場景: 只對分區內數據進行數據。缺點是不釋放,可能導致oom。 當內存空間較大的時候建議使用 mapPar...