快递单号识别接口

参数 类型 描述
account String 使用者账号,由快刀云分配,测试时可以使用 test
data String

需识别的快递单号,输入格式请按照各个快递公司的规则,例子如下

668390930489

sign String

签名,规则如下

MD5(secret+data+secret)后转换为大写

其中secret是快刀云提供的接口授权码,测试时固定为“kd8cctestsecret”

完整的请求URL为(为了查看方便,我们人为地将参数之间用回车分隔开):

http://r.kuaidaoyun.com/checkno.aspx?account=test
&data=668390930489
&sign=5311BC1E62F0CC2C5F643EAF110D7665

实际URL为:

http://r.kuaidaoyun.com/checkno.aspx?account=test&data=668390930489&sign=5311BC1E62F0CC2C5F643EAF110D7665

满足唯一快递公司的快递单号规则时返回:  ["YTO"]  

同时满足多个快递公司的快递单号规则时返回:  ["YTO","ZTO"]  

未识别快递单号时返回:  []  

失败时返回的数据格式为:  -x;错误描述  

返回内容 错误处理
["YTO"] 成功识唯一快递公司的快递单号规则
["YTO","ZTO"] 成功识别多个快递公司的快递单号规则
[] 快递单号未识别到对应的快递公司
-1;账号无效! 请核对传入的账号是否为快刀云给你分配的账号
-3;签名验证错误! 请检查签名参数是否存在拼接错误,是否是按照要求生成的签名
-4;缺少参数! 请核对是否少传入了参数,或参数名拼写错误
-9;系统错误:错误详情 请根据错误详情进行处理,如果持续大量出现该错误,请通知我们!

单号识别PHP示例代码:下载

$account = '你的账号';
$data = '8089678087';
$appSecret = '你的授权码';

//生成签名
$sign = $appSecret;
$sign.=$data;
$sign.=$appSecret;
$sign = strtoupper(md5($sign));

$post_data = array(   
    'account' => $account,
    'data' => $data,
    'sign' => $sign
);

$postdata = http_build_query($post_data);
$options = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type:application/x-www-form-urlencoded',
'content' => $postdata,
'timeout' => 60 // 超时时间(单位:s)
));
$context = stream_context_create($options);
$result = file_get_contents('http://r.kuaidaoyun.com/checkno.aspx', false, $context);
print_r('返回结果:'.$result);

单号识别C#示例代码:下载

private void btnTest_Click(object sender, EventArgs e)
{
    string outids = "8089678087";

    string sign = CreateSign("你的授权码" + outids + "你的授权码");
    string param = "data=" + outids + "&account=你的账号&sign=" + sign;
    byte[] postdata = Encoding.UTF8.GetBytes(param);
    HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create("http://r.kuaidaoyun.com/checkno.aspx");
    myRequest.ContentType = "application/x-www-form-urlencoded";    
    string content = "";
    if (!string.IsNullOrEmpty(param))
    {
        myRequest.Method = "POST";
        myRequest.Timeout = 30000;
        myRequest.ContentLength = postdata.Length;
        using (Stream newStream = myRequest.GetRequestStream())
        {
            newStream.Write(postdata, 0, postdata.Length);
        }
    }
    using (HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse())
    {
        using (StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8))
        {
            content = reader.ReadToEnd();
        }
    }
    MessageBox.Show("返回:" + content);
}
public static string CreateSign(string Sign)
{
    MD5 md5 = MD5.Create();
    byte[] bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(Sign));

    StringBuilder result = new StringBuilder();
    for (int i = 0; i < bytes.Length; i++)
    {
        string hex = bytes[i].ToString("X");
        if (hex.Length == 1)
        {
            result.Append("0");
        }
        result.Append(hex);
    }
    return result.ToString();
}