C端快递寄件功能支持德邦、京东、顺丰、中通、顺心捷达、百世的下单。该接口提供运力查询、快递下单、取消功能,请先调用运力查询接口查询对应地址支持的快递,再选择快递公司进行下单,快递费用需要您与快递员或者快递公司进行结算。
无参数
无参数
| 名称 | 类型 | 是否必须 | 描述 | 
|---|---|---|---|
| secret_key | string | true | 用户授权key | 
| secret_code | string | true | 接口编号 | 
| secret_sign | string | true | 加密签名:md5(secret_key+secret_secret)转大写 | 
| com | string | true | 快递公司的编码,一律用小写字母,见《快递公司编码》 | 
| recManName | string | true | 收件人姓名 | 
| recManMobile | string | true | 收件人的手机号,手机号和电话号二者其一必填 | 
| recManPrintAddr | string | true | 收件人所在完整地址,包含省、市、区、街道等 | 
| sendManName | string | true | 寄件人姓名 | 
| sendManMobile | string | true | 寄件人的手机号,手机号和电话号二者其一必填 | 
| sendManPrintAddr | string | true | 寄件人所在的完整地址,包含省、市、区、街道等 | 
| cargo | string | true | 物品名称,例:文件 | 
| weight | string | false | 物品总重量KG,不需带单位,例:1.5 | 
| remark | string | false | 备注 | 
| salt | string | false | 签名用随机字符串 | 
| callBackUrl | string | true | 订单信息回调,回调具体说明请见产品详情 | 
| payment | string | false | 支付方式,SHIPPER: 寄付(默认),CONSIGNEE: 到付 | 
| dayType | string | false | 预约日期,例如:今天/明天/后天 | 
| pickupStartTime | string | false | 预约起始时间(HH:mm),例如:09:00 | 
| pickupEndTime | string | false | 预约截止时间(HH:mm),例如:10:00 | 
| expType | string | false | 产品类型 | 
                        curl http://cloud.kuaidi100.com/api -X POST -d \
"secret_key=***&secret_code=ddffadd3df4b4c0d8d6f9942c7a8c990&secret_sign=md5(***)&com=&recManName=&recManMobile=&recManPrintAddr=&sendManName=&sendManMobile=&sendManPrintAddr=&cargo=&weight=&remark=&salt=&callBackUrl=&payment=&dayType=&pickupStartTime=&pickupEndTime=&expType="
                        
                      
                        
                        import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
public class CloudDemo {
    public static void main (String[] args) {
        CloudDemo cloudDemo = new CloudDemo();
        Map params = new HashMap();
        params.put("secret_key", "***");
        params.put("secret_code", "ddffadd3df4b4c0d8d6f9942c7a8c990");
        params.put("secret_sign", "md5(***)");
        params.put("com", "");
        params.put("recManName", "");
        params.put("recManMobile", "");
        params.put("recManPrintAddr", "");
        params.put("sendManName", "");
        params.put("sendManMobile", "");
        params.put("sendManPrintAddr", "");
        params.put("cargo", "");
        params.put("weight", "");
        params.put("remark", "");
        params.put("salt", "");
        params.put("callBackUrl", "");
        params.put("payment", "");
        params.put("dayType", "");
        params.put("pickupStartTime", "");
        params.put("pickupEndTime", "");
        params.put("expType", "");
        cloudDemo.post(params);
    }
    public String post(Map params) {
        StringBuilder response = new StringBuilder("");
        BufferedReader reader = null;
        try {
            StringBuilder builder = new StringBuilder();
            for (Map.Entry param : params.entrySet()) {
                if (builder.length() > 0) {
                    builder.append('&');
                }
                builder.append(URLEncoder.encode(param.getKey(), "UTF-8"));
                builder.append('=');
                builder.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
            }
            byte[] bytes = builder.toString().getBytes("UTF-8");
            URL url = new URL("http://cloud.kuaidi100.com/api");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setConnectTimeout(5000);
            conn.setReadTimeout(5000);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setRequestProperty("Content-Length", String.valueOf(bytes.length));
            conn.setDoOutput(true);
            conn.getOutputStream().write(bytes);
            reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
            String line = "";
            while ((line = reader.readLine()) != null) {
                response.append(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != reader) {
                    reader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return response.toString();
    }
}
class MD5Utils {    private static MessageDigest mdigest = null;
    private static char digits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
    private static MessageDigest getMdInst() {
        if (null == mdigest) {
            try {
                mdigest = MessageDigest.getInstance("MD5");
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            }
        }
        return mdigest;
    }
    public static String encode(String s) {
        if(null == s) {
            return "";
        }
        try {            byte[] bytes = s.getBytes();
            getMdInst().update(bytes);
            byte[] md = getMdInst().digest();
            int j = md.length;
            char str[] = new char[j * 2];
            int k = 0;
            for(int i = 0; i < j; i++) {
                byte byte0 = md[i];
                str[k++] = digits[byte0 >>> 4 & 0xf];
                str[k++] = digits[byte0 & 0xf];
            }
            return new String(str);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}
    
                        
                      
                        
                        
                        暂无示例
                      
                        
                        <?php
    $params = "";
    $params .= 'secret_key=***'.'&';
    $params .= 'secret_code=ddffadd3df4b4c0d8d6f9942c7a8c990'.'&';
    $params .= 'secret_sign=md5(***)'.'&';
    $params .= 'com='.'&';
    $params .= 'recManName='.'&';
    $params .= 'recManMobile='.'&';
    $params .= 'recManPrintAddr='.'&';
    $params .= 'sendManName='.'&';
    $params .= 'sendManMobile='.'&';
    $params .= 'sendManPrintAddr='.'&';
    $params .= 'cargo='.'&';
    $params .= 'weight='.'&';
    $params .= 'remark='.'&';
    $params .= 'salt='.'&';
    $params .= 'callBackUrl='.'&';
    $params .= 'payment='.'&';
    $params .= 'dayType='.'&';
    $params .= 'pickupStartTime='.'&';
    $params .= 'pickupEndTime='.'&';
    $params .= 'expType='.'&';
    $params .= substr($params, 0, -1);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_URL, 'http://cloud.kuaidi100.com/api');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);
    echo $result;
?>
                        
                      
                        
                        # coding = utf-8
import sys,os
import requests,json,hashlib
params = {}
params['secret_key'] = '***'
params['secret_code'] = 'ddffadd3df4b4c0d8d6f9942c7a8c990'
params['secret_sign'] = 'md5(***)'
params['com'] = ''
params['recManName'] = ''
params['recManMobile'] = ''
params['recManPrintAddr'] = ''
params['sendManName'] = ''
params['sendManMobile'] = ''
params['sendManPrintAddr'] = ''
params['cargo'] = ''
params['weight'] = ''
params['remark'] = ''
params['salt'] = ''
params['callBackUrl'] = ''
params['payment'] = ''
params['dayType'] = ''
params['pickupStartTime'] = ''
params['pickupEndTime'] = ''
params['expType'] = ''
result = requests.post('http://cloud.kuaidi100.com/api', params)
print(result.text)
                        
                      
                        无参数
                    {
	"code":200,        //响应码
	"message":"success",       //响应结果描述
	"data":{      //响应数据
		"taskId”:“1234567" //任务id
                "orderId”:“1234567" //快递100返回给您的平台订单id
	}
}
                
                    
                  
                    {
	"code":500,        //响应码
}
                
                    
                  | 状态码 | 状态码信息 | 描述 | 
|---|---|---|
| 200 | 成功 | |
| 20008 | 重复提交 | |
| 20010 | 下单失败(具体原因) | 德邦营业时间9:00-18:00;京东营业时间9:00-21:00;顺丰速运营业时间8:30-21:30。超出营业时间会返回20010 | 
| 20009 | 回调地址错误 | |
| -1 | 系统繁忙,请稍后重试 | |
| 10001 | 参数错误 | 
无参数
无参数
| 名称 | 类型 | 是否必须 | 描述 | 
|---|---|---|---|
| secret_key | string | true | 用户授权key | 
| secret_code | string | true | 接口编号 | 
| secret_sign | string | true | 加密签名:md5(secret_key+secret_secret)转大写 | 
| taskId | string | true | 任务ID | 
| orderId | string | true | 订单ID | 
| cancelMsg | string | true | 取消原因 | 
                        curl http://cloud.kuaidi100.com/api -X POST -d \
"secret_key=***&secret_code=bcb0428c1dd84aca9d6e19ea4dcf683d&secret_sign=md5(***)&taskId=&orderId=&cancelMsg="
                        
                      
                        
                        import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
public class CloudDemo {
    public static void main (String[] args) {
        CloudDemo cloudDemo = new CloudDemo();
        Map params = new HashMap();
        params.put("secret_key", "***");
        params.put("secret_code", "bcb0428c1dd84aca9d6e19ea4dcf683d");
        params.put("secret_sign", "md5(***)");
        params.put("taskId", "");
        params.put("orderId", "");
        params.put("cancelMsg", "");
        cloudDemo.post(params);
    }
    public String post(Map params) {
        StringBuilder response = new StringBuilder("");
        BufferedReader reader = null;
        try {
            StringBuilder builder = new StringBuilder();
            for (Map.Entry param : params.entrySet()) {
                if (builder.length() > 0) {
                    builder.append('&');
                }
                builder.append(URLEncoder.encode(param.getKey(), "UTF-8"));
                builder.append('=');
                builder.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
            }
            byte[] bytes = builder.toString().getBytes("UTF-8");
            URL url = new URL("http://cloud.kuaidi100.com/api");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setConnectTimeout(5000);
            conn.setReadTimeout(5000);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setRequestProperty("Content-Length", String.valueOf(bytes.length));
            conn.setDoOutput(true);
            conn.getOutputStream().write(bytes);
            reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
            String line = "";
            while ((line = reader.readLine()) != null) {
                response.append(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != reader) {
                    reader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return response.toString();
    }
}
class MD5Utils {    private static MessageDigest mdigest = null;
    private static char digits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
    private static MessageDigest getMdInst() {
        if (null == mdigest) {
            try {
                mdigest = MessageDigest.getInstance("MD5");
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            }
        }
        return mdigest;
    }
    public static String encode(String s) {
        if(null == s) {
            return "";
        }
        try {            byte[] bytes = s.getBytes();
            getMdInst().update(bytes);
            byte[] md = getMdInst().digest();
            int j = md.length;
            char str[] = new char[j * 2];
            int k = 0;
            for(int i = 0; i < j; i++) {
                byte byte0 = md[i];
                str[k++] = digits[byte0 >>> 4 & 0xf];
                str[k++] = digits[byte0 & 0xf];
            }
            return new String(str);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}
    
                        
                      
                        
                        
                        暂无示例
                      
                        
                        <?php
    $params = "";
    $params .= 'secret_key=***'.'&';
    $params .= 'secret_code=bcb0428c1dd84aca9d6e19ea4dcf683d'.'&';
    $params .= 'secret_sign=md5(***)'.'&';
    $params .= 'taskId='.'&';
    $params .= 'orderId='.'&';
    $params .= 'cancelMsg='.'&';
    $params .= substr($params, 0, -1);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_URL, 'http://cloud.kuaidi100.com/api');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);
    echo $result;
?>
                        
                      
                        
                        # coding = utf-8
import sys,os
import requests,json,hashlib
params = {}
params['secret_key'] = '***'
params['secret_code'] = 'bcb0428c1dd84aca9d6e19ea4dcf683d'
params['secret_sign'] = 'md5(***)'
params['taskId'] = ''
params['orderId'] = ''
params['cancelMsg'] = ''
result = requests.post('http://cloud.kuaidi100.com/api', params)
print(result.text)
                        
                      
                        无参数
                    {
"code":200,
"message":"success",
"data":"取消成功"
}
                
                    
                  
                    {
	"code":400,    //响应码
}
                
                    
                  | 状态码 | 状态码信息 | 描述 | 
|---|---|---|
| 200 | 成功 | 
请先调用运力查询接口查询对应地址支持的快递,再选择快递公司进行下单。
取消订单说明:由于订单同步给快递公司需要时间,如遇下单后取消失败,请隔两分钟后再试。
该接口提供运力查询、快递下单、取消功能,快递费在快递员上门取件时进行结算。
关于到付的问题:优选运力不支持到付,如需到付,请选择官方运力。
运力查询接口、寄件服务接口和取消订单接口默认为10QPS。
回调接口(对应快递寄件接口中的callbackurl)是用来接受订单信息及状态
订单有状态变更是会触发回调,回调后如果没有得到合作方正确返回,会重复回调多2次,即最多回调3次。间隔30分钟。
提供统一格式的HTTP POST,并返回统一格式JSON数据。
请求报头:Content-Type=application/x-www-form-urlencoded;charset=UTF-8
请求参数:
| 
 字段  | 
 类型  | 
 说明  | 
 备注  | 
| 
 taskId  | 
 string  | 
 操作的任务ID  | 
 
  | 
| 
 sign  | 
 string  | 
 签名  | 
 MD5 (param +salt)  | 
| 
 param  | 
 param  | 
 参数主体  | 
 
  | 
param数据结构:
| 
 参数名  | 
 是否必填  | 
 类型  | 
 说明  | 
| 
 kuaidicom  | 
 是  | 
 string  | 
 快递公司的编码,一律用小写字母,见《快递公司编码》,选填。  | 
| 
 kuaidinum  | 
 是  | 
 string  | 
 快递单号,单号的最大长度是32个字符。  | 
| 
 status  | 
 是  | 
 string  | 
 状态码:200(成功)、500(服务器错误)  | 
| 
 message  | 
 是  | 
 string  | 
 状态描述  | 
| 
 data  | 
 是  | 
 data  | 
 订单内容  | 
data数据结构:
| 
 参数名  | 
 是否必填  | 
 类型  | 
 说明  | 
| 
 orderId  | 
 是  | 
 string  | 
 快递100提供的平台订单ID  | 
| 
 status  | 
 是  | 
 string  | 
 订单状态: 0,'下单成功'(部分快递公司不会返回该状态) 1,'已接单' 2,'收件中' 9,'用户主动取消' 10,'已取件' 11,'揽货失败' 12,'已退回' 13,'已签收' 14,'异常签收' 99,'订单已取消' 101,'在途中'  | 
| 
 courierName  | 
 否  | 
 string  | 
 快递员姓名  | 
| 
 courierMobile  | 
 否  | 
 string  | 
 快递员电话  | 
| 
 weight  | 
 否  | 
 string  | 
 重量  | 
| 
 freight  | 
 否  | 
 string  | 
 运费  | 
| 
 字段  | 
 说明  | 
 备注  | 
| 
 result  | 
 提交结果  | 
 true提交成功,false失败  | 
| 
 returnCode  | 
 返回编码  | 
 
  | 
| 
 message  | 
 返回报文描述  | 
 德邦营业时间9:00-18:00;京东营业时间9:00-21:00;顺丰速运营业时间8:30-21:30。超出营业时间会返回“下单失败,超出营业时间”  | 
{
"result":true,
"returnCode":"200",
"message":"成功"
}
说明:
200: 成功
500: 服务器错误
其他错误请自行定义
result:true表示回调成功,false表示失败,如果提交回调接口的地址失败,30分钟后重新回调,3次仍旧失败的,自动放弃。
其他信息快递100会忽略。
5、快递公司编码
1、德邦营业时间9:00-18:00;京东营业时间9:00-21:00;顺丰速运营业时间8:30-21:30。超出营业时间会返回“下单失败,超出营业时间”
2、快递类型为“优选”的快递公司,取件时间为9:00-21:00点。
| 
 快递公司  | 
 编码  | 
 快递类型  | 
| 
 德邦快递  | 
 debangkuaidi  | 
 官方  | 
| 
 京东物流  | 
 jd  | 
 官方  | 
| 
 顺丰速运  | 
 shunfeng  | 
 官方  | 
| 
 中通快递  | 
 zhongtong  | 
 官方  | 
| 
 顺丰快运  | 
 shunfengkuaiyun  | 
 官方  | 
| 
 顺心捷达  | 
 sxjdfreight  | 
 官方  | 
| 
 顺丰冷运  | 
 shunfenglengyun  | 
 官方  | 
| 
 百世快运  | 
 baishiwuliu  | 
 官方  |