一、订阅接口

1.1 订阅请求地址

<p>https://poll.kuaidi100.com/poll</p>

1.2 订阅请求类型

post

1.3 订阅输入参数

请求参数(header)

名称类型默认值
Content-Typestringapplication/x-www-form-urlencoded

请求参数(body)

名称类型是否必需示例值描述
schemaStringjson返回的数据格式
Θparamparam由其他字段拼接
└ companyStringems订阅的快递公司的编码,一律用小写字母
└ numberString1136281381675订阅的快递单号,单号的最大长度是32个字符 <a href="http://api.kuaidi100.com/manager/openapi/download/kdbm.do" target="_blank"><u>下载编码表格</u></a>
└ fromString广东省深圳市南山区出发地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,请尽量提供
└ toString北京市朝阳区目的地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,且到达目的地后会加大监控频率,请尽量提供
└ keyString授权码,请<a href="https://api.kuaidi100.com/register/enterprise" target="_blank">申请企业版</a>获取
Θparametersparameters附加参数信息
└- callbackurlString回调接口的地址
└- saltStringXXXXXXXXXX签名用随机字符串
└- resultv2String1添加此字段表示打开行政区域解析功能
└- autoComString1添加此字段且将此值设为1,则表示开始智能判断单号所属公司的功能,开启后,company字段可为空,即只传运单号(number字段),我方收到后会根据单号判断出其所属的快递公司(即company字段)。建议只有在无法知道单号对应的快递公司(即company的值)的情况下才开启此功能
└- interComString1添加此字段表示开启国际版,开启后,若订阅的单号(即number字段)属于国际单号,会返回出发国与目的国两个国家的跟踪信息,本功能暂时只支持邮政体系(国际类的邮政小包、EMS)内的快递公司,若单号我方识别为非国际单,即使添加本字段,也不会返回destResult元素组
└- departureCountryStringCN出发国家编码
└- departureComStringems出发的快递公司的编码
└- destinationCountryStringJP目的国家编码
└- destinationComStringjapanposten目的的快递公司的编码
└- phoneString13488888888收、寄件人的电话号码(手机和固定电话均可,只能填写一个,顺丰单号必填,其他快递公司选填。如座机号码有分机号,分机号无需上传。)

1.4 订阅请求参数示例

  1. schema = json
  2. param = {
  3. "company": "ems",
  4. "number": "1136281381675",
  5. "from": "广东省深圳市南山区",
  6. "to": "北京市朝阳区",
  7. "key": "XXX ",
  8. "parameters": {
  9. "callbackurl": "您的回调接口的地址,如http://www.您的域名.com/kuaidi?callbackid=...",
  10. "salt": "XXXXXXXXXX",
  11. "resultv2": "1",
  12. "autoCom": "1",
  13. "interCom" "1",
  14. "departureCountry": "CN",
  15. "departureCom": "ems",
  16. "destinationCountry": "JP",
  17. "destinationCom": "japanposten"
  18. }
  19. }

1.5 订阅返回信息代码含义

result: true表示成功,false表示失败

信息代码信息内容描述原因及建议处理方式
200提交成功订阅提交成功
500服务器错误快递100的服务器出理间隙或临时性异常,有时如果因为不按规范提交请求,比如快递公司参数写错等,也会报此错误
501重复订阅此单已经订阅成功且目前还在跟踪过程中。若要提交多次订阅,请在收到单号的status=abort或shutdown后隔半小时再提交订阅
502提交内容含有敏感关键字,被安全防护拦截回调地址、提交内容包含敏感词,请联系快递100工作人员
600您不是合法的订阅者(即授权Key出错)账号无可用单量,需要充值
601POLL: KEY 已过期账号无可用单量,需要充值
700不支持的快递公司拒绝订阅的快递公司,检查快递公司编码是否有误
701订阅方的订阅数据存在错误(如不支持的快递公司、单号为空、单号超长等)或错误的回调地址请检查快递公司编码、对照技术文档检查参数、在后台调试工具测试回调地址
702POLL:识别不到该单号对应的快递公司快递公司编码错误或者无可用单量,需要充值

1.6 订阅返回示例(JSON格式)

  1. {
  2. "result": true,
  3. "returnCode": "200",
  4. "message": "提交成功"
  5. }

二、推送接口

2.1 推送请求地址

由贵司在订阅请求中通过callbackurl字段提供

2.2 推送请求类型

post

2.3 推送输入参数

请求参数(header)

名称类型默认值
Content-Typestringapplication/x-www-form-urlencoded

请求参数(body)

名称类型示例值描述
signString订阅参数salt值不为空时,推送数据将包含该加密签名,加密方式:md5(param+salt)
Θparam由其他字段拼接
└ statusStringpolling监控状态:polling:监控中,shutdown:结束,abort:中止,updateall:重新推送。其中当快递单为已签收时status=shutdown,当message为“3天查询无记录”或“60天无变化时”status= abort ,对于status=abort的状态,需要增加额外的处理逻辑
└ billstatusStringgot包括got、sending、check三个状态,由于意义不大,已弃用,请忽略
└ messageString监控状态相关消息,如:3天查询无记录,60天无变化
└ autoCheckString1快递公司编码是否出错,0为本推送信息对应的是贵司提交的原始快递公司编码,1为本推送信息对应的是我方纠正后的新的快递公司编码。一个单如果我们连续3天都查不到结果,我方会(1)判断一次贵司提交的快递公司编码是否正确,如果正确,给贵司的回调接口(callbackurl)推送带有如下字段的信息:autoCheck=0、comOld与comNew都为空;(2)如果贵司提交的快递公司编码出错,我们会帮忙用正确的快递公司编码+原来的运单号重新提交订阅并开启监控(后续如果监控到单号有更新就给贵司的回调接口(callbackurl)推送带有如下字段的信息:autoCheck=1、comOld=原来的公司编码、comNew=新的公司编码);并且给贵方的回调接口(callbackurl)推送一条含有如下字段的信息:status=abort、autoCheck=0、comOld为空、comNew=纠正后的快递公司编码。
└ comOldStringyuantong贵司提交的原始的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段
└ comNewStringems我司纠正后的新的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段
ΘlastResultlastResult最新查询结果,若在订阅报文中通过interCom字段开通了国际版,则此lastResult表示出发国的查询结果,全量,倒序(即时间最新的在最前)
└- messageString消息体,请忽略
└- stateString0快递单当前状态,包括0在途,1揽收,2疑难,3签收,4退签,5派件,6退回,7转单,10待清关,11清关中,12已清关,13清关异常,14收件人拒签等13个状态
└- statusString200通讯状态,请忽略
└- conditionStringF00快递单明细状态标记,暂未实现,请忽略
└- ischeckString0是否签收标记
└- comStringyuantong快递公司编码,一律用小写字母
└- nuStringV030344422单号
└- dataObject数组,包含多个对象,每个对象字段如展开所示
└— contextString上海分拨中心/装件入车扫描内容
└— timeString2012-08-28 16:33:19时间,原始格式
└— ftimeString2012-08-28 16:33:19格式化后时间
└— statusString在途本数据元对应的签收状态。在订阅接口中提交resultv2 = 1字段后才会出现
└— areaCodeString310000000000本数据元对应的行政区域的编码,在订阅接口中提交resultv2 = 1字段后才会出现
└— areaNameString上海市本数据元对应的行政区域的名称,在订阅接口中提交resultv2 = 1字段后才会出现
Θ destResultdestResult表示最新的目的国家的查询结果,只有在订阅报文中通过interCom=1字段开通了国际版才会显示此数据元,全量,倒序(即时间最新的在最前)
└- messageString消息体,请忽略
└- stateString0快递单当前状态,包括0在途,1揽收,2疑难,3签收,4退签,5派件,6退回等8个状态
└- statusString200通讯状态,请忽略
└- conditionStringF00快递单明细状态标记,暂未实现,请忽略
└- ischeckString0是否签收标记
└- comStringyuantong快递公司编码,一律用小写字母
└- nuStringV030344422单号
Θ datadata数组,包含多个对象,每个对象字段如展开所示
└— contextString上海分拨中心/装件入车扫描内容
└— timeString2012-08-28 16:33:19时间,原始格式
└— ftimeString2012-08-28 16:33:19格式化后时间
└— statusString在途本数据元对应的签收状态,在订阅接口中提交resultv2 = 1字段后才会出现
└— areaCodeString310000000000本数据元对应的行政区域的编码,在订阅接口中提交resultv2 = 1字段后才会出现
└— areaNameString上海市本数据元对应的行政区域的名称,在订阅接口中提交resultv2 = 1字段后才会出现

2.4 推送输入参数示例

  1. param = {
  2. "status": "polling",
  3. "billstatus": "got",
  4. "message": "",
  5. "autoCheck": "1",
  6. "comOld": "yuantong",
  7. "comNew": "ems",
  8. "lastResult": {
  9. "message": "ok",
  10. "state": "0",
  11. "status": "200",
  12. "condition": "F00",
  13. "ischeck": "0",
  14. "com": "yuantong",
  15. "nu": "V030344422",
  16. "data": [
  17. {
  18. "context": "上海分拨中心/装件入车扫描 ",
  19. "time": "2012-08-28 16:33:19",
  20. "ftime": "2012-08-28 16:33:19",
  21. "status": "在途",
  22. "areaCode": "310000000000",
  23. "areaName": "上海市"
  24. },
  25. {
  26. "context": "上海分拨中心/下车扫描 ",
  27. "time": "2012-08-27 23:22:42",
  28. "ftime": "2012-08-27 23:22:42",
  29. "status": "在途",
  30. "areaCode": "310000000000",
  31. "areaName": "上海市"
  32. }
  33. ]
  34. },
  35. "destResult": {
  36. "message": "ok",
  37. "state": "0",
  38. "status": "200",
  39. "condition": "F00",
  40. "ischeck": "0" ,
  41. "com": "speedpost",
  42. "nu": "EX015142583SG",
  43. "data": [
  44. {
  45. "context": "[01000]Final delivery Delivered to: SLOVESNOV",
  46. "time": "2016-05-24 14:00:00",
  47. "ftime": "2016-05-24 14:00:00",
  48. "status": "签收",
  49. "areaCode": null,
  50. "areaName": null
  51. }
  52. ]
  53. }
  54. }

2.5 运单签收状态服务说明

状态值名称含义
0在途快件处于运输过程中
1揽收快件已由快递公司揽收
2疑难快递100无法解析的状态,或者是需要人工介入的状态, 比方说收件人电话错误。
3签收正常签收
4退签货物退回发货人并签收
5派件货物正在进行派件
6退回货物正处于返回发货人的途中
7转投货物转给其他快递公司邮寄
10待清关货物等待清关
11清关中货物正在清关流程中
12已清关货物已完成清关流程
13清关异常货物在清关过程中出现异常
14拒签收件人明确拒收

2.6 推送响应报文及错误码解释

字段名称字段含义
resulttrue表示成功,false表示失败。如果提交回调接口的地址失败,30分钟后重新回调,3次仍旧失败的,自动放弃
returnCode200: 提交成功 500: 服务器错误 其他错误请自行定义
message返回的提示

2.7 推送返回示例

当我方调用贵方的回调接口(callbackurl)时,贵方需要先将我方提交的数据保存至贵方的数据库,接着向我方返回是否成功接收的响应报文及代码,即贵公司直接在回调接口的地址的response中填写如下内容:

  1. {
  2. "result":true,
  3. "returnCode":"200",
  4. "message":"成功"
  5. }

注意:对于status= abort(message中包含“3天查询无记录”或者“60天无变化”)的快递单,也需要返回成功接收的响应报文及代码。

三、快递公司编码

<a href="https://api.kuaidi100.com/manager/openapi/download/kdbm.do" style="color: #027eff;" target="_blank"><u>下载表格</u></a>

四、demo下载

<a href="https://github.com/kuaidi100-api/java-demo" style="color: #027eff;" target="_blank" rel="nofollow noopener noreferrer"><u>JAVA示例代码</u></a>    <a href="https://github.com/kuaidi100-api/php-demo" style="color: #027eff;" target="_blank" rel="nofollow noopener noreferrer"><u>PHP示例代码</u></a>    <a href="https://github.com/kuaidi100-api/python-demo" style="color: #027eff;" target="_blank" rel="nofollow noopener noreferrer"><u>PYTHON示例代码</u></a>    <a href="https://github.com/kuaidi100-api/.net-demo" style="color: #027eff;" target="_blank" rel="nofollow noopener noreferrer"><u>.NET示例代码</u></a>

一、快递信息推送API产品介绍

快递100信息推送服务提供运单查询、追踪的功能,用于企业对寄出的物品进行物流追踪。

信息推送服务是企业提交快递单号,快递100接收到后便对这些运单进行跟踪,当运单状态发生变化的时候,快递100便通过调用回调接口将运单的跟踪信息推送给贵公司,直到这些运单号的生命周期结束(一般以“已签收”为准)。对于某个单号,当贵方正确提交订阅了后,我们一般会在15分钟左右后进行第一次监控,如果监控到单号本身有了跟踪信息,即进行第一次推送,否则等待下一次监控。此后我们一般每4小时进行一次监控,并会根据单号的状态等因素作调整。

二、快递信息推送API应用场景

  1. 让顾客登录您的网站、APP、小程序后,直接在“我的订单”页面内就能看到订单的物流状态。

  2. 能开发自动的、批量查单功能,自动筛选出“已签收”、“疑难件”等状态的单号,减轻跟单人员的压力。

  3. 改变订单的状态与交易流程,例如只要运单号变为“已签收”,就能让订单变更为可以确认退换货等。

  4. 核销销售人员,根据“已签收”的运单数,就能算出销售人员的业绩。

  5. 评估与选择快递公司,可获得快递实际在途时间,评估快递公司的时效,优化快递选择;

  6. 助结算运费,找出“已签收”的单及签收时间,便能轻松应对货到付款的结算与对账。

三、系统结构与流程

<img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/129503f13de14bf68893fc7527827a89~tplv-k3u1fbpfcp-zoom-1.image" alt="img" style="zoom: 67%;" />

四、快递信息推送API费用结算

1. 收费方式

快递信息推送接口属于查询类接口,企业注册快递100账号后可以在企业管理后台查看查询类接口套餐<a href="https://api.kuaidi100.com/service/query" target="_blank">查看查询类接口套餐</a>并购买。

2. 收费价格

查询类接口预充值收费套餐:充值即可开通使用,无需合同流程。

价格/元单量赠送/单单价/元
20002000050000.08
1000100002000约0.083
5005000500约0.09

查询类接口按单收费,一个自然月内同一个运单多次查询只收一次费用。

3. 开具发票

快递100支持开具增值税发票,用户购买完成后可在企业管理后台-费用中心-支付记录-请求开票。默认开具电子增值税普通发票,1000元以上可支持开具增值税专用发票。

官方源文档:

https://api.kuaidi100.com/document/5f0ffa7f2977d50a94e1023b.html

https://api.kuaidi100.com/document/5f0ffa8f2977d50a94e1023c.html

更多相关文章

  1. 因为我的一个低级错误,生产数据库崩溃了将近半个小时
  2. 怎么通过 jmeter 完成对请求字段的加密?
  3. Oracle BLOB类型的数据如何查看和下载?
  4. MySQL 续集 02
  5. navicat连接mysql数据库,添加 timestamp字段,报错显示invalid defa
  6. 在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?
  7. 快递单号批量查询软件,自动识别快递单号派送动态
  8. 连接查询详解
  9. mysql基本知识学习

随机推荐

  1. Android(安卓)联系人按中文拼音排序
  2. Android标题栏各种设置
  3. Android FrameLayout的显示效果
  4. Dagger2在Android studio中的配置与简单
  5. android 一些小功能实现
  6. 跑马灯效果
  7. 编译cubieboard android 源码过程详解之(
  8. android 模拟器常用命令
  9. Android实现启动页停留几秒然后自动跳转
  10. android 硬解码 是否支持