快递鸟快递查询接口API代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.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
{
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();