云市场 / 快递寄件
联系电话
400-000-0387
服务商
快递100
QQ客服
2850515744
服务时间
09:00-18:00
联系邮箱

快递寄件

C端快递寄件功能支持德邦、京东、顺丰、中通、顺心捷达、百世的下单。该接口提供运力查询、快递下单、取消功能,请先调用运力查询接口查询对应地址支持的快递,再选择快递公司进行下单,快递费用需要您与快递员或者快递公司进行结算。

¥ 原价:¥

套餐版本

0.00元/1000000
有效时长
1年
联系电话
400-000-0387
服务商
快递100
QQ客服
2850515744
服务时间
09:00-18:00
联系邮箱
  • API接口
  • 产品详情
  • 交付方式
  • C端寄件
  • 取消订单
调用地址: http://cloud.kuaidi100.com/api
请求方式: POST
返回类型: JSON
API 调用: API调用说明>>
调试工具: API调试>>
请求参数(Headers)

无参数

请求参数(Query)

无参数

请求参数(Body)
名称 类型 是否必须 描述
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
  • Java
  • C#
  • PHP
  • Python
                        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 参数错误
调用地址: http://cloud.kuaidi100.com/api
请求方式: POST
返回类型: JSON
API 调用: API调用说明>>
调试工具: API调试>>
请求参数(Headers)

无参数

请求参数(Query)

无参数

请求参数(Body)
名称 类型 是否必须 描述
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
  • Java
  • C#
  • PHP
  • Python
                        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 成功

 

常见问题:

一、某地址支持的快递公司有哪些?

请先调用运力查询接口查询对应地址支持的快递,再选择快递公司进行下单。

二、取消订单失败是为什么?

取消订单说明:由于订单同步给快递公司需要时间,如遇下单后取消失败,请隔两分钟后再试。

三、快递费用如何结算?

该接口提供运力查询、快递下单、取消功能,快递费在快递员上门取件时进行结算。

关于到付的问题:优选运力不支持到付,如需到付,请选择官方运力。

四、接口限制多少QPS?

运力查询接口、寄件服务接口和取消订单接口默认为10QPS。

五、回调地址(快递寄件接口中的callbackurl)是什么?如何接收?

回调接口(对应快递寄件接口中的callbackurl)是用来接受订单信息及状态

订单有状态变更是会触发回调,回调后如果没有得到合作方正确返回,会重复回调多2次,即最多回调3次。间隔30分钟。

1、接口格式

提供统一格式的HTTP POST,并返回统一格式JSON数据。

请求报头:Content-Type=application/x-www-form-urlencoded;charset=UTF-8

2、请求地址

请求参数:

字段

类型

说明

备注

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。超出营业时间会返回“下单失败,超出营业时间”

4、提供数据内容

{

"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

官方

1 点击立即购买 > 2 确认并支付订单 > 3 进入云市场控制台 > 4 开始使用API