快递鸟快递查询接口API代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

快递鸟快递查询接口API代码

1.代码使用说明

(1)查询接口支持按照运单号查询(单个查询)。

(2)接口需要指定快递单号的快递公司编码,格式不对或则编码错误都会返失败的信息。(3)返回的物流跟踪信息按照发生的时间升序排列。

(4)接口指令1002。

(5)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。

(6)接口提供:快递鸟

2.功能展现

(1)电商网站用户打开“我的订单”时调用此API显示物流信息详情。

(2)电商管理后台的物流系统,客服在对账前查询所有运单的签收状态,并追踪问题。(3)每日调用次数限制不超过3000次,如超过该限制,可对接物流跟踪API。

(4)全流程的物流状态跟踪I

3.代码签名

采用IP 认证加签名

的方式对接,具体方案如下:

1)防止数据被篡改

在POST 请求中会传递 5 个必须(R)参数

RequestData==数据内容(URL 编码:UTF-8)

EBusinessID==用户ID

RequestType=请求指令类型

DataSign== 数据内容签名:把(请求内容(未编码)+ApiKey)进行MD5 加密,然后Base64编码,最后进行URL(utf-8)编码DataType==返回数据类型(2-json)

注:

DataSign 生成后,对方接收到数据后,以同样的算法进行签名,生成摘要,对比两者的摘要是否相同,如果不同,说明传递过程中发生数据篡改。

2)调用接口的身份认证

注册成为接口用户后,会生成对应的用户ID 和APIKey,用户ID 相当于用户名,APIKey 相当于密码。

4.接口申请

1)接口网注册账号成为用户;

提供的用户ID 是调用接口服务的身份证明,不可更改、不可转用,API Key 是应用访问API 的签名附加密钥,必须妥善保存。两者关系类似于用户名和密码,两者都会在签名和业务参数中使用。

2)登陆用户后台,登陆用户后台,进行实名认证,并开通会员服务;

3)根据技术文档进行开发并在调试平台测试联调;根据技术文档进行开发并在调试平台测试联调;

API 接口的DEMO(包括:.Net 版本、Java 版本、PHP 版本)供开发参考。

4)系统发布上线。系统发布上线。

注意:测试环境中获取的测试快递单号不可用于实际发货。

5.对接Demo代码

1).NET开发

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Web;

using ;

using System.IO;

namespace KdGoldAPI

{

public class KdApiSearchDemo

{

//电商ID

private string EBusinessID = "1237100";

//电商加密私钥,注意保管,不要泄漏

private string AppKey = "518a73d8-1f7f-441a-b644-33e77b49d846";

//请求url

private string ReqURL = "/Ebusiness/EbusinessOrderHandle.aspx";

///

/// Json方式查询订单物流轨迹

///

///

public string getOrderTracesByJson()

{

string requestData = "{'OrderCode':'','ShipperCode':'SF','LogisticCode':'589707398027'}";

Dictionary param = 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 = new StringBuilder();

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;

erAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.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 = (HttpWebResponse)request.GetResponse();

相关文档
最新文档