推送接口
POST
/推送请求地址:由贵司在订阅请求中通过callbackurl字段提供
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
sign | 否 | string | 订阅参数salt值不为空时,推送数据将包含该加密签名,加密方式:md5(param+salt) |
param | 是 | Object | 主体参数对象 |
param对应参数
参数名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
status | String | polling | 监控状态:polling:监控中,shutdown:结束,abort:中止,updateall:重新推送。其中当快递单为已签收时status=shutdown,当message为“3天查询无记录”或“60天无变化时”status= abort ,对于status=abort的状态,需要增加额外的处理逻辑 |
billstatus | String | got | 包括got、sending、check三个状态,由于意义不大,已弃用,请忽略 |
message | String | 监控状态相关消息,如:3天查询无记录,60天无变化 | |
autoCheck | String | 1 | 快递公司编码是否出错,0为本推送信息对应的是贵司提交的原始快递公司编码,1为本推送信息对应的是我方纠正后的新的快递公司编码。一个单如果我们连续3天都查不到结果,我方会(1)判断一次贵司提交的快递公司编码是否正确,如果正确,给贵司的回调接口(callbackurl)推送带有如下字段的信息:autoCheck=0、comOld与comNew都为空;(2)如果贵司提交的快递公司编码出错,我们会帮忙用正确的快递公司编码+原来的运单号重新提交订阅并开启监控(后续如果监控到单号有更新就给贵司的回调接口(callbackurl)推送带有如下字段的信息:autoCheck=1、comOld=原来的公司编码、comNew=新的公司编码);并且给贵方的回调接口(callbackurl)推送一条含有如下字段的信息:status=abort、autoCheck=0、comOld为空、comNew=纠正后的快递公司编码。 |
comOld | String | yuantong | 贵司提交的原始的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段 |
comNew | String | ems | 我司纠正后的新的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段 |
lastResult | Object | 最新查询轨迹结果 |
lastResult对应参数
字段名称 | 类型 | 字段含义 |
---|---|---|
message | String | 消息体,请忽略 |
state | Integer | 快递单当前状态,默认为0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签等10个主状态,如需要返回高级状态,请参考 resultv2 传值 |
status | Integer | 通讯状态,请忽略 |
condition | String | 快递单明细状态标记,暂未实现,请忽略 |
ischeck | Integer | 是否签收标记,请忽略,明细状态请参考state字段 |
com | String | 快递公司编码,一律用小写字母 |
nu | String | 单号 |
trailUrl | String | 轨迹地图链接 |
arrivalTime | String | 预计到达时间 |
totalTime | String | 平均耗时 |
remainTime | String | 到达还需多少时间 |
isLoop | Boolean | 是否存在环路 |
ΘrouteInfo | 路由信息 | |
└Θfrom | 出发地行政区信息 | |
└number | 政区信息编码 | |
└name | 政区信息名 | |
└Θcur | 当前地行政区信息 | |
└number | 政区信息编码 | |
└name | 政区信息名 | |
└Θto | 目的地行政区信息 | |
└number | 政区信息编码 | |
└name | 政区信息名 | |
Θdata | data | 最新查询结果,数组,包含多项,全量,倒序(即时间最新的在最前),每项都是对象,对象包含字段请展开 |
└ context | String | 内容 |
└ time | String | 时间,原始格式 |
└ ftime | String | 格式化后时间 |
└status | String | 本数据元对应的签收状态,只有实时查询接口中提交resultv2标记后才会出现 |
└areaCode | String | 本数据元对应的行政区域的编码,只有实时查询接口中提交resultv2标记后才会出现 |
└areaName | String | 本数据元对应的行政区域的名称,只有实时查询接口中提交resultv2标记后才会出现 |
2.5 轨迹链接应用示例
重要提醒:
(1)对于status= abort而且message中包含“3天”关键字而且comNew为空的快递单,需要增加以下处理逻辑:
如果有专门的工作人员,可以:将快递单罗列给工作人员,由工作人员判断此单是否为假单:如果此单是真实单,则将此单重新向快递100提交一次;如果此单是假单,则将此单标记为假单,而且不再将此单提交给快递100。如果没有专门的工作人员,请直接用以下第二种方法进行操作;
如果没有专门的工作人员,可以:在收到status=abort而且message中包含“3天”关键字而且comNew为空的提示10分钟后,将此快递单重新向快递100提交订阅,如果重新提交后仍然收到status= abort,则再次重新向快递100提交,如此,在同一月中如果重复提交3~4次都仍然收到status= abort,则此单为假单,不需要再将此单提交给快递100。
对于同一自然月内重复提交的快递单,结算时只计一次费用,对于跨了两个自然月重复提交的结算单,结算两次费用。
(2)如果判断到status=abort且comNew不为空,则不需要重新提交订阅,且将贵司原来的快递公司编码改为comNew后的值,或在贵司数据库中增加一个快递公司编码为comNew+原来单号的运单;
(3)如果判断到status=polling且autoCheck=1,则此单为纠正公司编码后的跟踪信息,应保存。
- 关于data:我方每次推送的都是完整的、全量的快递查询结果,而不是部分最新、增量的状态。由于同一快递单查询结果的数据源可能变动,不同数据源之间的结果略有差异,建议每次删除旧的数据后再写入新的数据。
- 时间建议以ftime为准,不要使用time,time的存在仅仅为了兼容。
2.6 推送响应报文及错误码解释
参数名 | 说明 |
---|---|
result | true表示成功,false表示失败。如果提交回调接口的地址失败,30分钟后重新回调,3次仍旧失败的,自动放弃 |
returnCode | 200: 提交成功 500: 服务器错误 其他错误请自行定义 |
message | 返回的提示 |
2.7 推送返回示例
当我方调用贵方的回调接口(callbackurl)时,贵方需要先将我方提交的数据保存至贵方的数据库,接着向我方返回是否成功接收的响应报文及代码,即贵公司直接在回调接口的地址的response中填写如下内容:
{
"result": true,
"returnCode": "200",
"message": "成功"
}
Copy
注意:对于status= abort(message中包含“3天查询无记录”或者“60天无变化”)的快递单,也需要返回成功接收的响应报文及代码。
2.8 运单签收状态(已签收、退回等)增值服务说明
默认状态下,在推送时我们提供了ischeck字段表示快递单是否签收(含正常签收,退回签收两种情况),通过state字段提供签收的具体状态,state具体如下:
物流状态值 | 物流状态名称 | 高级物流状态值 | 高级物流状态名称 | 含义 |
---|---|---|---|---|
1 | 揽收 | 1 | 揽收 | 快件揽件 |
---|---|---|---|---|
101 | 已下单 | 已经下快件单 | ||
102 | 待揽收 | 待快递公司揽收 | ||
103 | 已揽收 | 快递公司已经揽收 | ||
0 | 在途 | 0 | 在途 | 快件在途中 |
1001 | 到达派件城市 | 快件到达收件人城市 | ||
1002 | 干线 | 快件处于运输过程中 | ||
1003 | 转递 | 快件发往到新的收件地址 | ||
5 | 派件 | 5 | 派件 | 快件正在派件 |
501 | 投柜或驿站 | 快件已经投递到快递柜或者快递驿站 | ||
3 | 签收 | 3 | 签收 | 快件已签收 |
301 | 本人签收 | 收件人正常签收 | ||
302 | 派件异常后签收 | 快件显示派件异常,但后续正常签收 | ||
303 | 代签 | 快件已被代签 | ||
304 | 投柜或站签收 | 快件已由快递柜或者驿站签收 | ||
6 | 退回 | 6 | 退回 | 快件正处于返回发货人的途中 |
4 | 退签 | 4 | 退签 | 此快件单已退签 |
401 | 已销单 | 此快件单已撤销 | ||
14 | 拒签 | 收件人拒签快件 | ||
7 | 转投 | 7 | 转投 | 快件转给其他快递公司邮寄 |
2 | 疑难 | 2 | 疑难 | 快件存在疑难 |
201 | 超时未签收 | 快件长时间派件后未签收 | ||
202 | 超时未更新 | 快件长时间没有派件或签收 | ||
203 | 拒收 | 收件人发起拒收快递,待发货方确认 | ||
204 | 派件异常 | 快件派件时遇到异常情况 | ||
205 | 柜或驿站超时未取 | 快件在快递柜或者驿站长时间未取 | ||
206 | 无法联系 | 无法联系到收件人 | ||
207 | 超区 | 超出快递公司的服务区范围 | ||
208 | 滞留 | 快件滞留在网点,没有派送 | ||
209 | 破损 | 快件破损 | ||
8 | 清关 | 8 | 清关 | 快件清关 |
10 | 待清关 | 快件等待清关 | ||
11 | 清关中 | 快件正在清关流程中 | ||
12 | 已清关 | 快件已完成清关流程 | ||
13 | 清关异常 | 货物在清关过程中出现异常 | ||
14 | 拒签 | \ | \ | 收件人拒签快件 |
注:如需物流状态高级状态名称及状态值需要 resultv2 传 “6” 返回,如需物流状态高级状态名称需要 resultv2 传 “4” 返回
三、快递公司编码
如果您需要的公司不在此列表,请联系在线客服添加
请求参数
订阅参数salt值不为空时,推送数据将包含该加密签名,加密方式:md5(param+salt)
示例代码
返回响应
{
"result": true,
"returnCode": "200",
"message": "成功"
}