快递物流查询1500 + 快递全覆盖,一文读懂快递按次查询和按单查询接口

简介: 本文以技术视角拆解快递物流查询的两套接口形态:按次查询与按单查询 V2。二者共用国内外 1500 多家承运商的单号识别能力,覆盖顺丰、韵达、中通、申通、圆通、邮政、DHL、UPS、京东、EMS 等。核心区别在于计次口径——按次查询以调用次数为单元,每次请求返回当前轨迹快照;按单查询 V2 以运单为单元,同一单号 30 天内重复查询共享一次计次,并叠加收件/寄件地址反算经纬度与预计送达时间的时效预估能力。文章给出两套接口的请求参数、返回结构、多语言调用示例、在线调试步骤、错误码排查与工程规范,并明确选型思路:低频按需走按次,高频跟踪与时效承诺走按单,两者可共存。

快递物流查询:按次查询与按单查询两种接口的技术解析

快递物流查询接口面向电商、零售、生活服务、ERP 与小程序等场景,提供对国内外 1500 多家快递物流公司运单轨迹的标准化查询能力,覆盖顺丰、韵达、中通、申通、圆通、邮政、DHL、UPS、京东、EMS 等主流承运商。同一套单号识别能力,在接入层暴露为两种形态——快递按次查询快递按单查询 V2,二者在扣减口径、参数设计、时效预估上存在系统性差异。本文以技术视角拆解两套接口的请求参数、返回结构、调用示例与适用边界,并给出工程选型思路,供系统服务商、开发者与 ERP/小程序团队参考。

按次查询与按单查询核心区别总览

一、按次查询与按单查询的核心区别

两套接口解决的是同一个问题——"根据快递单号返回物流轨迹",区别在于计次口径能力边界

维度 快递按次查询 快递按单查询 V2
接口标识 cmapi010996 cmapi00064202
请求方式 GET GET
鉴权方式 APPCODE(或网关签名认证) APPCODE(或网关签名认证)
单号自动识别 支持(com 传 auto) 支持(com 传 auto)
计次口径 每次调用返回轨迹即计 1 次 同一单号 30 天内重复查询仅计 1 次
时效预估 不提供 提供(收件/寄件地址反算经纬度并预测收件时间)
异步轨迹推送 通过 callback_url 订阅 内置推送 + 时效预估字段
适用形态 单次/低频查询 高频跟踪、需按单号去重计次

一句话概括:按次查询以"调用次数"为计次口径与能力单元,每一次请求都独立返回当前轨迹快照;按单查询 V2 以"运单"为单元,30 天内同一单号的多次查询共享一次计次,并在此之上叠加时效预估能力

按次 vs 按单 计次口径示意

二、选型思路

选择哪种形态,取决于业务查询频率与是否需要时效预估,而非"哪个更好"。

  • 低频、按需查询:用户主动点"查物流"、售后人工核单等场景,查询量与用户行为一一对应,选按次查询即可,逻辑简单、接入成本低。
  • 高频、系统轮询:电商订单系统定时批量刷新在途包裹状态,同一单号一天可能被查多次。此时按单查询 V2的去重计次口径更贴合"按运单跟踪"的业务语义。
  • 需要时效预估:要在下单后给用户展示"预计送达时间",或做逆向时效预警,需要按单查询 V2delivery_address / shipping_address 反算能力。

三者可共存:同一业务里"用户查物流"走按次,"订单系统批量刷新"走按单,按触发方各自选型。

三、能力概览

两套接口共用同一组承运商识别基础,能力差异体现在参数与返回上:

能力 说明 按次查询 按单查询 V2
单号自动识别 comauto,由服务端按单号特征识别承运商
指定承运商查询 com 传公司编码(如 yuantongzhongtong
手机尾号补全 phone 传收/寄件人尾号后 4 位,顺丰/跨越/中通必填
异步轨迹订阅 按次走 callback_url;按单 V2 内置推送
时效预估 delivery_address 反算经纬度、预测收件时间
寄件地址参与预测 shipping_address 辅助预测收件时间

能力对比:按次 vs 按单 V2

四、适用场景

  • 电商订单履约:下单后跟踪在途包裹,用户端展示物流节点;高频刷新场景用按单 V2 去重计次。
  • 售后核单:人工查询单个运单,按需、低频,用按次查询即可。
  • 时效承诺与逆向预警:需在发货前给用户展示"预计送达时间",或对超时单做提醒,用按单 V2 的时效预估字段。
  • 小程序 / APP / ERP 集成:把轨迹查询与时效预估封装成内部服务,多端共用;按单 V2 更适合"按运单跟踪"的长期态。

五、接入流程

接入分四步,按次与按单流程一致,差异仅在调用时填写的参数。

  1. 开通服务:在阿里云云市场开通对应的接口资源包,获取 AppCode(网关也可采用签名认证方式)。
  2. 获取调用地址:两套接口均为 GET 请求,调用地址见各自控制台配置,返回体为 JSON
  3. 组装参数
    • 按次查询:comnuphone(可选)、callback_url(可选,异步订阅)。
    • 按单查询 V2:comnuphone(可选)、delivery_address(可选)、shipping_address(可选)。
  4. 鉴权调用:请求头携带 Authorization: APPCODE <appcode>,或按签名方式携带 AppKey / AppSecret。仅当 HTTP 响应状态码为 200 时计次。

接入流程四步示意

六、请求参数设计

6.1 快递按次查询(cmapi010996)

参数 类型 必填 说明
com string N 快递公司编码,可用 auto 自动识别;建议尽量传准确编码,避免大面积使用 auto
nu string Y 快递单号
phone string N 收/寄件人手机尾号后 4 位;顺丰、跨越、中通为必填;隐私号需完整后 4 位
callback_url string N 填写即启用异步轨迹订阅,否则为实时查询;需为可接收 POST 数据的 URL

6.2 快递按单查询 V2(cmapi00064202)

参数 类型 必填 说明
com string N 快递公司编码,可用 auto 自动识别;不确定承运商时可传 auto
nu string Y 快递单号
phone string N 收/寄件人手机尾号后 4 位;顺丰必填;隐私号需完整后 4 位
delivery_address string N 最终收件地址,用于反算经纬度并预测收件时间,至少含省市区
shipping_address string N 寄件地址,辅助预测收件时间,至少含省市区

七、调用示例

鉴权统一为 Authorization: APPCODE <appcode>。以下示例中的 appcode、单号、地址均为占位,替换为你的真实凭据与业务数据。

7.1 按次查询(Python)

import requests

def query_once(appcode, nu, com="auto", phone=None):
    url = "YOUR_EXPRESS_ONCE_ENDPOINT"  # 按次查询调用地址,见控制台
    params = {
   "com": com, "nu": nu}
    if phone:
        params["phone"] = phone
    resp = requests.get(url, params=params,
                        headers={
   "Authorization": f"APPCODE {appcode}"},
                        timeout=10)
    return resp.status_code, resp.json()

7.2 按单查询 V2(Java)

public static JSONObject queryByOrder(String appcode, String nu,
                                       String deliveryAddress) throws Exception {
   
    String url = "YOUR_EXPRESS_ORDER_ENDPOINT" + "?com=auto&nu="
        + URLEncoder.encode(nu, "UTF-8");
    if (deliveryAddress != null) {
   
        url += "&delivery_address=" + URLEncoder.encode(deliveryAddress, "UTF-8");
    }
    HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
    conn.setRequestMethod("GET");
    conn.setRequestProperty("Authorization", "APPCODE " + appcode);
    int code = conn.getResponseCode();
    try (BufferedReader br = new BufferedReader(
            new InputStreamReader(conn.getInputStream(), "UTF-8"))) {
   
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = br.readLine()) != null) sb.append(line);
        return new JSONObject(sb.toString());
    }
}

八、返回结构

两套接口均返回 JSON,核心字段一致:ret_code(结果码,0 为成功)、msg(提示文案)、nu(单号)、data(轨迹节点数组,含 contexttime)、query_num / fee_num(查询次数与计次)。按单 V2 额外返回 possible_exp_list(可能的承运商列表)与时效预估相关字段。

返回字段结构示意

8.1 按次查询返回示例

{
   
  "ret_code": 0,
  "msg": "查询成功",
  "nu": "YT6493188734653",
  "expSpellName": "yuantong",
  "expTextName": "圆通速递",
  "updateStr": "2026-09-14 10:06:56",
  "data": [
    {
   "context": "快件已到达【义乌新科】", "time": "2026-09-13 18:22:10"},
    {
   "context": "快件已发往【昆明中转】", "time": "2026-09-13 17:09:49"}
  ]
}

8.2 按单查询 V2 返回示例

{
   
  "ret_code": 0,
  "msg": "查询成功",
  "nu": "JT0020720459904",
  "com": "auto",
  "query_num": 3,
  "fee_num": 1,
  "possible_exp_list": [],
  "data": [
    {
   "context": "收件人已取走邮件", "time": "2026-09-14 16:47:43"},
    {
   "context": "邮件投递到驿站", "time": "2026-09-14 14:27:08"},
    {
   "context": "【中心支局】已收寄", "time": "2026-09-14 18:28:36"}
  ]
}

注意示例中 query_num 为 3 而 fee_num 为 1,体现"30 天内同单号多次查询仅计 1 次"的去重口径。

九、在线调试实录

以按单查询 V2 为例,走一次"自动识别承运商 + 时效预估"的调试流程。

场景:一张京东快递单号 JT0020720459904,用户只知道寄件地址 山西省运城市河津市,希望同时拿到最新轨迹与预计送达时间。

在线调试流程示意

调试步骤与观察点:

步骤 操作 观察
1 comautonu 传单号 服务端按单号特征识别承运商
2 附带 delivery_address(含省市区) 反算经纬度,输出预测收件时间
3 查看返回 query_num / fee_num 同单号 30 天内多次查询,fee_num 保持为 1
4 查看 data 数组 轨迹节点按时间倒序,最新节点在前
5 观察 possible_exp_list 无法唯一识别时返回候选承运商列表,需人工或二次查询确认

调试要点:auto 识别基于历史单号特征,存在误差,正式环境建议传入准确承运商编码;phone 对顺丰、跨越、中通为必填,缺失时相关承运商的轨迹会不完整。

十、调用限制与规范

具体 QPS 上限、每日配额与并发数以控制台实时配置为准,接入前在控制台核对。工程规范建议:

  • 前置校验:单号非空、格式校验、承运商编码白名单校验,避免无效请求浪费配额。
  • 幂等:同一单号查询是幂等的,重试不会改变轨迹结果;配合 fee_num 去重口径可放心重试。
  • 重试策略:对 5xx 与超时做指数退避重试;对 ret_code != 0 的确定性错误不盲目重试。
  • 频控与去重:高频轮询场景用按单 V2 的去重口径,避免同一单号一天多次计次。
  • 结果缓存:轨迹节点有明确 time 时间戳,可对无更新的轨迹做本地缓存,减少重复调用。
  • 合规phone 仅传尾号 4 位,不传完整手机号;隐私号按规则传完整后 4 位。

十一、能力边界与免责

类别 说明
支持 国内外 1500 多家承运商的轨迹查询;单号自动识别;顺丰/跨越/中通配合 phone 查询
不支持 非快递类运单(如物流批次、跨境报关单);实时定位(仅轨迹节点级,非 GPS 实时)
边界 auto 识别存在误差;时效预估为模型预测,非承运商承诺;轨迹刷新周期依承运商数据源而定
免责 轨迹与时效数据仅供参考,不作为业务决策与赔付依据,最终以承运商官方信息为准

十二、错误码排查指南

现象 可能原因 排查
鉴权失败 appcode 无效或请求头缺失 核对 Authorization: APPCODE <appcode>,确认密钥有效
ret_code != 0 参数缺失/单号不存在 检查 nu 必填、phone 是否按承运商要求填写
possible_exp_list 非空 auto 未能唯一识别 改传准确承运商编码 com
HTTP 非 200 网关限流/网络抖动 仅 200 才计次;做退避重试
轨迹停留在旧节点 承运商数据源刷新周期 属正常,非接口故障,等待下一刷新周期
时效预测缺失 未传 delivery_address 至少提供省市区级收件地址

十三、技术 FAQ

问:按次查询和按单查询 V2 能同时接入吗?
答:可以,二者相互独立,同一业务里可按触发方分别调用——用户主动查物流走按次,系统批量刷新走按单 V2。

问:什么时候必须传 phone?
答:查询顺丰、跨越、中通时 phone 为必填;隐私号需传完整后 4 位。其他承运商可选。

问:auto 自动识别的准确性如何?
答:基于历史单号特征分析,覆盖大多数主流承运商,但无法保证 100% 命中。生产环境建议传准确承运商编码,auto 仅作兜底。

问:如何判断轨迹是否有新节点?
答:对比返回体中最新 data 节点的 time 与本地缓存时间戳,有变化才更新,避免无效写库。

问:按单 V2 的 30 天去重是从什么时候算起?
答:自该单号首次成功查询起 30 天内,重复查询共享一次计次;超过 30 天后再次查询将重新计次。

问:适用哪些系统形态?
答:电商 Web、小程序、APP、ERP、零售 SaaS 均可接入;需具备可接收 POST 回调的地址(启用异步时)。

十四、内容小结

本文以技术视角对比了两套快递查询接口:

  • 按次查询(cmapi010996):以调用次数为单元,com/nu/phone/callback_url 四参,适合低频、按需、单次查询。
  • 按单查询 V2(cmapi00064202):以运单为单元,同单号 30 天内去重计次,叠加 delivery_address/shipping_address 时效预估,适合高频跟踪与时效承诺。
  • 选型原则:按查询频率与是否需要时效预估选择,而非"哪个更好",两者可共存。

工程落地上,注意前置校验、幂等重试、结果缓存、phone 最小化采集与 auto 兜底策略,并在控制台实时核对 QPS 与配额。两套接口均遵循"仅 200 响应才计次"的口径,便于做重试与频控设计。

相关文章
|
6天前
|
人工智能 API 内存技术
刚刚 DeepSeek V4.1 Flash 开启内测,1 分钟教你用上!
刚刚 DeepSeek 内测群发布了 DeepSeek V4.1 Flash 中间版本内测的消息,这次的模型采用了新的结构,原生支持多模态、能力更强、速度更快、且成本更低。
1750 9
|
10天前
|
人工智能 运维 BI
阿里云千问办公QwenWork深度解析:基于Qwen3.8,六大核心能力重构企业全自动化工作流与计费选型指南
传统AI办公工具大多停留在对话问答、文档摘要、简单文案生成层面,只能完成单点碎片化任务,无法自主拆解复杂业务流程,很难串联多工具、多文档、外部业务系统完成端到端完整工作交付。很多企业在落地AI办公的时候,需要组合多款不同工具,来回切换界面,手动复制粘贴中间结果,智能化改造落地门槛居高不下。千问办公QwenWork是整合多款智能体产品能力打造的一体化企业办公智能体平台,底层基座依托Qwen3.8大模型,打通桌面端Agent、云端Agent、企业协同Agent三种运行形态,不再局限简单问答,接收业务目标之后自主拆解任务步骤,调用各类工具,处理文档、表格、浏览器自动化、数据查询,直接输出可交付的办公
1637 2
|
11天前
|
网络协议 Linux iOS开发
【2026实测】Wireshark下载+安装+汉化+使用教程(图文版,巨详细)
Wireshark 是一款免费开源的网络协议分析工具,可实时捕获、解析并可视化数据包,助你诊断网络故障、分析通信协议(如HTTP、DNS、TCP等)。支持Windows/macOS/Linux,含中文界面,新手入门便捷。(239字)
|
7天前
|
SQL 人工智能 前端开发
QoderWake 1.0 正式发布:从桌面里的 Agent,到工作现场的数字员工
QoderWake v1.0正式发布:企业级数字员工团队平台。支持“一句话建岗”,预置10类特训岗位;Waker常驻钉钉/飞书群,@即响应、自动协作、跨任务记忆;具备定时/事件/API多触发方式与统一任务看板;已沉淀27.6万条记忆、12.3万项技能,助力组织实现人机协同增效。
770 2
|
5天前
|
缓存 测试技术 API
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
DeepSeek V4.1 Flash 内测不用申请,base_url 不变、改个模型名就能调,9/10 到期。本文讲清接入、计费限流与多模态注意点。
769 0
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
|
19天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
3935 5
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
|
10天前
|
人工智能 自然语言处理 安全
阿里云AI数智鉴密:AI 生成内容如何拿到一张"防篡改的身份证"
隐形水印 + C2PA签名:让AI生成内容“持证上岗”。
1151 0
|
12天前
|
缓存 数据可视化 开发工具
DeepSeek Harness 怎么更新?dsh 更新完整指南:更新本体(npx、npm、源码)与更新插件两种方式
DeepSeek Harness 的更新分两层:本体更新(npx 自动最新、npm update -g、源码 git pull)与插件更新(插件市场点更新、命令行覆盖安装)。本文按「准备 → 更新本体 → 更新插件 → 更新后检查」四步走,覆盖新手常见疑问。
1403 1
DeepSeek Harness 怎么更新?dsh 更新完整指南:更新本体(npx、npm、源码)与更新插件两种方式