免費(fèi)快遞查詢接口文檔
《免費(fèi)快遞查詢接口文檔》由會(huì)員分享,可在線閱讀,更多相關(guān)《免費(fèi)快遞查詢接口文檔(12頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、免費(fèi)快遞查詢接口文檔-快遞鳥 API 1. 報(bào)文及報(bào)文編碼 接口提供:快遞鳥 報(bào)文格式:Json格式 請求方法的編碼格式(utf-8): "application/x-www-form-urlencoded;charset=utf-8" 交互協(xié)議上統(tǒng)一用UTF-8,避免傳遞中文數(shù)據(jù)出現(xiàn)亂碼。 2. 應(yīng)用場景 (1) 電商網(wǎng)站用戶打開“我的訂單”時(shí)調(diào)用此API顯示物流信息詳情。 (2) 電商管理后臺(tái)的物流系統(tǒng),客服在對賬前查詢所有運(yùn)單的簽收狀態(tài),并追蹤問題 (3) 每日調(diào)用次數(shù)限制不超過3000次,如超過該限制,可對接物流跟蹤API。 (4) 全流程的物流狀態(tài)跟蹤I
2、 3. 關(guān)于簽名 采用 IP 認(rèn)證加簽名 的方式對接,具體方案如下: 1) 防止數(shù)據(jù)被篡改 在POST請求中會(huì)傳遞5個(gè)必須(R)參數(shù) RequestData==S據(jù)內(nèi)容(URL 編碼:UTF-8) EBusinessID==用戶 ID RequestType=i請求指令類型 DataSign==數(shù)據(jù)內(nèi)容簽名:把(請求內(nèi)容(未編碼)+ApiKey)進(jìn)行MD5加密,然后Base64編 碼,最后進(jìn)行URL(utf-8)編碼。8上8丁丫卩6==返回?cái)?shù)據(jù)類型(2-json) 注: DataSign 生成后,對方接收到數(shù)據(jù)后,以同樣的算法進(jìn)行簽名,生成摘要,對比兩者的摘 要是否相同,如
3、果不同,說明傳遞過程中發(fā)生數(shù)據(jù)篡改。 2) 調(diào)用接口的身份認(rèn)證 注冊成為接口用戶后,會(huì)生成對應(yīng)的用戶ID和APIKey,用戶ID相當(dāng)于用戶名,APIKey相 當(dāng)于密碼。 4. 接入步驟 1)接口網(wǎng)注冊賬號(hào)成為用戶; 提供的用戶ID是調(diào)用接口服務(wù)的身份證明,不可更改、不可轉(zhuǎn)用,API Key是應(yīng)用訪問API 的簽名附加密鑰,必須妥善保存。兩者關(guān)系類似于用戶名和密碼,兩者都會(huì)在簽名和業(yè)務(wù)參 數(shù)中使用。 2) 登陸用戶后臺(tái), 登陸用戶后臺(tái), 進(jìn)行 實(shí)名認(rèn)證, 并 開通會(huì)員服務(wù); 3) 根據(jù)技術(shù)文檔進(jìn)行開發(fā)并在調(diào)試平臺(tái)測試聯(lián)調(diào); 根據(jù)技術(shù)文檔進(jìn)行開發(fā)并在調(diào)試平臺(tái)測 試聯(lián)調(diào); API接口
4、的DEMO(包括:.Net版本、Java版本、PHP版本)供開發(fā)參考。 4) 系統(tǒng)發(fā)布上線。 系統(tǒng)發(fā)布上線。 注意:測試環(huán)境中 獲取 的測試快遞單號(hào)不可用于實(shí)際發(fā)貨。 5.Demo 1).NET開發(fā) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Net; using System.IO; namespace KdGoldAPI { public class KdApiSearchD
5、emo
{
〃電商ID
private string EBusinessID = "1237100";
//電商加密私鑰,注意保管,不要泄漏
private string AppKey = "518a73d8-1f7f-441a-b644-33e77b49d846";
//請求 url
private string ReqURL = "http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx";
/// 6、s>
public string getOrderTracesByJson()
{
string requestData =
"{'OrderCode':'','ShipperCode':'SF','LogisticCode':'589707398027'}";
Dictionary 7、dd("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);
//根據(jù)公司業(yè)務(wù)處理返回的信息
return result;
8、}
/// 9、ingBuilder();
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()); 10、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 CLR 2.0 11、.50727; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.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 = (H 12、ttpWebResponse)request.GetResponse();
Stream backStream = response.GetResponseStream();
StreamReader sr = new StreamReader(backStream, Encoding.GetEncoding("UTF-8"));
result = sr.ReadToEnd();
sr.Close();
backStream.Close();
response.Close();
request.Abort();
}
catch (Exception ex)
{
resul 13、t = ex.Message;
}
return result;
}
/// 14、harset)
{
if (keyValue != null)
{
return base64(MD5(content + keyValue, charset), charset);
}
return base64(MD5(content, charset), charset);
} /// 15、ivate string MD5(string str, string charset)
{
byte[] buffer = System.Text.Encoding.GetEncoding(charset).GetBytes(str);
try
{
System.Security.Cryptography.MD5CryptoServiceProvider check; check = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] somme = check.ComputeHash(buffer 16、);
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;
}
}
/// 17、m>
/// 18、or define('AppKey', '請到官網(wǎng)申請
//請求 url
defined('ReqURL') or define('ReqURL', 'http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx');
//調(diào)用查詢物流軌跡
//
$logisticResult=getOrderTracesByJson();
echo logisticResult;
// / post 提交數(shù)據(jù)
* @param string $url 請求 Url
* @param array $datas 提交的數(shù)據(jù)
* @r 19、eturn url 響應(yīng)返回的 html */
function sendPost($url, $datas) {
* Json 方式 查詢訂單物流軌跡
*/
function getOrderTracesByJson(){
$requestData= "{'OrderCode':'','ShipperCode':'YTO','LogisticCode':'12345678'}";
$datas = array(
'EBusinessID' => EBusinessID,
'RequestType' => '1002',
'RequestData' => urlencod 20、e($requestData) ,
'DataType' => '2',
);
$datas['DataSign'] = encrypt($requestData, AppKey); $result=sendPost(ReqURL, $datas);
//根據(jù)公司業(yè)務(wù)處理返回的信息
return $result;
}
$temps = array();
foreach ($datas as $key => $value) {
$temps[] = sprintf('%s=%s', $key, $value);
}
$post_data = implode('&', $t 21、emps);
$url_info = parse_url($url); if(empty($url_info['port']))
{
$url_info['port']=80;
}
$httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";
$httpheader.= "Host:" . $url_info['host'] . "\r\n";
$httpheader.= "Content-Type:application/x-www-form-urlencoded\r\n";
$httpheader.= "Conte 22、nt-Length:" . strlen($post_data) . "\r\n";
$httpheader.= "Connection:close\r\n\r\n";
$httpheader.= $post_data;
$fd = fsockopen($url_info['host'], $url_info['port']); fwrite($fd, $httpheader);
$gets = "";
$headerFlag = true;
while (!feof($fd)) {
if (($header = @fgets($fd)) && ($header == "\r\n 23、" || $header == "\n")) { break;
}
}
while (!feof($fd)) {
$gets.= fread($fd, 128);
}
fclose($fd);
return $gets;
} /**
* 電商 Sign 簽名生成
* @param data 內(nèi)容
* @param appkey Appkey
* @return DataSign 簽名
*/
function encrypt($data, $appkey) {
return urlencode(base64_encode(md5($data.$appkey))); 24、} ?>
3) JAVA開發(fā)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import .HttpURLConnection;
import .URL;
import .URLEncoder;
import java.security.MessageDigest;
impor 25、t 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 (Excepti 26、on e) {
e.printStackTrace();
}
}
//電商 ID
private String EBusinesslD="請申請";
//電商加密私鑰,注意保管,不要泄漏
private String AppKey="請申請";
//請求 url
private String ReqURL="http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx";
/**
* Json 方式 查詢訂單物流軌跡
* @throws Exception
*/
public String getOrderTrac 27、esByJson(String expCode, String expNo) throws Exception{ String requestData= "{'OrderCode':'','ShipperCode':'" + expCode + "','LogisticCode':'" + expNo + "'}";
Map 28、essID", 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);
//根據(jù)公司業(yè)務(wù)處理返回的信息 return result;
}
/**
* MD5 加密
* @param s 29、tr 內(nèi)容
* @param charset 編碼方式
* @throws Exception
*/
@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 StringBuff 30、er(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();
}
/**
* base64 編碼
* @param str 內(nèi)容
* @param charset 編碼方式
* @throws UnsupportedEncodingException
*/
31、
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 = U 32、RLEncoder.encode(str, charset);
return result;
}
/ 向指定 URL 發(fā)送 POST 方法的請求
* @param url 發(fā)送請求的 URL
* @param params 請求的參數(shù)集合
* @return 遠(yuǎn)程資源的響應(yīng)結(jié)果
*/
@SuppressWarnings("unused") private String sendPost(String url, Map 33、ull;
StringBuilder result = new StringBuilder();
try {
URL realUrl = new URL(url);
HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection(); //發(fā)送POST請求必須設(shè)置如下兩行
* 電商 Sign 簽名生成
* @param content 內(nèi)容
* @param keyValue Appkey
* @param charset 編碼方式
* @throws UnsupportedEncodingExcept 34、ion ,Exception
* @return DataSign 簽名
*/
@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(MD 35、5(content, charset), charset);
}
conn.setDoOutput(true);
conn.setDoInput(true);
// POST 方法
conn.setRequestMethod("POST");
// 設(shè)置通用的請求屬性
conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible 36、; MSIE 6.0; Windows NT 5.1;SV1)");
conn.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
conn.connect();
// 獲取 URLConnection 對象對應(yīng)的輸出流
out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
// 發(fā)送請求參數(shù)
if (params != null) {
StringBuilder param = new StringBuilder 37、();
for (Map.Entry 38、()); out.write(param.toString());
}
// flush 輸出流的緩沖
out.flush();
//定義BufferedReader輸入流來讀取URL的響應(yīng)
in = new BufferedReader(
new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
while ((line = in.readLine()) != null) {
result.append(line);
}
} catch (Exception e) {
e.printSta 39、ckTrace();
}
//使用 finally 塊來關(guān)閉輸出流、輸入流
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' 40、,
'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 s 41、tatic 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("==");
b 42、reak;
}
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();
}
}
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運(yùn)動(dòng)會(huì)安全工作預(yù)案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個(gè)人工作總結(jié)(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動(dòng)總結(jié)+在機(jī)關(guān)“弘揚(yáng)憲法精神推動(dòng)發(fā)改工作高質(zhì)量發(fā)展”專題宣講報(bào)告會(huì)上的講話
- 2024年XX村合作社年報(bào)總結(jié)
- 2024-2025年秋季第一學(xué)期初中歷史上冊教研組工作總結(jié)
- 2024年小學(xué)高級(jí)教師年終工作總結(jié)匯報(bào)
- 2024-2025年秋季第一學(xué)期初中物理上冊教研組工作總結(jié)
- 2024年xx鎮(zhèn)交通年度總結(jié)
- 2024-2025年秋季第一學(xué)期小學(xué)語文教師工作總結(jié)
- 2024年XX村陳規(guī)陋習(xí)整治報(bào)告
- 2025年學(xué)校元旦迎新盛典活動(dòng)策劃方案
- 2024年學(xué)校周邊安全隱患自查報(bào)告
- 2024年XX鎮(zhèn)農(nóng)村規(guī)劃管控述職報(bào)告