【快递员上门取件API接口对接-退换货下单预约取件接口】
一、接口介绍
发现一个非常好用的上门取件 API 接口——快递 100 商家寄件 API。通过这个接口提交寄件请求,可以直接下单至各快递公司,实现快递员上门取件,下单还可以享运费折扣
这个接口支持国内主流快递公司如 EMS、德邦、京东、极兔、圆通、申通、中通、韵达下单,也就不需要逐家接口对接了。
适用场景:电商退换货用户可以在 APP 上一键退货并自选上门取件的时间;二手回收;发货量较小,无月结账号的微商发货;品牌商家门店发货或门店调拨。
二、 接口测试与对接指南
登录地址: https://api.kuaidi100.com/login/
在对接快递 100 预约上门取件接口前,我们需要完成以下步骤:
注册与获取 API Key
前往快递 100API 开放平台注册账号。 联系客户经理充值运费,获取 API Key 和 Secret。
1、商家寄件(下单价格)
注意:下单价格就是可以查看到下单的预估价格,然后还有折扣的价格
1.1 请求地址
提供统一格式的 HTTP POST 或 GET 调用接口,并返回统一格式 JSON 数据。
https://poll.kuaidi100.com/order/borderapi.do
1.2 请求参数:
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
method | 是 | string | 业务类型(默认:price) |
key | 是 | string | 授权码,请到快递 100 页面申请企业版接口获取 |
sign | 是 | string | 32 位大写,签名,用于验证身份,按 MD5 (param +t+key+ secret)的顺序进行 MD5 加密,不需要加上“+”号 secret 在授权邮件里面有 |
t | 是 | string | 时间戳如:1576123932000 |
param | 是 | param | 由其他字段拼接 |
param 数据结构:
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
kuaidiCom | 是 | string | 快递公司编码 |
sendManPrintAddr | 是 | string | 出发地地址,最小颗粒到市级,例如:广东省深圳市 |
recManPrintAddr | 是 | string | 目的地地址,最小颗粒到市级,例如:广东省深圳市 |
weight | 否 | string | 重量,单位:kg,默认:1KG |
serviceType | 否 | string | 业务类型 |
channelSw | 否 | string | 渠道 ID,如有多个同品牌运力,请联系商务提供后传入 |
1.3 返回结果
字段 | 类型 | 说明 | 备注 |
---|---|---|---|
result | boolean | 提交结果 | true 提交成功,false 失败 |
returnCode | string | 返回编码 | |
message | string | 返回报文描述 | |
data | data | 运力对象 |
data 数据结构:
参数名 | 类型 | 说明 |
---|---|---|
defFirstPrice | string | 标准首重价格,单位:元 |
defOverPrice | string | 标准续重价格,单位:元 |
defPrice | string | 标准总价,单位:元 |
firstPrice | string | 折后首重价格,单位:元 |
overPrice | string | 折后续重价格,单位:元 |
price | string | 折后总价,单位:元 |
serviceType | string | 业务类型 |
1.4 提供数据内容
请求参数示例
method = price
key = ******
sign = 4BBDE07660E5EFF90873642CFAE9A8DD
t = 1647258957705
param = {
"kuaidicom": "yuantong",
"sendManPrintAddr": "杭州市西湖区东三十马路",
"recManPrintAddr": "黑龙江哈尔滨南岗区一匡小区",
"weight": "1",
"serviceType": "标准快递"
}
返回结果示例
{
"data": {
"firstPrice": "8.0",
"defPrice": "8.0",
"defFirstPrice": "8.0",
"price": "8.0",
"serviceType": "标准快递",
"overPrice": "0",
"defOverPrice": "0",
"kuaidiCom": "zhongtong"
},
"message": "成功",
"result": true,
"returnCode": "200"
}
说明:
信息代码 | 信息内容描述 | 原因及建议处理方式 |
---|---|---|
200 | 提交成功 | 提交成功 |
400 | 参数错误等 | 请根据技术文档请求,注意参数类型及是否必填 |
500 | 服务器错误 | 快递 100 的服务器出理间隙或临时性异常,有时如果因为不按规范提交请求,比如快递公司参数写错等,也会报此错误 |
503 | 验证签名失败 | 请检查加密方式,param + t + key + secret 的顺序进行 MD5 加密,加密后字符串转大写,不用加上“+”号 |
600 | 您不是合法的用户(即授权 Key 出错) | 账号无可用余额,需要充值 |
601 | KEY 已过期 | 账号无可用余额,需要充值 |
1.5 Python 测试代码和测试结果
测试代码
# coding = utf-8
import hashlib
import json
import time
import requests
def do_request(url, key, secret, method, t, param):
md = hashlib.md5()
md.update((param + t + key + secret).encode())
sign = md.hexdigest().upper()
payload = {
'key': key,
'method': method,
't': t,
'param': param,
'sign': sign
}
return requests.post(url, payload).text
if __name__ == '__main__':
key = '' # TODO 客户授权key
secret = '' # TODO 秘钥
url = 'https://poll.kuaidi100.com/order/borderapi.do' # 请求地址
method = 'price'
param = {
"kuaidiCom": "yuantong",
"sendManPrintAddr": "杭州市西湖区东三十马路",
"recManPrintAddr": "黑龙江哈尔滨南岗区一匡小区",
"weight": "",
"serviceType": ""
}
t = str(int(round(time.time() * 1000)))
result = do_request(url, key, secret, method, t, json.dumps(param))
print(result)
测试数据
测试结果
测试结果概述:returnCode=200 表示接口请求成功。具体返回信息如下表:
参数名 | 内容 | 说明 |
---|---|---|
defFirstPrice | 15.00 | 标准首重价格,单位:元 |
defOverPrice | 0.0 | 标准续重价格,单位:元 |
defPrice | 15.00 | 标准总价,单位:元 |
firstPrice | 6.50 | 折后首重价格,单位:元 |
overPrice | 0.0 | 折后续重价格,单位:元 |
price | 6.50 | 折后总价,单位:元 |
serviceType | 标准快递 | 业务类型 |
注意:具体返回数据以接口实时返回数据为主。
2、商家寄件(下单)
选择快递公司进行下单,可以预约上门取件时间。
2.1 接口格式
提供统一格式的 HTTP POST 或 GET 调用接口,并返回统一格式 JSON 数据。
2.2 请求地址
正式请求地址:https://poll.kuaidi100.com/order/borderapi.do(订单将推至快递公司)
沙箱请求地址:https://api.kuaidi100.com/apiMock/border(订单将不推至快递公司:沙箱下单后,可通过:调试工具-商家寄件-下单回调,调试订单各阶段状态。)
请求参数:
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
method | 是 | string | 业务类型(默认:bOrder) |
key | 是 | string | 授权码,请到快递 100 页面申请企业版接口获取 |
sign | 是 | string | 32 位大写签名,用于验证身份,按 MD5 (param +t+key+ secret)的顺序进行 MD5 加密,不需要加上“+”号。secret 在企业管理后台获取 |
t | 是 | string | 时间戳如:1576123932000 |
param | 是 | param | 由其他字段拼接 |
param 数据结构:
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
kuaidicom | 是 | string | 快递公司的编码,一律用小写字母,见《快递公司编码》 |
recManName | 是 | string | 收件人姓名 |
recManMobile | 是 | string | 收件人的手机号,手机号和电话号二者其一必填 |
recManPrintAddr | 是 | string | 收件人所在完整地址,如广东深圳市深圳市南山区科技南十二路 2 号金蝶软件园 |
sendManName | 是 | string | 寄件人姓名 |
sendManMobile | 是 | string | 寄件人的手机号,手机号和电话号二者其一必填 |
sendManPrintAddr | 是 | string | 寄件人所在的完整地址,如广东深圳市深圳市南山区科技南十二路 2 号金蝶软件园 B10 |
callBackUrl | 是 | string | callBackUrl 订单信息回调地址 |
cargo | 否 | string | 物品名称,例:文件。当 kuaidicom=jd,yuantong 时,必填 |
payment | 否 | string | 支付方式,SHIPPER: 寄付(默认)。不支持到付 |
serviceType | 否 | string | 业务类型,默认为标准快递,各快递公司业务类型对照参考:七、业务类型参数表 |
weight | 否 | string | 物品总重量 KG,不需带单位,例:1.5 |
remark | 否 | string | 备注 |
dayType | 否 | string | 预约日期,例如:今天/明天/后天 |
pickupStartTime | 否 | string | 预约起始时间(HH:mm),例如:09:00,顺丰必填 |
pickupEndTime | 否 | string | 预约截止时间(HH:mm),例如:10:00,顺丰必填,预约起始时间和预约截止时间间隔需 ≥1 小时;中通有严格要求:需要严格按照五个时间段 9:00-11:00、11:00-13:00、13:00-15:00、15:00-17:00、17:00-19:00 进行预约时间的传参,超过 19 点,自动预约第二天的时间; |
channelSw | 否 | string | 渠道 ID,如有多个同品牌运力,请联系商务提供后传入 |
下单扩展属性 | |||
valinsPay | 否 | string | 保价额度,单位:元 (当前仅京东、德邦、圆通、极兔和申通支持线上保价,其他快递传值无效,具体费率可咨询商务) |
realName | 否 | string | 寄件人实名信息(圆通、极兔支持 ) |
sendIdCardType | 否 | string | 寄件人证件类型,1:居民身份证 ;2:港澳居民来往内地通行证 ;3:台湾居民来往大陆通行证 ;4:中国公民护照(圆通、极兔支持 ) |
sendIdCard | 否 | 寄件人证件号码 (圆通、极兔支持 ) | |
passwordSigning | 否 | string | 是否口令签收,Y:需要 N: 不需要,默认值为 N(德邦快递专属参数) |
op | 否 | string | 是否开启订阅功能 0:不开启(默认) 1:开启 说明开启订阅功能时:pollCallBackUrl 必须填入 此功能只针对有快递单号的单 |
pollCallBackUrl | 否 | string | 如果 op 设置为 1 时,pollCallBackUrl 必须填入,用于跟踪回调,回调内容通过五、快递信息推送接口返回(免费服务) |
resultv2 | 否 | string | 添加此字段表示开通行政区域解析功能 。 0:关闭(默认) 1:开通行政区域解析功能以及物流轨迹增加物流状态名称 (详见:快递信息推送接口文档) 3:开通行政区域解析功能以及物流轨迹增加物流状态名称,同时返回地图内容(详见:地图轨迹推送接口文档) |
returnType | 否 | string | 面单返回类型,默认为空,不返回面单内容。10:设备打印,20:生成图片短链回调。 |
siid | 否 | string | 设备码,returnType 为 10 时必填 |
tempid | 否 | string | 模板编码,通过管理后台的电子面单模板信息获取 ,returnType 不为空时必填 |
printCallBackUrl | 否 | string | 打印状态回调地址,returnType 为 10 时必填 |
salt | 否 | string | 签名用随机字符串,用于验证签名 sign。salt 值不为 null 时,推送数据将包含该加密签名,加密方式:md5(param+salt)。注意: salt 值为空串时,推送的数据也会包含 sign,此时可忽略 sign 的校验。 |
thirdOrderId | 否 | string | 平台订单号,最大 32 位。若此参数与之前的重复,48 小时内返回第一次下单内容,否则会重新下单。 |
2.3 返回结果
字段 | 类型 | 说明 | 备注 |
---|---|---|---|
result | boolean | 提交结果 | true 提交成功,false 失败 |
returnCode | string | 返回编码 | |
message | string | 返回报文描述 | |
data | data |
data 数据结构
字段 | 类型 | 说明 | 备注 |
---|---|---|---|
taskId | string | 任务 ID | |
orderId | string | 订单 ID | |
kuaidinum | string | 快递单号 | |
pollToken | string | 查询密钥,调用实时快递查询接口时入参此字段可免费查询该快递单号,一个快递单号对应一个密钥 | |
eOrder | string | 快递面单附属属性,根据各个快递公司返回属性 |
eOrder 数据结构
字段 | 类型 | 说明 | 备注 |
---|---|---|---|
bulkpen | string | 大头笔 | 用于显示于电子面单上规定位置,非必需,是否有值取决于快递公司 |
orgCode | string | 始发地区域编码 | |
orgName | string | 始发地/始发网点名称 | |
destCode | string | 目的地区域编码 | |
destName | string | 目的地/到达网点 | |
orgSortingCode | string | 始发分拣编码 | |
orgSortingName | string | 始发分拣名称 | |
destSortingCode | string | 目的分栋编码 | |
destSortingName | string | 目的分栋中心名称 | |
orgExtra | string | 始发其他信息 | |
destExtra | string | 目的其他信息 | |
pkgCode | string | 集包编码 | |
pkgName | string | 集包地名称 | |
road | string | 路区 | |
qrCode | string | 二维码 | |
kdComOrderNum | string | 快递公司订单号 | |
expressCode | string | 快递业务类型编码 | |
expressName | string | 快递业务类型名称 | |
waterMark | string | 水印 | |
agingName | string | 时效 | |
abFlag | string | 电子产品类型图标 | |
proCode | string | 时效产品图标 | |
codingMapping | string | 进港映射码 | |
codingMappingOut | string | 出港信息 | |
printIcon | string | 图标名称 | |
destRouteLabel | string | 目的地(路由信息) | |
twoDimensionCode | string | 二维码信息 | |
xbFlag | string | 顺丰面单标识,快运必填,xbFlag=1,打印 SX 标;xbFlag=2,打印融通标 |
注意:eOrder 实际返回的字段各家快递公司不同,以实际返回为准
2.4 提供数据内容
请求参数示例
method = bOrder
key = ******
sign = 4BBDE07660E5EFF90873642CFAE9A8DD
t = 1647258957705
param = {
"kuaidicom": "yuantong",
"recManName": "王超",
"recManMobile": "13800138000",
"recManPrintAddr": "西藏日喀则市定日县珠穆朗玛峰",
"sendManName": "王大",
"sendManMobile": "13800138000",
"sendManPrintAddr": "西藏日喀则市定日县珠穆朗玛峰",
"cargo": "文件",
"callBackUrl": "http: //www.baidu.com",
"payment": "SHIPPER",
"serviceType": "标准快递",
"weight": "1",
"remark": "",
"salt": "",
"dayType": "",
"pickupStartTime": "",
"pickupEndTime": "",
"passwordSigning": "Y",
"valinsPay": "",
"op": "0",
"pollCallBackUrl": "",
"resultv2": "0",
"returnType": "",
"siid": "",
"tempid": "",
"printCallBackUrl": ""
}
返回结果示例
{
"result": true,
"returnCode": "200",
"message": "提交成功",
"data": {
"taskId": "", // 任务ID
"orderId": "" // 订单ID
"kuaidinum": "" // 快递单号
"eOrder": "[\"destName\":null,\"orgName\":null,\"pkgCode\":null,\"pkgName\":null,\"bulkpen\":\"上海-S33-K27-P\",\"orgExtra\":null}]"
}
}
说明:
信息代码 | 信息内容描述 | 原因及建议处理方式 |
---|---|---|
200 | 提交成功 | 提交成功 |
400 | 参数错误等 | 请根据技术文档请求,注意参数类型及是否必填 |
500 | 服务器错误 | 快递 100 的服务器出理间隙或临时性异常,有时如果因为不按规范提交请求,比如快递公司参数写错等,也会报此错误 |
501 | 重复提交 | 重复提交了请求 |
503 | 验证签名失败 | 请检查加密方式,param + t + key + secret 的顺序进行 MD5 加密,加密后字符串转大写,不用加上“+”号 |
600 | 您不是合法的用户(即授权 Key 出错) | 账号无可用余额,需要充值 |
601 | KEY 已过期 | 账号无可用余额,需要充值 |
700 | 错误的回调地址 | 检查回调地址,或者联系快递 100 工作人员 |
2.5 python 测试代码和测试结果
测试代码
# coding = utf-8
import hashlib
import json
import time
import requests
def do_request(url, key, secret, method, t, param):
md = hashlib.md5()
md.update((param + t + key + secret).encode())
sign = md.hexdigest().upper()
payload = {
'key': key,
'method': method,
't': t,
'param': param,
'sign': sign
}
return requests.post(url, payload).text
if __name__ == '__main__':
key = '********' # TODO 客户授权key
secret = '********' # TODO 秘钥
url = 'https://poll.kuaidi100.com/order/borderapi.do' # 请求地址
method = 'bOrder'
param = {
"kuaidicom": "shentong",
"recManName": "李四",
"recManMobile": "15045666312",
"recManPrintAddr": "黑龙江哈尔滨南岗区一匡小区",
"sendManName": "张三",
"sendManMobile": "15045666311",
"sendManPrintAddr": "杭州市西湖区东三十马路",
"cargo": "书籍",
"callBackUrl": "http://meihua150.cn/reback",
"payment": "",
"serviceType": "",
"weight": "",
"remark": "",
"salt": "",
"dayType": "",
"pickupStartTime": "",
"pickupEndTime": "",
"passwordSigning": "N",
"valinsPay": "",
"op": "0",
"pollCallBackUrl": "",
"resultv2": "0"
}
t = str(int(round(time.time() * 1000)))
result = do_request(url, key, secret, method, t, json.dumps(param))
print(result)
# {"data":{"kuaidinum":"YT2213099035201","orderId":"20066771","attach":null,"taskId":"9FC293CA417E431F33046E64F4C4EC20"},"message":"提交成功","result":true,"returnCode":"200"}
测试数据
测试结果
测试结果概述:returnCode=200 表示接口请求成功。具体返回信息如下表:
字段 | 内容 | 说明 |
---|---|---|
taskId | EFCC9B7835C226766E2BC9AE1E420593 | 任务 ID |
orderId | 229206462 | 订单 ID |
kuaidinum | 772035537682325 | 快递单号 |
pollToken | KsofHmxy3xoaqYjoV1zb+49aRtW/04Z9rEMtlTg2pqU=" | 查询密钥,调用实时快递查询接口时入参此字段可免费查询该快递单号,一个快递单号对应一个密钥 |
attach | null | 额外信息标签 |
注意:具体返回数据以接口实时返回数据为主。
3、商家寄件(下单取消)
对下完单且取件前的订单进行取消操作。对于不需邮寄的订单请及时进行取消,当月订单最晚需在次月 8 日前取消,否则将无法取消。
3.1 接口格式
提供统一格式的 HTTP POST 或 GET 调用接口,并返回统一格式 JSON 数据。
3.2 请求地址
https://poll.kuaidi100.com/order/borderapi.do
请求参数:
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
method | 是 | string | 业务类型(默认:cancel) |
key | 是 | string | 授权码,请到快递 100 页面申请企业版接口获取 |
sign | 是 | string | 32 位大写,签名,用于验证身份,按 MD5 (param +t+key+ secret)的顺序进行 MD5 加密,不需要加上“+”号 secret 在授权邮件里面有 |
t | 是 | string | 时间戳如:1576123932000 |
param | 是 | param | 由其他字段拼接 |
param 数据结构:
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
taskId | 是 | string | 任务 ID |
orderId | 是 | string | 订单 ID |
cancelMsg | 是 | string | 取消原因,例:暂时不寄件了,最大长度不超过 30 字符 |
3.3 返回结果
字段 | 类型 | 说明 | 备注 |
---|---|---|---|
result | boolean | 提交结果 | true 提交成功,false 失败 |
returnCode | string | 返回编码 | |
message | string | 返回报文描述 | |
data | data | 这里默认为空 |
3.4 提供数据内容
请求参数示例
method = cancel
key = ******
sign = 4BBDE07660E5EFF90873642CFAE9A8DD
t = 1647258957705
param = {
"taskId": "*****",
"orderId": "*****",
"cancelMsg": "暂时不寄件了"
}
返回结果示例
{
"result": true,
"returnCode": "200",
"message": "取消成功",
"data": {}
}
说明:
信息代码 | 信息内容描述 | 原因及建议处理方式 |
---|---|---|
200 | 提交成功 | 提交成功 |
400 | 参数错误等 | 请根据技术文档请求,注意参数类型及是否必填 |
500 | 服务器错误 | 快递 100 的服务器出理间隙或临时性异常,有时如果因为不按规范提交请求,比如快递公司参数写错等,或者对已取消的订单重复操作取消,也会报此错误 |
501 | 重复提交 | 重复提交了请求 |
503 | 验证签名失败 | 请检查加密方式,param + t + key + secret 的顺序进行 MD5 加密,加密后字符串转大写,不用加上“+”号 |
600 | 您不是合法的用户(即授权 Key 出错) | 账号无可用余额,需要充值 |
601 | KEY 已过期 | 账号无可用余额,需要充值 |
700 | 错误的回调地址 | 检查回调地址,或者联系快递 100 工作人员 |
3.5 Python 测试代码和测试结果
测试代码
# coding = utf-8
import hashlib
import json
import time
import requests
def do_request(url, key, secret, method, t, param):
md = hashlib.md5()
md.update((param + t + key + secret).encode())
sign = md.hexdigest().upper()
payload = {
'key': key,
'method': method,
't': t,
'param': param,
'sign': sign
}
return requests.post(url, payload).text
if __name__ == '__main__':
key = '' # TODO 客户授权key
secret = '' # TODO 秘钥
url = 'https://poll.kuaidi100.com/order/borderapi.do' # 请求地址
method = 'cancel'
param = {
"taskId": "EFCC9B7835C226766E2BC9AE1E420593",
"orderId": "229206462",
"cancelMsg": "暂时不寄件了"
}
t = str(int(round(time.time() * 1000)))
result = do_request(url, key, secret, method, t, json.dumps(param))
print(result)
测试数据
测试结果
测试结果概述:returnCode=200 表示接口请求成功,返回结果为取消成功。
注意:具体返回数据以接口实时返回数据为主。
4、商家寄件(下单回调)
订单有状态变更是会触发回调,回调后如果没有得到合作方正确返回,会重复回调多 2 次,即最多回调 3 次。间隔 30 分钟。
上门取件下单成功以后,快递员收到订单,会反馈接单状态,快递 100 会把状态实时推送到我们自己的服务器。
4.1 接口格式
提供统一格式的 HTTP POST,并返回统一格式 JSON 数据。
请求报头:Content-Type=application/x-www-form-urlencoded;charset=UTF-8
4.2 请求地址
请求参数:
字段 | 类型 | 说明 | 备注 |
---|---|---|---|
taskId | string | 任务 ID | |
sign | string | 签名 | 32 位大写签名,MD5 (param +salt) |
param | param | 参数主体 |
param 数据结构:
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
kuaidicom | 是 | string | 快递公司的编码,一律用小写字母,见《快递公司编码》,选填。 |
kuaidinum | 是 | string | 快递单号,单号的最大长度是 32 个字符。 |
status | 是 | string | 状态码 |
message | 是 | string | 状态描述 |
data | 是 | data | 订单内容 |
data 数据结构:
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
orderId | 是 | string | 平台订单 ID |
status | 是 | int | 订单状态说明: 0:‘下单成功’; 1:‘已接单’; 2:‘收件中’; 9:‘用户主动取消’;10:‘已取件’; 11:‘揽货失败’;12:‘已退回’; 13:‘已签收’; 14:‘异常签收’;15:‘已结算’ ;99:‘订单已取消’;101:‘运输中’;200:‘已出单’;201:‘出单失败’;610:‘下单失败’;155:‘修改重量’(注意需要在工单系统中发起异常反馈并由快递 100 服务人员确认调重后才会有此状态回调,回调内容包含修改重量后的重量、运费、费用明细、业务类型);166:订单复活(订单被取消,但是实际包裹已经发出,正常计费);400:派送中 |
cancelMsg9 | 否 | string | 用户取消原因 |
cancelMsg99 | 否 | string | 系统取消或下单失败原因 |
courierName | 否 | string | 快递员姓名 |
courierMobile | 否 | string | 快递员电话 |
netTel | 否 | string | 网点电话,目前仅圆通会推送 |
netCode | 否 | string | 网点编码,目前仅圆通会推送 |
weight | 否 | string | 计费重量,单位:kg |
defPrice | 否 | string | 标准运费,单位:元 |
freight | 否 | string | 折后运费,单位:元 |
volume | 否 | string | 体积,单位:cm³ |
actualWeight | 否 | string | 称重重量,单位:kg |
ΘfeeDetails | 否 | list | 费用明细,明细项目请展开 |
└ feeType | 否 | string | 费用类型,参考:八、费用类型(feeType)说明 |
└ feeDesc | 否 | string | 费用名称 |
└ amount | 否 | string | 费用明细金额,单位:元 |
└ payStatus | 否 | string | 支付状态,支付失败:-1;未支付:0;已支付:1 ;无需支付:2;已退款:3 |
printTaskId | 否 | string | 打印任务 ID |
label | 否 | string | 面单短链,下单请求中 returnType 为 20 时返回 |
pickupCode | 否 | string | 取件码,目前只有中通、申通会返回,在状态 1 时返回 |
pollToken | 是 | string | 查询密钥,调用实时快递查询接口时入参此字段可免费查询该快递单号,一个快递单号对应一个密钥。 |
4.3 返回结果
字段 | 说明 | 备注 |
---|---|---|
result | 提交结果 | true 提交成功,false 失败 |
returnCode | 返回编码 | |
message | 返回报文描述 |
4.4 提供数据内容
请求参数示例
taskId = ** ** **
sign = ** ** **
param = {
"kuaidicom": "yuantong",
"kuaidinum": "1234567890",
"status": "200",
"message": "成功",
"data": {
"orderId": "*****",
"status": "0",
"courierName": "王大",
"courierMobile": "13800138000",
"weight": "1",
"defPrice": "15.0",
"freight": "5.1",
"volume": "120",
"actualWeight": "1",
"feeDetails": [{
"feeType": "PACKAGINGFEE",
"feeDesc": "包装费",
"amount": "0.8",
"payStatus": 1
}],
"printTaskId": "*****",
"imgBase64": "*****"
}
}
返回结果示例
{
"result": true,
"returnCode": "200",
"message": "成功"
}
4.5 回调响应报文及错误码解释
字段名称 | 字段含义 |
---|---|
result | true 表示成功,false 表示失败。如果提交回调接口的地址失败,30 分钟后重新回调,3 次仍旧失败的,自动放弃 |
returnCode | 200: 提交成功 500: 服务器错误 其他错误请自行定义 |
message | 返回的提示 |
三、总结
快递 100API 开放平台提供以快递查询、快递在线下单预约上门取件为核心的一系列业务接口,对每个接口的开发文档丰富而全面,并且提供标准的多语言示例代码(Java、Python、PHP、.Net)。上面是对下单价格、下单、下单取消,下单回调接口的应用实例。
通过本文的指南,相信您可以快速完成相关接口对接,并利用这项技术提升用户体验和业务效率。
- 点赞
- 收藏
- 关注作者
评论(0)